{"id":"cf531a98abe9f15cfd77eb47f39b44a4","_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        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"},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.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() external {\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.7.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 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    /**\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.8.1) (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 * ```\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 *\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.8.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     *\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 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(\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        (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 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.8.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 * ```\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 * ```\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.\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.7.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 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"},"@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/security/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Contract module that helps prevent reentrant calls to a function.\n *\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n * available, which can be applied to functions to make sure there are no nested\n * (reentrant) calls to them.\n *\n * Note that because there is a single `nonReentrant` guard, functions marked as\n * `nonReentrant` may not call one another. This can be worked around by making\n * those functions `private`, and then adding `external` `nonReentrant` entry\n * points to them.\n *\n * TIP: If you would like to learn more about reentrancy and alternative ways\n * to protect against it, check out our blog post\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\n */\nabstract contract ReentrancyGuard {\n    // Booleans are more expensive than uint256 or any type that takes up a full\n    // word because each write operation emits an extra SLOAD to first read the\n    // slot's contents, replace the bits taken up by the boolean, and then write\n    // back. This is the compiler's defense against contract upgrades and\n    // pointer aliasing, and it cannot be disabled.\n\n    // The values being non-zero value makes deployment a bit more expensive,\n    // but in exchange the refund on every call to nonReentrant will be lower in\n    // amount. Since refunds are capped to a percentage of the total\n    // transaction's gas, it is best to keep them low in cases like this one, to\n    // increase the likelihood of the full refund coming into effect.\n    uint256 private constant _NOT_ENTERED = 1;\n    uint256 private constant _ENTERED = 2;\n\n    uint256 private _status;\n\n    constructor() {\n        _status = _NOT_ENTERED;\n    }\n\n    /**\n     * @dev Prevents a contract from calling itself, directly or indirectly.\n     * Calling a `nonReentrant` function from another `nonReentrant`\n     * function is not supported. It is possible to prevent this from happening\n     * by making the `nonReentrant` function external, and making it call a\n     * `private` function that does the actual work.\n     */\n    modifier nonReentrant() {\n        _nonReentrantBefore();\n        _;\n        _nonReentrantAfter();\n    }\n\n    function _nonReentrantBefore() private {\n        // On the first call to nonReentrant, _status will be _NOT_ENTERED\n        require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\");\n\n        // Any calls to nonReentrant after this point will fail\n        _status = _ENTERED;\n    }\n\n    function _nonReentrantAfter() private {\n        // By storing the original value once again, a refund is triggered (see\n        // https://eips.ethereum.org/EIPS/eip-2200)\n        _status = _NOT_ENTERED;\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.8.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(\n        uint256 x,\n        uint256 y,\n        uint256 denominator\n    ) 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                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1);\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(\n        uint256 x,\n        uint256 y,\n        uint256 denominator,\n        Rounding rounding\n    ) 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 10, 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 * 8) < value ? 1 : 0);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.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 `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"},"@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/Cross-chain/BaseOmnichainControllerDest.sol":{"content":"//  SPDX-License-Identifier: BSD-3-Clause\n\npragma solidity 0.8.25;\n\nimport { NonblockingLzApp } from \"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\";\nimport { Pausable } from \"@openzeppelin/contracts/security/Pausable.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title BaseOmnichainControllerDest\n * @author Venus\n * @dev This contract is the base for the Omnichain controller destination contract\n * It provides functionality related to daily command limits and pausability\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\n\nabstract contract BaseOmnichainControllerDest is NonblockingLzApp, Pausable {\n    /**\n     * @notice Maximum daily limit for receiving commands from Binance chain\n     */\n    uint256 public maxDailyReceiveLimit;\n\n    /**\n     * @notice Total received commands within the last 24-hour window from Binance chain\n     */\n    uint256 public last24HourCommandsReceived;\n\n    /**\n     * @notice Timestamp when the last 24-hour window started from Binance chain\n     */\n    uint256 public last24HourReceiveWindowStart;\n\n    /**\n     * @notice Emitted when the maximum daily limit for receiving command from Binance chain is modified\n     */\n    event SetMaxDailyReceiveLimit(uint256 oldMaxLimit, uint256 newMaxLimit);\n\n    constructor(address endpoint_) NonblockingLzApp(endpoint_) {\n        ensureNonzeroAddress(endpoint_);\n    }\n\n    /**\n     * @notice Sets the maximum daily limit for receiving commands\n     * @param limit_ Number of commands\n     * @custom:access Only Owner\n     * @custom:event Emits SetMaxDailyReceiveLimit with old and new limit\n     */\n    function setMaxDailyReceiveLimit(uint256 limit_) external onlyOwner {\n        emit SetMaxDailyReceiveLimit(maxDailyReceiveLimit, limit_);\n        maxDailyReceiveLimit = limit_;\n    }\n\n    /**\n     * @notice Triggers the paused state of the controller\n     * @custom:access Only owner\n     */\n    function pause() external onlyOwner {\n        _pause();\n    }\n\n    /**\n     * @notice Triggers the resume state of the controller\n     * @custom:access Only owner\n     */\n    function unpause() external onlyOwner {\n        _unpause();\n    }\n\n    /**\n     * @notice Empty implementation of renounce ownership to avoid any mishappening\n     */\n    function renounceOwnership() public override {}\n\n    /**\n     * @notice Check eligibility to receive commands\n     * @param noOfCommands_ Number of commands to be received\n     */\n    function _isEligibleToReceive(uint256 noOfCommands_) internal {\n        uint256 currentBlockTimestamp = block.timestamp;\n\n        // Load values for the 24-hour window checks for receiving\n        uint256 receivedInWindow = last24HourCommandsReceived;\n\n        // Check if the time window has changed (more than 24 hours have passed)\n        if (currentBlockTimestamp - last24HourReceiveWindowStart > 1 days) {\n            receivedInWindow = noOfCommands_;\n            last24HourReceiveWindowStart = currentBlockTimestamp;\n        } else {\n            receivedInWindow += noOfCommands_;\n        }\n\n        // Revert if the received amount exceeds the daily limit\n        require(receivedInWindow <= maxDailyReceiveLimit, \"Daily Transaction Limit Exceeded\");\n\n        // Update the received amount for the 24-hour window\n        last24HourCommandsReceived = receivedInWindow;\n    }\n}\n"},"contracts/Cross-chain/BaseOmnichainControllerSrc.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\n\npragma solidity 0.8.25;\n\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\";\nimport { IAccessControlManagerV8 } from \"./../Governance/IAccessControlManagerV8.sol\";\n\n/**\n * @title BaseOmnichainControllerSrc\n * @dev This contract is the base for the Omnichain controller source contracts.\n * It provides functionality related to daily command limits and pausability.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\n\ncontract BaseOmnichainControllerSrc is Ownable, Pausable {\n    /**\n     * @notice ACM (Access Control Manager) contract address\n     */\n    address public accessControlManager;\n\n    /**\n     * @notice Maximum daily limit for commands from the local chain\n     */\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\n\n    /**\n     * @notice Total commands transferred within the last 24-hour window from the local chain\n     */\n    mapping(uint16 => uint256) public chainIdToLast24HourCommandsSent;\n\n    /**\n     * @notice Timestamp when the last 24-hour window started from the local chain\n     */\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\n    /**\n     * @notice Timestamp when the last proposal sent from the local chain to dest chain\n     */\n    mapping(uint16 => uint256) public chainIdToLastProposalSentTimestamp;\n\n    /**\n     * @notice Emitted when the maximum daily limit of commands from the local chain is modified\n     */\n    event SetMaxDailyLimit(uint16 indexed chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\n    /*\n     * @notice Emitted when the address of ACM is updated\n     */\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\n\n    constructor(address accessControlManager_) {\n        ensureNonzeroAddress(accessControlManager_);\n        accessControlManager = accessControlManager_;\n    }\n\n    /**\n     * @notice Sets the limit of daily (24 Hour) command amount\n     * @param chainId_ Destination chain id\n     * @param limit_ Number of commands\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\n     */\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external {\n        _ensureAllowed(\"setMaxDailyLimit(uint16,uint256)\");\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\n        chainIdToMaxDailyLimit[chainId_] = limit_;\n    }\n\n    /**\n     * @notice Triggers the paused state of the controller\n     * @custom:access Controlled by AccessControlManager\n     */\n    function pause() external {\n        _ensureAllowed(\"pause()\");\n        _pause();\n    }\n\n    /**\n     * @notice Triggers the resume state of the controller\n     * @custom:access Controlled by AccessControlManager\n     */\n    function unpause() external {\n        _ensureAllowed(\"unpause()\");\n        _unpause();\n    }\n\n    /**\n     * @notice Sets the address of Access Control Manager (ACM)\n     * @param accessControlManager_ The new address of the Access Control Manager\n     * @custom:access Only owner\n     * @custom:event Emits NewAccessControlManager with old and new access control manager addresses\n     */\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\n        ensureNonzeroAddress(accessControlManager_);\n        emit NewAccessControlManager(accessControlManager, accessControlManager_);\n        accessControlManager = accessControlManager_;\n    }\n\n    /**\n     * @notice Empty implementation of renounce ownership to avoid any mishap\n     */\n    function renounceOwnership() public override {}\n\n    /**\n     * @notice Check eligibility to send commands\n     * @param dstChainId_ Destination chain id\n     * @param noOfCommands_ Number of commands to send\n     */\n    function _isEligibleToSend(uint16 dstChainId_, uint256 noOfCommands_) internal {\n        // Load values for the 24-hour window checks\n        uint256 currentBlockTimestamp = block.timestamp;\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\n        uint256 commandsSentInWindow = chainIdToLast24HourCommandsSent[dstChainId_];\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\n        uint256 lastProposalSentTimestamp = chainIdToLastProposalSentTimestamp[dstChainId_];\n\n        // Check if the time window has changed (more than 24 hours have passed)\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\n            commandsSentInWindow = noOfCommands_;\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\n        } else {\n            commandsSentInWindow += noOfCommands_;\n        }\n\n        // Revert if the amount exceeds the daily limit\n        require(commandsSentInWindow <= maxDailyLimit, \"Daily Transaction Limit Exceeded\");\n        // Revert if the last proposal is already sent in current block i.e multiple proposals cannot be sent within the same block.timestamp\n        require(lastProposalSentTimestamp != currentBlockTimestamp, \"Multiple bridging in a proposal\");\n\n        // Update the amount for the 24-hour window\n        chainIdToLast24HourCommandsSent[dstChainId_] = commandsSentInWindow;\n        // Update the last sent proposal timestamp\n        chainIdToLastProposalSentTimestamp[dstChainId_] = currentBlockTimestamp;\n    }\n\n    /**\n     * @notice Ensure that the caller has permission to execute a specific function\n     * @param functionSig_ Function signature to be checked for permission\n     */\n    function _ensureAllowed(string memory functionSig_) internal view {\n        require(\n            IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_),\n            \"access denied\"\n        );\n    }\n}\n"},"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.25;\n\ninterface IOmnichainGovernanceExecutor {\n    /**\n     * @notice Transfers ownership of the contract to the specified address\n     * @param addr The address to which ownership will be transferred\n     */\n    function transferOwnership(address addr) external;\n\n    /**\n     * @notice Sets the source message sender address\n     * @param srcChainId_ The LayerZero id of a source chain\n     * @param srcAddress_ The address of the contract on the source chain\n     */\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external;\n}\n"},"contracts/Cross-chain/interfaces/ITimelock.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\n/**\n * @title ITimelock\n * @author Venus\n * @dev Interface for Timelock contract\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ninterface ITimelock {\n    /**\n     * @notice Delay period for the transaction queue\n     */\n    function delay() external view returns (uint256);\n\n    /**\n     * @notice Required period to execute a proposal transaction\n     */\n    function GRACE_PERIOD() external view returns (uint256);\n\n    /**\n     * @notice Method for accepting a proposed admin\n     */\n    function acceptAdmin() external;\n\n    /**\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract.\n     */\n    function setPendingAdmin(address pendingAdmin) external;\n\n    /**\n     * @notice Show mapping of queued transactions\n     * @param hash Transaction hash\n     */\n    function queuedTransactions(bytes32 hash) external view returns (bool);\n\n    /**\n     * @notice Called for each action when queuing a proposal\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @return Hash of the queued transaction\n     */\n    function queueTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) external returns (bytes32);\n\n    /**\n     * @notice Called to cancel a queued transaction\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     */\n    function cancelTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) external;\n\n    /**\n     * @notice Called to execute a queued transaction\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @return Result of function call\n     */\n    function executeTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) external payable returns (bytes memory);\n}\n"},"contracts/Cross-chain/OmnichainExecutorOwner.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { AccessControlledV8 } from \"../Governance/AccessControlledV8.sol\";\nimport { IOmnichainGovernanceExecutor } from \"./interfaces/IOmnichainGovernanceExecutor.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title OmnichainExecutorOwner\n * @author Venus\n * @notice OmnichainProposalSender contract acts as a governance and access control mechanism,\n * allowing owner to upsert signature of OmnichainGovernanceExecutor contract,\n * also contains function to transfer the ownership of contract as well.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\n\ncontract OmnichainExecutorOwner is AccessControlledV8 {\n    /**\n     *  @custom:oz-upgrades-unsafe-allow state-variable-immutable\n     */\n    IOmnichainGovernanceExecutor public immutable OMNICHAIN_GOVERNANCE_EXECUTOR;\n\n    /**\n     * @notice Stores function signature corresponding to their 4 bytes hash value\n     */\n    mapping(bytes4 => string) public functionRegistry;\n\n    /**\n     * @notice Event emitted when function registry updated\n     */\n    event FunctionRegistryChanged(string indexed signature, bool active);\n\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor(address omnichainGovernanceExecutor_) {\n        require(omnichainGovernanceExecutor_ != address(0), \"Address must not be zero\");\n        OMNICHAIN_GOVERNANCE_EXECUTOR = IOmnichainGovernanceExecutor(omnichainGovernanceExecutor_);\n        _disableInitializers();\n    }\n\n    /**\n     * @notice Initialize the contract\n     * @param accessControlManager_  Address of access control manager\n     */\n    function initialize(address accessControlManager_) external initializer {\n        require(accessControlManager_ != address(0), \"Address must not be zero\");\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Sets the source message sender address\n     * @param srcChainId_ The LayerZero id of a source chain\n     * @param srcAddress_ The address of the contract on the source chain\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits SetTrustedRemoteAddress with source chain Id and source address\n     */\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external {\n        _checkAccessAllowed(\"setTrustedRemoteAddress(uint16,bytes)\");\n        require(srcChainId_ != 0, \"ChainId must not be zero\");\n        ensureNonzeroAddress(address(uint160(bytes20(srcAddress_))));\n        require(srcAddress_.length == 20, \"Source address must be 20 bytes long\");\n        OMNICHAIN_GOVERNANCE_EXECUTOR.setTrustedRemoteAddress(srcChainId_, srcAddress_);\n    }\n\n    /**\n     * @notice Invoked when called function does not exist in the contract\n     * @param data_ Calldata containing the encoded function call\n     * @return Result of function call\n     * @custom:access Controlled by Access Control Manager\n     */\n    fallback(bytes calldata data_) external returns (bytes memory) {\n        string memory fun = functionRegistry[msg.sig];\n        require(bytes(fun).length != 0, \"Function not found\");\n        _checkAccessAllowed(fun);\n        (bool ok, bytes memory res) = address(OMNICHAIN_GOVERNANCE_EXECUTOR).call(data_);\n        require(ok, \"call failed\");\n        return res;\n    }\n\n    /**\n     * @notice A 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     */\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; ++i) {\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        }\n    }\n\n    /**\n     * @notice This function transfer the ownership of the executor from this contract to new owner\n     * @param newOwner_ New owner of the governanceExecutor\n     * @custom:access Controlled by AccessControlManager\n     */\n\n    function transferBridgeOwnership(address newOwner_) external {\n        _checkAccessAllowed(\"transferBridgeOwnership(address)\");\n        require(newOwner_ != address(0), \"Address must not be zero\");\n        OMNICHAIN_GOVERNANCE_EXECUTOR.transferOwnership(newOwner_);\n    }\n\n    /**\n     *  @notice Empty implementation of renounce ownership to avoid any mishappening\n     */\n    function renounceOwnership() public virtual override {}\n}\n"},"contracts/Cross-chain/OmnichainGovernanceExecutor.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.25;\n\nimport { ReentrancyGuard } from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport { BytesLib } from \"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\";\nimport { ExcessivelySafeCall } from \"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { BaseOmnichainControllerDest } from \"./BaseOmnichainControllerDest.sol\";\nimport { ITimelock } from \"./interfaces/ITimelock.sol\";\n\n/**\n * @title OmnichainGovernanceExecutor\n * @notice Executes the proposal transactions sent from the main chain\n * @dev The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor\n * This implementation is non-blocking, meaning the failed messages will not block the future messages from the source.\n * For the blocking behavior, derive the contract from LzApp.\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\ncontract OmnichainGovernanceExecutor is ReentrancyGuard, BaseOmnichainControllerDest {\n    using BytesLib for bytes;\n    using ExcessivelySafeCall for address;\n\n    enum ProposalType {\n        NORMAL,\n        FASTTRACK,\n        CRITICAL\n    }\n\n    struct Proposal {\n        /** Unique id for looking up a proposal */\n        uint256 id;\n        /** The timestamp that the proposal will be available for execution, set once the vote succeeds */\n        uint256 eta;\n        /** The ordered list of target addresses for calls to be made */\n        address[] targets;\n        /** The ordered list of values (i.e. msg.value) to be passed to the calls to be made */\n        uint256[] values;\n        /** The ordered list of function signatures to be called */\n        string[] signatures;\n        /** The ordered list of calldata to be passed to each call */\n        bytes[] calldatas;\n        /** Flag marking whether the proposal has been canceled */\n        bool canceled;\n        /** Flag marking whether the proposal has been executed */\n        bool executed;\n        /** The type of the proposal */\n        uint8 proposalType;\n    }\n    /*\n     * @notice Possible states that a proposal may be in\n     */\n    enum ProposalState {\n        Canceled,\n        Queued,\n        Executed\n    }\n\n    /**\n     * @notice A privileged role that can cancel any proposal\n     */\n    address public guardian;\n\n    /**\n     * @notice Stores BNB chain layerzero endpoint id\n     */\n    uint16 public srcChainId;\n\n    /**\n     * @notice Last proposal count received\n     */\n    uint256 public lastProposalReceived;\n\n    /**\n     * @notice The official record of all proposals ever proposed\n     */\n    mapping(uint256 => Proposal) public proposals;\n\n    /**\n     * @notice Mapping containing Timelock addresses for each proposal type\n     */\n    mapping(uint256 => ITimelock) public proposalTimelocks;\n\n    /**\n     * @notice Represents queue state of proposal\n     */\n    mapping(uint256 => bool) public queued;\n\n    /**\n     * @notice Emitted when proposal is received\n     */\n    event ProposalReceived(\n        uint256 indexed proposalId,\n        address[] targets,\n        uint256[] values,\n        string[] signatures,\n        bytes[] calldatas,\n        uint8 proposalType\n    );\n\n    /**\n     * @notice Emitted when proposal is queued\n     */\n    event ProposalQueued(uint256 indexed id, uint256 eta);\n\n    /**\n     * Emitted when proposal executed\n     */\n    event ProposalExecuted(uint256 indexed id);\n\n    /**\n     * @notice Emitted when proposal failed\n     */\n    event ReceivePayloadFailed(uint16 indexed srcChainId, bytes indexed srcAddress, uint64 nonce, bytes reason);\n\n    /**\n     * @notice Emitted when proposal is canceled\n     */\n    event ProposalCanceled(uint256 indexed id);\n\n    /**\n     * @notice Emitted when timelock added\n     */\n    event TimelockAdded(uint8 routeType, address indexed oldTimelock, address indexed newTimelock);\n\n    /**\n     * @notice Emitted when source layerzero endpoint id is updated\n     */\n    event SetSrcChainId(uint16 indexed oldSrcChainId, uint16 indexed newSrcChainId);\n\n    /**\n     * @notice Emitted when new guardian address is set\n     */\n    event NewGuardian(address indexed oldGuardian, address indexed newGuardian);\n\n    /**\n     * @notice Emitted when pending admin of Timelock is updated\n     */\n    event SetTimelockPendingAdmin(address, uint8);\n\n    /**\n     * @notice Thrown when proposal ID is invalid\n     */\n    error InvalidProposalId();\n\n    constructor(address endpoint_, address guardian_, uint16 srcChainId_) BaseOmnichainControllerDest(endpoint_) {\n        ensureNonzeroAddress(guardian_);\n        guardian = guardian_;\n        srcChainId = srcChainId_;\n    }\n\n    /**\n     * @notice Update source layerzero endpoint id\n     * @param srcChainId_ The new source chain id to be set\n     * @custom:event Emit SetSrcChainId with old and new source id\n     * @custom:access Only owner\n     */\n    function setSrcChainId(uint16 srcChainId_) external onlyOwner {\n        emit SetSrcChainId(srcChainId, srcChainId_);\n        srcChainId = srcChainId_;\n    }\n\n    /**\n     * @notice Sets the new executor guardian\n     * @param newGuardian The address of the new guardian\n     * @custom:access Must be call by guardian or owner\n     * @custom:event Emit NewGuardian with old and new guardian address\n     */\n    function setGuardian(address newGuardian) external {\n        require(\n            msg.sender == guardian || msg.sender == owner(),\n            \"OmnichainGovernanceExecutor::setGuardian: owner or guardian only\"\n        );\n        ensureNonzeroAddress(newGuardian);\n        emit NewGuardian(guardian, newGuardian);\n        guardian = newGuardian;\n    }\n\n    /**\n     * @notice Add timelocks to the ProposalTimelocks mapping\n     * @param timelocks_ Array of addresses of all 3 timelocks\n     * @custom:access Only owner\n     * @custom:event Emits TimelockAdded with old and new timelock and route type\n     */\n    function addTimelocks(ITimelock[] memory timelocks_) external onlyOwner {\n        uint8 length = uint8(type(ProposalType).max) + 1;\n        require(\n            timelocks_.length == length,\n            \"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes\"\n        );\n        for (uint8 i; i < length; ++i) {\n            ensureNonzeroAddress(address(timelocks_[i]));\n            emit TimelockAdded(i, address(proposalTimelocks[i]), address(timelocks_[i]));\n            proposalTimelocks[i] = timelocks_[i];\n        }\n    }\n\n    /**\n     * @notice Executes a queued proposal if eta has passed\n     * @param proposalId_ Id of proposal that is to be executed\n     * @custom:event Emits ProposalExecuted with proposal id of executed proposal\n     */\n    function execute(uint256 proposalId_) external nonReentrant {\n        require(\n            state(proposalId_) == ProposalState.Queued,\n            \"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued\"\n        );\n\n        Proposal storage proposal = proposals[proposalId_];\n        proposal.executed = true;\n        ITimelock timelock = proposalTimelocks[proposal.proposalType];\n        uint256 eta = proposal.eta;\n        uint256 length = proposal.targets.length;\n\n        emit ProposalExecuted(proposalId_);\n\n        for (uint256 i; i < length; ++i) {\n            timelock.executeTransaction(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta\n            );\n        }\n        delete queued[proposalId_];\n    }\n\n    /**\n     * @notice Cancels a proposal only if sender is the guardian and proposal is not executed\n     * @param proposalId_ Id of proposal that is to be canceled\n     * @custom:access Sender must be the guardian\n     * @custom:event Emits ProposalCanceled with proposal id of the canceled proposal\n     */\n    function cancel(uint256 proposalId_) external {\n        require(\n            state(proposalId_) == ProposalState.Queued,\n            \"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed\"\n        );\n        Proposal storage proposal = proposals[proposalId_];\n        require(msg.sender == guardian, \"OmnichainGovernanceExecutor::cancel: sender must be guardian\");\n\n        proposal.canceled = true;\n        ITimelock timelock = proposalTimelocks[proposal.proposalType];\n        uint256 eta = proposal.eta;\n        uint256 length = proposal.targets.length;\n\n        emit ProposalCanceled(proposalId_);\n\n        for (uint256 i; i < length; ++i) {\n            timelock.cancelTransaction(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta\n            );\n        }\n        delete queued[proposalId_];\n    }\n\n    /**\n     * @notice Sets the new pending admin of the Timelock\n     * @param pendingAdmin_ Address of new pending admin\n     * @param proposalType_ Type of proposal\n     * @custom:access Only owner\n     * @custom:event Emits SetTimelockPendingAdmin with new pending admin and proposal type\n     */\n    function setTimelockPendingAdmin(address pendingAdmin_, uint8 proposalType_) external onlyOwner {\n        uint8 proposalTypeLength = uint8(type(ProposalType).max) + 1;\n        require(\n            proposalType_ < proposalTypeLength,\n            \"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type\"\n        );\n\n        proposalTimelocks[proposalType_].setPendingAdmin(pendingAdmin_);\n        emit SetTimelockPendingAdmin(pendingAdmin_, proposalType_);\n    }\n\n    /**\n     * @notice Resends a previously failed message\n     * @param srcChainId_ Source chain Id\n     * @param srcAddress_ Source address => local app address + remote app address\n     * @param nonce_ Nonce to identify failed message\n     * @param payload_ The payload of the message to be retried\n     * @custom:access Only owner\n     */\n    function retryMessage(\n        uint16 srcChainId_,\n        bytes calldata srcAddress_,\n        uint64 nonce_,\n        bytes calldata payload_\n    ) public payable override onlyOwner nonReentrant {\n        require(\n            keccak256(trustedRemoteLookup[srcChainId_]) == keccak256(srcAddress_),\n            \"OmnichainGovernanceExecutor::retryMessage: not a trusted remote\"\n        );\n        super.retryMessage(srcChainId_, srcAddress_, nonce_, payload_);\n    }\n\n    /**\n     * @notice Gets the state of a proposal\n     * @param proposalId_ The id of the proposal\n     * @return Proposal state\n     */\n    function state(uint256 proposalId_) public view returns (ProposalState) {\n        Proposal storage proposal = proposals[proposalId_];\n        if (proposal.canceled) {\n            return ProposalState.Canceled;\n        } else if (proposal.executed) {\n            return ProposalState.Executed;\n        } else if (queued[proposalId_]) {\n            // queued only when proposal is received\n            return ProposalState.Queued;\n        } else {\n            revert InvalidProposalId();\n        }\n    }\n\n    /**\n     * @notice Process blocking LayerZero receive request\n     * @param srcChainId_ Source chain Id\n     * @param srcAddress_ Source address from which payload is received\n     * @param nonce_ Nonce associated with the payload to prevent replay attacks\n     * @param payload_ Encoded payload containing proposal information\n     * @custom:event Emit ReceivePayloadFailed if call fails\n     */\n    function _blockingLzReceive(\n        uint16 srcChainId_,\n        bytes memory srcAddress_,\n        uint64 nonce_,\n        bytes memory payload_\n    ) internal virtual override {\n        require(srcChainId_ == srcChainId, \"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id\");\n        bytes32 hashedPayload = keccak256(payload_);\n        bytes memory callData = abi.encodeCall(this.nonblockingLzReceive, (srcChainId_, srcAddress_, nonce_, payload_));\n\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft() - 30000, 150, callData);\n        // try-catch all errors/exceptions\n        if (!success) {\n            failedMessages[srcChainId_][srcAddress_][nonce_] = hashedPayload;\n            emit ReceivePayloadFailed(srcChainId_, srcAddress_, nonce_, reason); // Retrieve payload from the src side tx if needed to clear\n        }\n    }\n\n    /**\n     * @notice Process non blocking LayerZero receive request\n     * @param payload_ Encoded payload containing proposal information\n     * @custom:event Emit ProposalReceived\n     */\n    function _nonblockingLzReceive(\n        uint16,\n        bytes memory,\n        uint64,\n        bytes memory payload_\n    ) internal virtual override whenNotPaused {\n        (bytes memory payload, uint256 pId) = abi.decode(payload_, (bytes, uint256));\n        (\n            address[] memory targets,\n            uint256[] memory values,\n            string[] memory signatures,\n            bytes[] memory calldatas,\n            uint8 pType\n        ) = abi.decode(payload, (address[], uint256[], string[], bytes[], uint8));\n        require(proposals[pId].id == 0, \"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal\");\n        require(\n            targets.length == values.length &&\n                targets.length == signatures.length &&\n                targets.length == calldatas.length,\n            \"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch\"\n        );\n        require(\n            pType < uint8(type(ProposalType).max) + 1,\n            \"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type\"\n        );\n        _isEligibleToReceive(targets.length);\n\n        Proposal memory newProposal = Proposal({\n            id: pId,\n            eta: 0,\n            targets: targets,\n            values: values,\n            signatures: signatures,\n            calldatas: calldatas,\n            canceled: false,\n            executed: false,\n            proposalType: pType\n        });\n\n        proposals[pId] = newProposal;\n        lastProposalReceived = pId;\n\n        emit ProposalReceived(newProposal.id, targets, values, signatures, calldatas, pType);\n        _queue(pId);\n    }\n\n    /**\n     * @notice Queue proposal for execution\n     * @param proposalId_ Proposal to be queued\n     * @custom:event Emit ProposalQueued with proposal id and eta\n     */\n    function _queue(uint256 proposalId_) internal {\n        Proposal storage proposal = proposals[proposalId_];\n        uint256 eta = block.timestamp + proposalTimelocks[proposal.proposalType].delay();\n\n        proposal.eta = eta;\n        queued[proposalId_] = true;\n        uint8 proposalType = proposal.proposalType;\n        uint256 length = proposal.targets.length;\n        emit ProposalQueued(proposalId_, eta);\n\n        for (uint256 i; i < length; ++i) {\n            _queueOrRevertInternal(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta,\n                proposalType\n            );\n        }\n    }\n\n    /**\n     * @notice Check for unique proposal\n     * @param target_ Address of the contract with the method to be called\n     * @param value_ Native token amount sent with the transaction\n     * @param signature_ Signature of the function to be called\n     * @param data_ Arguments to be passed to the function when called\n     * @param eta_ Timestamp after which the transaction can be executed\n     * @param proposalType_ Type of proposal\n     */\n    function _queueOrRevertInternal(\n        address target_,\n        uint256 value_,\n        string memory signature_,\n        bytes memory data_,\n        uint256 eta_,\n        uint8 proposalType_\n    ) internal {\n        require(\n            !proposalTimelocks[proposalType_].queuedTransactions(\n                keccak256(abi.encode(target_, value_, signature_, data_, eta_))\n            ),\n            \"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta\"\n        );\n\n        proposalTimelocks[proposalType_].queueTransaction(target_, value_, signature_, data_, eta_);\n    }\n}\n"},"contracts/Cross-chain/OmnichainProposalSender.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.25;\n\nimport { ReentrancyGuard } from \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport { ILayerZeroEndpoint } from \"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { BaseOmnichainControllerSrc } from \"./BaseOmnichainControllerSrc.sol\";\n\n/**\n * @title OmnichainProposalSender\n * @author Venus\n * @notice OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc\n * It sends a proposal's data to remote chains for execution after the proposal passes on the main chain\n * when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\n */\n\ncontract OmnichainProposalSender is ReentrancyGuard, BaseOmnichainControllerSrc {\n    /**\n     * @notice Stores the total number of remote proposals\n     */\n    uint256 public proposalCount;\n\n    /**\n     * @notice Execution hashes of failed messages\n     * @dev [proposalId] -> [executionHash]\n     */\n    mapping(uint256 => bytes32) public storedExecutionHashes;\n\n    /**\n     * @notice LayerZero endpoint for sending messages to remote chains\n     */\n    ILayerZeroEndpoint public immutable LZ_ENDPOINT;\n\n    /**\n     * @notice Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)\n     */\n    mapping(uint16 => bytes) public trustedRemoteLookup;\n\n    /**\n     * @notice Emitted when a remote message receiver is set for the remote chain\n     */\n    event SetTrustedRemoteAddress(uint16 indexed remoteChainId, bytes oldRemoteAddress, bytes newRemoteAddress);\n\n    /**\n     * @notice Event emitted when trusted remote sets to empty\n     */\n    event TrustedRemoteRemoved(uint16 indexed chainId);\n\n    /**\n     * @notice Emitted when a proposal execution request is sent to the remote chain\n     */\n    event ExecuteRemoteProposal(uint16 indexed remoteChainId, uint256 proposalId, bytes payload);\n\n    /**\n     * @notice Emitted when a previously failed message is successfully sent to the remote chain\n     */\n    event ClearPayload(uint256 indexed proposalId, bytes32 executionHash);\n\n    /**\n     * @notice Emitted when an execution hash of a failed message is saved\n     */\n    event StorePayload(\n        uint256 indexed proposalId,\n        uint16 indexed remoteChainId,\n        bytes payload,\n        bytes adapterParams,\n        uint256 value,\n        bytes reason\n    );\n    /**\n     * @notice Emitted while fallback withdraw\n     */\n    event FallbackWithdraw(address indexed receiver, uint256 value);\n\n    constructor(\n        ILayerZeroEndpoint lzEndpoint_,\n        address accessControlManager_\n    ) BaseOmnichainControllerSrc(accessControlManager_) {\n        ensureNonzeroAddress(address(lzEndpoint_));\n        LZ_ENDPOINT = lzEndpoint_;\n    }\n\n    /**\n     * @notice Estimates LayerZero fees for cross-chain message delivery to the remote chain\n     * @dev The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\n     * @param remoteChainId_ The LayerZero id of a remote chain\n     * @param payload_ The payload to be sent to the remote chain. It's computed as follows:\n     * payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n     * @param useZro_ Bool that indicates whether to pay in ZRO tokens or not\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n     * @return nativeFee The amount of fee in the native gas token (e.g. ETH)\n     * @return zroFee The amount of fee in ZRO token\n     */\n    function estimateFees(\n        uint16 remoteChainId_,\n        bytes calldata payload_,\n        bool useZro_,\n        bytes calldata adapterParams_\n    ) external view returns (uint256, uint256) {\n        return LZ_ENDPOINT.estimateFees(remoteChainId_, address(this), payload_, useZro_, adapterParams_);\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 Controlled by Access Control Manager\n     * @custom:event Emit TrustedRemoteRemoved with remote chain id\n     */\n    function removeTrustedRemote(uint16 remoteChainId_) external {\n        _ensureAllowed(\"removeTrustedRemote(uint16)\");\n        require(trustedRemoteLookup[remoteChainId_].length != 0, \"OmnichainProposalSender: trusted remote not found\");\n        delete trustedRemoteLookup[remoteChainId_];\n        emit TrustedRemoteRemoved(remoteChainId_);\n    }\n\n    /**\n     * @notice Sends a message to execute a remote proposal\n     * @dev Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\n     * @param remoteChainId_ The LayerZero id of the remote chain\n     * @param payload_ The payload to be sent to the remote chain\n     * It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n     * @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\n     * @custom:event Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on success\n     * @custom:event Emits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\n     * @custom:access Controlled by Access Control Manager\n     */\n    function execute(\n        uint16 remoteChainId_,\n        bytes calldata payload_,\n        bytes calldata adapterParams_,\n        address zroPaymentAddress_\n    ) external payable whenNotPaused {\n        _ensureAllowed(\"execute(uint16,bytes,bytes,address)\");\n\n        // A zero value will result in a failed message; therefore, a positive value is required to send a message across the chain.\n        require(msg.value > 0, \"OmnichainProposalSender: value cannot be zero\");\n        require(payload_.length != 0, \"OmnichainProposalSender: empty payload\");\n\n        bytes memory trustedRemote = trustedRemoteLookup[remoteChainId_];\n        require(trustedRemote.length != 0, \"OmnichainProposalSender: destination chain is not a trusted source\");\n        _validateProposal(remoteChainId_, payload_);\n        uint256 _pId = ++proposalCount;\n        bytes memory payload = abi.encode(payload_, _pId);\n\n        try\n            LZ_ENDPOINT.send{ value: msg.value }(\n                remoteChainId_,\n                trustedRemote,\n                payload,\n                payable(msg.sender),\n                zroPaymentAddress_,\n                adapterParams_\n            )\n        {\n            emit ExecuteRemoteProposal(remoteChainId_, _pId, payload);\n        } catch (bytes memory reason) {\n            storedExecutionHashes[_pId] = keccak256(abi.encode(remoteChainId_, payload, adapterParams_, msg.value));\n            emit StorePayload(_pId, remoteChainId_, payload, adapterParams_, msg.value, reason);\n        }\n    }\n\n    /**\n     * @notice Resends a previously failed message\n     * @dev Allows providing more fees if needed. The extra fees will be refunded to the caller\n     * @param pId_ The proposal ID to identify a failed message\n     * @param remoteChainId_ The LayerZero id of the remote chain\n     * @param payload_ The payload to be sent to the remote chain\n     * It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n     * @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction.\n     * @param originalValue_ The msg.value passed when execute() function was called\n     * @custom:event Emits ClearPayload with proposal ID and hash\n     * @custom:access Controlled by Access Control Manager\n     */\n    function retryExecute(\n        uint256 pId_,\n        uint16 remoteChainId_,\n        bytes calldata payload_,\n        bytes calldata adapterParams_,\n        address zroPaymentAddress_,\n        uint256 originalValue_\n    ) external payable whenNotPaused nonReentrant {\n        _ensureAllowed(\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\");\n        bytes memory trustedRemote = trustedRemoteLookup[remoteChainId_];\n        require(trustedRemote.length != 0, \"OmnichainProposalSender: destination chain is not a trusted source\");\n        bytes32 hash = storedExecutionHashes[pId_];\n        require(hash != bytes32(0), \"OmnichainProposalSender: no stored payload\");\n        require(payload_.length != 0, \"OmnichainProposalSender: empty payload\");\n        (bytes memory payload, ) = abi.decode(payload_, (bytes, uint256));\n        _validateProposal(remoteChainId_, payload);\n\n        require(\n            keccak256(abi.encode(remoteChainId_, payload_, adapterParams_, originalValue_)) == hash,\n            \"OmnichainProposalSender: invalid execution params\"\n        );\n\n        delete storedExecutionHashes[pId_];\n\n        emit ClearPayload(pId_, hash);\n\n        LZ_ENDPOINT.send{ value: originalValue_ + msg.value }(\n            remoteChainId_,\n            trustedRemote,\n            payload_,\n            payable(msg.sender),\n            zroPaymentAddress_,\n            adapterParams_\n        );\n    }\n\n    /**\n     * @notice Clear previously failed message\n     * @param to_ Address of the receiver\n     * @param pId_ The proposal ID to identify a failed message\n     * @param remoteChainId_ The LayerZero id of the remote chain\n     * @param payload_ The payload to be sent to the remote chain\n     * It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n     * @param originalValue_ The msg.value passed when execute() function was called\n     * @custom:access Only owner\n     * @custom:event Emits ClearPayload with proposal ID and hash\n     * @custom:event Emits FallbackWithdraw with receiver and amount\n     */\n    function fallbackWithdraw(\n        address to_,\n        uint256 pId_,\n        uint16 remoteChainId_,\n        bytes calldata payload_,\n        bytes calldata adapterParams_,\n        uint256 originalValue_\n    ) external onlyOwner nonReentrant {\n        ensureNonzeroAddress(to_);\n        require(originalValue_ > 0, \"OmnichainProposalSender: invalid native amount\");\n        require(payload_.length != 0, \"OmnichainProposalSender: empty payload\");\n\n        bytes32 hash = storedExecutionHashes[pId_];\n        require(hash != bytes32(0), \"OmnichainProposalSender: no stored payload\");\n\n        bytes memory execution = abi.encode(remoteChainId_, payload_, adapterParams_, originalValue_);\n        require(keccak256(execution) == hash, \"OmnichainProposalSender: invalid execution params\");\n\n        delete storedExecutionHashes[pId_];\n\n        emit FallbackWithdraw(to_, originalValue_);\n        emit ClearPayload(pId_, hash);\n\n        // Transfer the native to the `to_` address\n        (bool sent, ) = to_.call{ value: originalValue_ }(\"\");\n        require(sent, \"Call failed\");\n    }\n\n    /**\n     * @notice Sets the remote message receiver address\n     * @param remoteChainId_ The LayerZero id of a remote chain\n     * @param newRemoteAddress_ The address of the contract on the remote chain to receive messages sent by this contract\n     * @custom:access Controlled by AccessControlManager\n     * @custom:event Emits SetTrustedRemoteAddress with remote chain Id and remote address\n     */\n    function setTrustedRemoteAddress(uint16 remoteChainId_, bytes calldata newRemoteAddress_) external {\n        _ensureAllowed(\"setTrustedRemoteAddress(uint16,bytes)\");\n        require(remoteChainId_ != 0, \"OmnichainProposalSender: chainId must not be zero\");\n        ensureNonzeroAddress(address(uint160(bytes20(newRemoteAddress_))));\n        require(newRemoteAddress_.length == 20, \"OmnichainProposalSender: remote address must be 20 bytes long\");\n        bytes memory oldRemoteAddress = trustedRemoteLookup[remoteChainId_];\n        trustedRemoteLookup[remoteChainId_] = abi.encodePacked(newRemoteAddress_, address(this));\n        emit SetTrustedRemoteAddress(remoteChainId_, oldRemoteAddress, trustedRemoteLookup[remoteChainId_]);\n    }\n\n    /**\n     * @notice Sets the configuration of the LayerZero messaging library of the specified version\n     * @param version_ Messaging library version\n     * @param chainId_ The LayerZero chainId for the pending config change\n     * @param configType_ The type of configuration. Every messaging library has its own convention\n     * @param config_ The configuration in bytes. It can encode arbitrary content\n     * @custom:access Controlled by AccessControlManager\n     */\n    function setConfig(uint16 version_, uint16 chainId_, uint256 configType_, bytes calldata config_) external {\n        _ensureAllowed(\"setConfig(uint16,uint16,uint256,bytes)\");\n        LZ_ENDPOINT.setConfig(version_, chainId_, configType_, config_);\n    }\n\n    /**\n     * @notice Sets the configuration of the LayerZero messaging library of the specified version\n     * @param version_ New messaging library version\n     * @custom:access Controlled by AccessControlManager\n     */\n    function setSendVersion(uint16 version_) external {\n        _ensureAllowed(\"setSendVersion(uint16)\");\n        LZ_ENDPOINT.setSendVersion(version_);\n    }\n\n    /**\n     * @notice Gets the configuration of the LayerZero messaging library of the specified version\n     * @param version_ Messaging library version\n     * @param chainId_ The LayerZero chainId\n     * @param configType_ Type of configuration. Every messaging library has its own convention\n     */\n    function getConfig(uint16 version_, uint16 chainId_, uint256 configType_) external view returns (bytes memory) {\n        return LZ_ENDPOINT.getConfig(version_, chainId_, address(this), configType_);\n    }\n\n    function _validateProposal(uint16 remoteChainId_, bytes memory payload_) internal {\n        (\n            address[] memory targets,\n            uint256[] memory values,\n            string[] memory signatures,\n            bytes[] memory calldatas,\n\n        ) = abi.decode(payload_, (address[], uint[], string[], bytes[], uint8));\n        require(\n            targets.length == values.length &&\n                targets.length == signatures.length &&\n                targets.length == calldatas.length,\n            \"OmnichainProposalSender: proposal function information arity mismatch\"\n        );\n        _isEligibleToSend(remoteChainId_, targets.length);\n    }\n}\n"},"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"},"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"},"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"},"contracts/Governance/TimelockV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title TimelockV8\n * @author Venus\n * @notice The Timelock contract using solidity V8.\n * This contract also differs from the original timelock because it has a virtual function to get minimum delays\n * and allow test deployments to override the value.\n */\ncontract TimelockV8 {\n    /// @notice Required period to execute a proposal transaction\n    uint256 private constant DEFAULT_GRACE_PERIOD = 14 days;\n\n    /// @notice Minimum amount of time a proposal transaction must be queued\n    uint256 private constant DEFAULT_MINIMUM_DELAY = 1 hours;\n\n    /// @notice Maximum amount of time a proposal transaction must be queued\n    uint256 private constant DEFAULT_MAXIMUM_DELAY = 30 days;\n\n    /// @notice Timelock admin authorized to queue and execute transactions\n    address public admin;\n\n    /// @notice Account proposed as the next admin\n    address public pendingAdmin;\n\n    /// @notice Period for a proposal transaction to be queued\n    uint256 public delay;\n\n    /// @notice Mapping of queued transactions\n    mapping(bytes32 => bool) public queuedTransactions;\n\n    /// @notice Event emitted when a new admin is accepted\n    event NewAdmin(address indexed oldAdmin, address indexed newAdmin);\n\n    /// @notice Event emitted when a new admin is proposed\n    event NewPendingAdmin(address indexed newPendingAdmin);\n\n    /// @notice Event emitted when a new delay is proposed\n    event NewDelay(uint256 indexed oldDelay, uint256 indexed newDelay);\n\n    /// @notice Event emitted when a proposal transaction has been cancelled\n    event CancelTransaction(\n        bytes32 indexed txHash,\n        address indexed target,\n        uint256 value,\n        string signature,\n        bytes data,\n        uint256 eta\n    );\n\n    /// @notice Event emitted when a proposal transaction has been executed\n    event ExecuteTransaction(\n        bytes32 indexed txHash,\n        address indexed target,\n        uint256 value,\n        string signature,\n        bytes data,\n        uint256 eta\n    );\n\n    /// @notice Event emitted when a proposal transaction has been queued\n    event QueueTransaction(\n        bytes32 indexed txHash,\n        address indexed target,\n        uint256 value,\n        string signature,\n        bytes data,\n        uint256 eta\n    );\n\n    constructor(address admin_, uint256 delay_) {\n        require(delay_ >= MINIMUM_DELAY(), \"Timelock::constructor: Delay must exceed minimum delay.\");\n        require(delay_ <= MAXIMUM_DELAY(), \"Timelock::setDelay: Delay must not exceed maximum delay.\");\n        ensureNonzeroAddress(admin_);\n\n        admin = admin_;\n        delay = delay_;\n    }\n\n    fallback() external payable {}\n\n    /**\n     * @notice Setter for the transaction queue delay\n     * @param delay_ The new delay period for the transaction queue\n     * @custom:access Sender must be Timelock itself\n     * @custom:event Emit NewDelay with old and new delay\n     */\n    function setDelay(uint256 delay_) public {\n        require(msg.sender == address(this), \"Timelock::setDelay: Call must come from Timelock.\");\n        require(delay_ >= MINIMUM_DELAY(), \"Timelock::setDelay: Delay must exceed minimum delay.\");\n        require(delay_ <= MAXIMUM_DELAY(), \"Timelock::setDelay: Delay must not exceed maximum delay.\");\n        emit NewDelay(delay, delay_);\n        delay = delay_;\n    }\n\n    /**\n     * @notice Return grace period\n     * @return The duration of the grace period, specified as a uint256 value.\n     */\n    function GRACE_PERIOD() public view virtual returns (uint256) {\n        return DEFAULT_GRACE_PERIOD;\n    }\n\n    /**\n     * @notice Return required minimum delay\n     * @return Minimum delay\n     */\n    function MINIMUM_DELAY() public view virtual returns (uint256) {\n        return DEFAULT_MINIMUM_DELAY;\n    }\n\n    /**\n     * @notice Return required maximum delay\n     * @return Maximum delay\n     */\n    function MAXIMUM_DELAY() public view virtual returns (uint256) {\n        return DEFAULT_MAXIMUM_DELAY;\n    }\n\n    /**\n     * @notice Method for accepting a proposed admin\n     * @custom:access Sender must be pending admin\n     * @custom:event Emit NewAdmin with old and new admin\n     */\n    function acceptAdmin() public {\n        require(msg.sender == pendingAdmin, \"Timelock::acceptAdmin: Call must come from pendingAdmin.\");\n        emit NewAdmin(admin, msg.sender);\n        admin = msg.sender;\n        pendingAdmin = address(0);\n    }\n\n    /**\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\n     * @param pendingAdmin_ Address of the proposed admin\n     * @custom:access Sender must be Timelock contract itself or admin\n     * @custom:event Emit NewPendingAdmin with new pending admin\n     */\n    function setPendingAdmin(address pendingAdmin_) public {\n        require(\n            msg.sender == address(this) || msg.sender == admin,\n            \"Timelock::setPendingAdmin: Call must come from Timelock.\"\n        );\n        ensureNonzeroAddress(pendingAdmin_);\n        pendingAdmin = pendingAdmin_;\n\n        emit NewPendingAdmin(pendingAdmin);\n    }\n\n    /**\n     * @notice Called for each action when queuing a proposal\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature Signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @return Hash of the queued transaction\n     * @custom:access Sender must be admin\n     * @custom:event Emit QueueTransaction\n     */\n    function queueTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) public returns (bytes32) {\n        require(msg.sender == admin, \"Timelock::queueTransaction: Call must come from admin.\");\n        require(\n            eta >= getBlockTimestamp() + delay,\n            \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\"\n        );\n\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n        require(!queuedTransactions[txHash], \"Timelock::queueTransaction: transaction already queued.\");\n        queuedTransactions[txHash] = true;\n\n        emit QueueTransaction(txHash, target, value, signature, data, eta);\n        return txHash;\n    }\n\n    /**\n     * @notice Called to cancel a queued transaction\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature Signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @custom:access Sender must be admin\n     * @custom:event Emit CancelTransaction\n     */\n    function cancelTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) public {\n        require(msg.sender == admin, \"Timelock::cancelTransaction: Call must come from admin.\");\n\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n        require(queuedTransactions[txHash], \"Timelock::cancelTransaction: transaction is not queued yet.\");\n        delete (queuedTransactions[txHash]);\n\n        emit CancelTransaction(txHash, target, value, signature, data, eta);\n    }\n\n    /**\n     * @notice Called to execute a queued transaction\n     * @param target Address of the contract with the method to be called\n     * @param value Native token amount sent with the transaction\n     * @param signature Signature of the function to be called\n     * @param data Arguments to be passed to the function when called\n     * @param eta Timestamp after which the transaction can be executed\n     * @return Result of function call\n     * @custom:access Sender must be admin\n     * @custom:event Emit ExecuteTransaction\n     */\n    function executeTransaction(\n        address target,\n        uint256 value,\n        string calldata signature,\n        bytes calldata data,\n        uint256 eta\n    ) public returns (bytes memory) {\n        require(msg.sender == admin, \"Timelock::executeTransaction: Call must come from admin.\");\n\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\n        require(queuedTransactions[txHash], \"Timelock::executeTransaction: Transaction hasn't been queued.\");\n        require(getBlockTimestamp() >= eta, \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\");\n        require(getBlockTimestamp() <= eta + GRACE_PERIOD(), \"Timelock::executeTransaction: Transaction is stale.\");\n\n        delete (queuedTransactions[txHash]);\n\n        bytes memory callData;\n\n        if (bytes(signature).length == 0) {\n            callData = data;\n        } else {\n            callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\n        }\n\n        // solium-disable-next-line security/no-call-value\n        (bool success, bytes memory returnData) = target.call{ value: value }(callData);\n        require(success, \"Timelock::executeTransaction: Transaction execution reverted.\");\n\n        emit ExecuteTransaction(txHash, target, value, signature, data, eta);\n\n        return returnData;\n    }\n\n    /**\n     * @notice Returns the current block timestamp\n     * @return The current block timestamp\n     */\n    function getBlockTimestamp() internal view returns (uint256) {\n        // solium-disable-next-line security/no-block-members\n        return block.timestamp;\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/MockAccessTest.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"../Governance/AccessControlledV8.sol\";\nimport \"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\";\n\ncontract MockAccessTest is AccessControlledV8 {\n    /**\n     * @param accessControlManager Access control manager contract address\n     */\n    function initialize(address accessControlManager) external initializer {\n        __AccessControlled_init_unchained(accessControlManager);\n    }\n}\n"},"contracts/test/MockXVSVault.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\ncontract MockXVSVault {\n    /* solhint-disable no-unused-vars */\n    function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\n        /* solhint-enable no-unused-vars */\n        return 0;\n    }\n}\n"},"contracts/test/TestTimelockV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\nimport { TimelockV8 } from \"../Governance/TimelockV8.sol\";\n\ncontract TestTimelockV8 is TimelockV8 {\n    constructor(address admin_, uint256 delay_) public TimelockV8(admin_, delay_) {}\n\n    function GRACE_PERIOD() public view override returns (uint256) {\n        return 1 hours;\n    }\n\n    function MINIMUM_DELAY() public view override returns (uint256) {\n        return 1;\n    }\n\n    function MAXIMUM_DELAY() public view override returns (uint256) {\n        return 1 hours;\n    }\n}\n"},"contracts/Utils/ACMCommandsAggregator.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IAccessControlManagerV8 } from \"../Governance/IAccessControlManagerV8.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title ACMCommandsAggregator\n * @author Venus\n * @notice This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go.\n */\ncontract ACMCommandsAggregator {\n    /*\n     * @notice Struct to store permission details\n     */\n    struct Permission {\n        /*\n         * @notice Address of the contract\n         */\n        address contractAddress;\n        /*\n         * @notice Function signature\n         */\n        string functionSig;\n        /*\n         * @notice Address of the account\n         */\n        address account;\n    }\n\n    /**\n     * @notice Access control manager contract\n     */\n    IAccessControlManagerV8 public immutable ACM;\n\n    /*\n     * @notice 2D array to store grant permissions in batches\n     */\n    Permission[][] public grantPermissions;\n\n    /*\n     * @notice 2D array to store revoke permissions in batches\n     */\n    Permission[][] public revokePermissions;\n\n    /*\n     * @notice Event emitted when grant permissions are added\n     */\n    event GrantPermissionsAdded(uint256 index);\n\n    /*\n     * @notice Event emitted when revoke permissions are added\n     */\n    event RevokePermissionsAdded(uint256 index);\n\n    /*\n     * @notice Event emitted when grant permissions are executed\n     */\n    event GrantPermissionsExecuted(uint256 index);\n\n    /*\n     * @notice Event emitted when revoke permissions are executed\n     */\n    event RevokePermissionsExecuted(uint256 index);\n\n    /*\n     * @notice Error to be thrown when permissions are empty\n     */\n    error EmptyPermissions();\n\n    /*\n     * @notice Constructor to set the access control manager\n     * @param _acm Address of the access control manager\n     */\n    constructor(IAccessControlManagerV8 _acm) {\n        ensureNonzeroAddress(address(_acm));\n        ACM = _acm;\n    }\n\n    /*\n     * @notice Function to add grant permissions\n     * @param _permissions Array of permissions\n     * @custom:event Emits GrantPermissionsAdded event\n     */\n    function addGrantPermissions(Permission[] memory _permissions) external {\n        if (_permissions.length == 0) {\n            revert EmptyPermissions();\n        }\n\n        uint256 index = grantPermissions.length;\n        grantPermissions.push();\n\n        for (uint256 i; i < _permissions.length; ++i) {\n            grantPermissions[index].push(\n                Permission(_permissions[i].contractAddress, _permissions[i].functionSig, _permissions[i].account)\n            );\n        }\n\n        emit GrantPermissionsAdded(index);\n    }\n\n    /*\n     * @notice Function to add revoke permissions\n     * @param _permissions Array of permissions\n     * @custom:event Emits RevokePermissionsAdded event\n     */\n    function addRevokePermissions(Permission[] memory _permissions) external {\n        if (_permissions.length == 0) {\n            revert EmptyPermissions();\n        }\n\n        uint256 index = revokePermissions.length;\n        revokePermissions.push();\n\n        for (uint256 i; i < _permissions.length; ++i) {\n            revokePermissions[index].push(\n                Permission(_permissions[i].contractAddress, _permissions[i].functionSig, _permissions[i].account)\n            );\n        }\n\n        emit RevokePermissionsAdded(index);\n    }\n\n    /*\n     * @notice Function to execute grant permissions\n     * @param index Index of the permissions array\n     * @custom:event Emits GrantPermissionsExecuted event\n     */\n    function executeGrantPermissions(uint256 index) external {\n        uint256 length = grantPermissions[index].length;\n        for (uint256 i; i < length; ++i) {\n            Permission memory permission = grantPermissions[index][i];\n            ACM.giveCallPermission(permission.contractAddress, permission.functionSig, permission.account);\n        }\n\n        emit GrantPermissionsExecuted(index);\n    }\n\n    /*\n     * @notice Function to execute revoke permissions\n     * @param index Index of the permissions array\n     * @custom:event Emits RevokePermissionsExecuted event\n     */\n    function executeRevokePermissions(uint256 index) external {\n        uint256 length = revokePermissions[index].length;\n        for (uint256 i; i < length; ++i) {\n            Permission memory permission = revokePermissions[index][i];\n            ACM.revokeCallPermission(permission.contractAddress, permission.functionSig, permission.account);\n        }\n\n        emit RevokePermissionsExecuted(index);\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":10000},"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":"3628","formattedMessage":"Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.\n  --> contracts/Governance/TimelockV8.sol:12:1:\n   |\n12 | contract TimelockV8 {\n   | ^ (Relevant source part starts here and spans across multiple lines).\nNote: The payable fallback function is defined here.\n  --> contracts/Governance/TimelockV8.sol:82:5:\n   |\n82 |     fallback() external payable {}\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.","secondarySourceLocations":[{"end":2807,"file":"contracts/Governance/TimelockV8.sol","message":"The payable fallback function is defined here.","start":2777}],"severity":"warning","sourceLocation":{"end":9867,"file":"contracts/Governance/TimelockV8.sol","start":429},"type":"Warning"},{"component":"general","errorCode":"3628","formattedMessage":"Warning: This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.\n --> contracts/test/TestTimelockV8.sol:5:1:\n  |\n5 | contract TestTimelockV8 is TimelockV8 {\n  | ^ (Relevant source part starts here and spans across multiple lines).\nNote: The payable fallback function is defined here.\n  --> contracts/Governance/TimelockV8.sol:82:5:\n   |\n82 |     fallback() external payable {}\n   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.","secondarySourceLocations":[{"end":2807,"file":"contracts/Governance/TimelockV8.sol","message":"The payable fallback function is defined here.","start":2777}],"severity":"warning","sourceLocation":{"end":547,"file":"contracts/test/TestTimelockV8.sol","start":125},"type":"Warning"},{"component":"general","errorCode":"2462","formattedMessage":"Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> contracts/test/TestTimelockV8.sol:6:5:\n  |\n6 |     constructor(address admin_, uint256 delay_) public TimelockV8(admin_, delay_) {}\n  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.","severity":"warning","sourceLocation":{"end":249,"file":"contracts/test/TestTimelockV8.sol","start":169},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/test/MockXVSVault.sol:6:28:\n  |\n6 |     function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\n  |                            ^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":173,"file":"contracts/test/MockXVSVault.sol","start":158},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/test/MockXVSVault.sol:6:45:\n  |\n6 |     function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\n  |                                             ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":194,"file":"contracts/test/MockXVSVault.sol","start":175},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/MockXVSVault.sol:6:5:\n  |\n6 |     function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\n  |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":296,"file":"contracts/test/MockXVSVault.sol","start":135},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestTimelockV8.sol:8:5:\n  |\n8 |     function GRACE_PERIOD() public view override returns (uint256) {\n  |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":349,"file":"contracts/test/TestTimelockV8.sol","start":255},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n  --> contracts/test/TestTimelockV8.sol:12:5:\n   |\n12 |     function MINIMUM_DELAY() public view override returns (uint256) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":444,"file":"contracts/test/TestTimelockV8.sol","start":355},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n  --> contracts/test/TestTimelockV8.sol:16:5:\n   |\n16 |     function MAXIMUM_DELAY() public view override returns (uint256) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":545,"file":"contracts/test/TestTimelockV8.sol","start":450},"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":[4364],"ILayerZeroEndpoint":[1357],"ILayerZeroReceiver":[1371],"ILayerZeroUserApplicationConfig":[1402],"LzApp":[971],"Ownable":[4180]},"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":4181,"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":4180,"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,4180,4364],"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":4354,"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":4099,"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":4099,"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":4099,"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":4099,"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":4099,"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":4099,"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":4099,"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":4099,"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":4099,"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,4081]}],"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":[4364],"ExcessivelySafeCall":[429],"ILayerZeroEndpoint":[1357],"ILayerZeroReceiver":[1371],"ILayerZeroUserApplicationConfig":[1402],"LzApp":[971],"NonblockingLzApp":[1212],"Ownable":[4180]},"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,4180,4364],"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:373: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":"1422:8:3","subExpression":{"id":1055,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"1423:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1066,"nodeType":"IfStatement","src":"1418:110:3","trueBody":{"id":1065,"nodeType":"Block","src":"1432:96:3","statements":[{"expression":{"arguments":[{"id":1058,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1466:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1059,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1023,"src":"1479:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1060,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1025,"src":"1492:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1061,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"1500:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1062,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1510: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":"1446: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":"1446:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1064,"nodeType":"ExpressionStatement","src":"1446: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:549:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1101,"nodeType":"Block","src":"1738: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":"1748: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":"1763:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1748: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":"1776:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1748: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":"1789:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1748:48:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1089,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"1809: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":"1799: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":"1799:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1748:70:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1092,"nodeType":"ExpressionStatement","src":"1748:70:3"},{"eventCall":{"arguments":[{"id":1094,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1070,"src":"1847:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1095,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1072,"src":"1860:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1096,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"1873:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1097,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"1881:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1098,"name":"_reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"1891: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":"1833: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":"1833:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1100,"nodeType":"EmitStatement","src":"1828:71:3"}]},"id":1102,"implemented":true,"kind":"function","modifiers":[],"name":"_storeFailedMessage","nameLocation":"1549:19:3","nodeType":"FunctionDefinition","parameters":{"id":1079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1070,"mutability":"mutable","name":"_srcChainId","nameLocation":"1585:11:3","nodeType":"VariableDeclaration","scope":1102,"src":"1578:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1069,"name":"uint16","nodeType":"ElementaryTypeName","src":"1578:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1072,"mutability":"mutable","name":"_srcAddress","nameLocation":"1619:11:3","nodeType":"VariableDeclaration","scope":1102,"src":"1606:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1071,"name":"bytes","nodeType":"ElementaryTypeName","src":"1606:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1074,"mutability":"mutable","name":"_nonce","nameLocation":"1647:6:3","nodeType":"VariableDeclaration","scope":1102,"src":"1640:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1073,"name":"uint64","nodeType":"ElementaryTypeName","src":"1640:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1076,"mutability":"mutable","name":"_payload","nameLocation":"1676:8:3","nodeType":"VariableDeclaration","scope":1102,"src":"1663:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1075,"name":"bytes","nodeType":"ElementaryTypeName","src":"1663:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1078,"mutability":"mutable","name":"_reason","nameLocation":"1707:7:3","nodeType":"VariableDeclaration","scope":1102,"src":"1694:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1077,"name":"bytes","nodeType":"ElementaryTypeName","src":"1694:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1568:152:3"},"returnParameters":{"id":1080,"nodeType":"ParameterList","parameters":[],"src":"1738:0:3"},"scope":1212,"src":"1540:366:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1131,"nodeType":"Block","src":"2083: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":4354,"src":"2138: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":"2138: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":"2162: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":"2154:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1116,"name":"address","nodeType":"ElementaryTypeName","src":"2154:7:3","typeDescriptions":{}}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2138: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":"2169: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":"2130: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":"2130:80:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1123,"nodeType":"ExpressionStatement","src":"2130:80:3"},{"expression":{"arguments":[{"id":1125,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"2242:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1126,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"2255:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1127,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1108,"src":"2268:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1128,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"2276: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":"2220: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":"2220:65:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1130,"nodeType":"ExpressionStatement","src":"2220:65:3"}]},"functionSelector":"66ad5c8a","id":1132,"implemented":true,"kind":"function","modifiers":[],"name":"nonblockingLzReceive","nameLocation":"1921:20:3","nodeType":"FunctionDefinition","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1104,"mutability":"mutable","name":"_srcChainId","nameLocation":"1958:11:3","nodeType":"VariableDeclaration","scope":1132,"src":"1951:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1103,"name":"uint16","nodeType":"ElementaryTypeName","src":"1951:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1106,"mutability":"mutable","name":"_srcAddress","nameLocation":"1994:11:3","nodeType":"VariableDeclaration","scope":1132,"src":"1979:26:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1105,"name":"bytes","nodeType":"ElementaryTypeName","src":"1979:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"_nonce","nameLocation":"2022:6:3","nodeType":"VariableDeclaration","scope":1132,"src":"2015:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1107,"name":"uint64","nodeType":"ElementaryTypeName","src":"2015:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1110,"mutability":"mutable","name":"_payload","nameLocation":"2053:8:3","nodeType":"VariableDeclaration","scope":1132,"src":"2038:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1109,"name":"bytes","nodeType":"ElementaryTypeName","src":"2038:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1941:126:3"},"returnParameters":{"id":1112,"nodeType":"ParameterList","parameters":[],"src":"2083:0:3"},"scope":1212,"src":"1912:380:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":1143,"implemented":false,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"2344:21:3","nodeType":"FunctionDefinition","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1134,"mutability":"mutable","name":"_srcChainId","nameLocation":"2382:11:3","nodeType":"VariableDeclaration","scope":1143,"src":"2375:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1133,"name":"uint16","nodeType":"ElementaryTypeName","src":"2375:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1136,"mutability":"mutable","name":"_srcAddress","nameLocation":"2416:11:3","nodeType":"VariableDeclaration","scope":1143,"src":"2403:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1135,"name":"bytes","nodeType":"ElementaryTypeName","src":"2403:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1138,"mutability":"mutable","name":"_nonce","nameLocation":"2444:6:3","nodeType":"VariableDeclaration","scope":1143,"src":"2437:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1137,"name":"uint64","nodeType":"ElementaryTypeName","src":"2437:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1140,"mutability":"mutable","name":"_payload","nameLocation":"2473:8:3","nodeType":"VariableDeclaration","scope":1143,"src":"2460:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1139,"name":"bytes","nodeType":"ElementaryTypeName","src":"2460:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2365:122:3"},"returnParameters":{"id":1142,"nodeType":"ParameterList","parameters":[],"src":"2504:0:3"},"scope":1212,"src":"2335:170:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1210,"nodeType":"Block","src":"2682:624:3","statements":[{"assignments":[1155],"declarations":[{"constant":false,"id":1155,"mutability":"mutable","name":"payloadHash","nameLocation":"2744:11:3","nodeType":"VariableDeclaration","scope":1210,"src":"2736:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2736: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":"2758: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":"2773:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2758: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":"2786:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2758: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":"2799:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2758:48:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2736: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":"2824: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":"2847: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":"2839:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2839:7:3","typeDescriptions":{}}},"id":1169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2824: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":"2851: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":"2816: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":"2816:73:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1173,"nodeType":"ExpressionStatement","src":"2816: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":"2917: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":"2907: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":"2907:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1178,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1155,"src":"2930:11:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2907: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":"2943: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":"2899: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":"2899:80:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1182,"nodeType":"ExpressionStatement","src":"2899: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":"3025: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":"3040:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3025: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":"3053:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3025: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":"3066:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3025: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":"3084: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":"3076:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3076:7:3","typeDescriptions":{}}},"id":1193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3076:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3025:61:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1195,"nodeType":"ExpressionStatement","src":"3025:61:3"},{"expression":{"arguments":[{"id":1197,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"3175:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1198,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3188:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1199,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"3201:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1200,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1151,"src":"3209: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":"3153: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":"3153:65:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1202,"nodeType":"ExpressionStatement","src":"3153:65:3"},{"eventCall":{"arguments":[{"id":1204,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"3253:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1205,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3266:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1206,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"3279:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1207,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1155,"src":"3287: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":"3233: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":"3233:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1209,"nodeType":"EmitStatement","src":"3228:71:3"}]},"functionSelector":"d1deba1f","id":1211,"implemented":true,"kind":"function","modifiers":[],"name":"retryMessage","nameLocation":"2520:12:3","nodeType":"FunctionDefinition","parameters":{"id":1152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1145,"mutability":"mutable","name":"_srcChainId","nameLocation":"2549:11:3","nodeType":"VariableDeclaration","scope":1211,"src":"2542:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1144,"name":"uint16","nodeType":"ElementaryTypeName","src":"2542:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1147,"mutability":"mutable","name":"_srcAddress","nameLocation":"2585:11:3","nodeType":"VariableDeclaration","scope":1211,"src":"2570:26:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1146,"name":"bytes","nodeType":"ElementaryTypeName","src":"2570:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1149,"mutability":"mutable","name":"_nonce","nameLocation":"2613:6:3","nodeType":"VariableDeclaration","scope":1211,"src":"2606:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1148,"name":"uint64","nodeType":"ElementaryTypeName","src":"2606:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1151,"mutability":"mutable","name":"_payload","nameLocation":"2644:8:3","nodeType":"VariableDeclaration","scope":1211,"src":"2629:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1150,"name":"bytes","nodeType":"ElementaryTypeName","src":"2629:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2532:126:3"},"returnParameters":{"id":1153,"nodeType":"ParameterList","parameters":[],"src":"2682:0:3"},"scope":1212,"src":"2511:795:3","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":1213,"src":"472:2836:3","usedErrors":[],"usedEvents":[471,477,483,491,1009,1019,4081]}],"src":"33:3276: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},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[3636],"ContextUpgradeable":[3678],"Initializable":[3352],"Ownable2StepUpgradeable":[3051],"OwnableUpgradeable":[3183]},"id":3052,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2947,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:9"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"./OwnableUpgradeable.sol","id":2948,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3052,"sourceUnit":3184,"src":"132:34:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":2949,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3052,"sourceUnit":3353,"src":"167:42:9","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2951,"name":"Initializable","nameLocations":["698:13:9"],"nodeType":"IdentifierPath","referencedDeclaration":3352,"src":"698:13:9"},"id":2952,"nodeType":"InheritanceSpecifier","src":"698:13:9"},{"baseName":{"id":2953,"name":"OwnableUpgradeable","nameLocations":["713:18:9"],"nodeType":"IdentifierPath","referencedDeclaration":3183,"src":"713:18:9"},"id":2954,"nodeType":"InheritanceSpecifier","src":"713:18:9"}],"canonicalName":"Ownable2StepUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2950,"nodeType":"StructuredDocumentation","src":"211:441:9","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":3051,"linearizedBaseContracts":[3051,3183,3678,3352],"name":"Ownable2StepUpgradeable","nameLocation":"671:23:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":2962,"nodeType":"Block","src":"795:43:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2959,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"805:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"805:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2961,"nodeType":"ExpressionStatement","src":"805:26:9"}]},"id":2963,"implemented":true,"kind":"function","modifiers":[{"id":2957,"kind":"modifierInvocation","modifierName":{"id":2956,"name":"onlyInitializing","nameLocations":["778:16:9"],"nodeType":"IdentifierPath","referencedDeclaration":3297,"src":"778:16:9"},"nodeType":"ModifierInvocation","src":"778:16:9"}],"name":"__Ownable2Step_init","nameLocation":"747:19:9","nodeType":"FunctionDefinition","parameters":{"id":2955,"nodeType":"ParameterList","parameters":[],"src":"766:2:9"},"returnParameters":{"id":2958,"nodeType":"ParameterList","parameters":[],"src":"795:0:9"},"scope":3051,"src":"738:100:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2968,"nodeType":"Block","src":"911:7:9","statements":[]},"id":2969,"implemented":true,"kind":"function","modifiers":[{"id":2966,"kind":"modifierInvocation","modifierName":{"id":2965,"name":"onlyInitializing","nameLocations":["894:16:9"],"nodeType":"IdentifierPath","referencedDeclaration":3297,"src":"894:16:9"},"nodeType":"ModifierInvocation","src":"894:16:9"}],"name":"__Ownable2Step_init_unchained","nameLocation":"853:29:9","nodeType":"FunctionDefinition","parameters":{"id":2964,"nodeType":"ParameterList","parameters":[],"src":"882:2:9"},"returnParameters":{"id":2967,"nodeType":"ParameterList","parameters":[],"src":"911:0:9"},"scope":3051,"src":"844:74:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"id":2971,"mutability":"mutable","name":"_pendingOwner","nameLocation":"939:13:9","nodeType":"VariableDeclaration","scope":3051,"src":"923:29:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2970,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700","id":2977,"name":"OwnershipTransferStarted","nameLocation":"965:24:9","nodeType":"EventDefinition","parameters":{"id":2976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2973,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1006:13:9","nodeType":"VariableDeclaration","scope":2977,"src":"990:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2972,"name":"address","nodeType":"ElementaryTypeName","src":"990:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2975,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1037:8:9","nodeType":"VariableDeclaration","scope":2977,"src":"1021:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2974,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"989:57:9"},"src":"959:88:9"},{"body":{"id":2985,"nodeType":"Block","src":"1185:37:9","statements":[{"expression":{"id":2983,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2971,"src":"1202:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2982,"id":2984,"nodeType":"Return","src":"1195:20:9"}]},"documentation":{"id":2978,"nodeType":"StructuredDocumentation","src":"1053:65:9","text":" @dev Returns the address of the pending owner."},"functionSelector":"e30c3978","id":2986,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"1132:12:9","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[],"src":"1144:2:9"},"returnParameters":{"id":2982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2986,"src":"1176:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2980,"name":"address","nodeType":"ElementaryTypeName","src":"1176:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1175:9:9"},"scope":3051,"src":"1123:99:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3157],"body":{"id":3005,"nodeType":"Block","src":"1494:99:9","statements":[{"expression":{"id":2997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2995,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2971,"src":"1504:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2996,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2989,"src":"1520:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1504:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2998,"nodeType":"ExpressionStatement","src":"1504:24:9"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3000,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"1568:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:7:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3002,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2989,"src":"1577:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2999,"name":"OwnershipTransferStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2977,"src":"1543:24:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:43:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3004,"nodeType":"EmitStatement","src":"1538:48:9"}]},"documentation":{"id":2987,"nodeType":"StructuredDocumentation","src":"1228:182:9","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":3006,"implemented":true,"kind":"function","modifiers":[{"id":2993,"kind":"modifierInvocation","modifierName":{"id":2992,"name":"onlyOwner","nameLocations":["1484:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":3097,"src":"1484:9:9"},"nodeType":"ModifierInvocation","src":"1484:9:9"}],"name":"transferOwnership","nameLocation":"1424:17:9","nodeType":"FunctionDefinition","overrides":{"id":2991,"nodeType":"OverrideSpecifier","overrides":[],"src":"1475:8:9"},"parameters":{"id":2990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2989,"mutability":"mutable","name":"newOwner","nameLocation":"1450:8:9","nodeType":"VariableDeclaration","scope":3006,"src":"1442:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2988,"name":"address","nodeType":"ElementaryTypeName","src":"1442:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1441:18:9"},"returnParameters":{"id":2994,"nodeType":"ParameterList","parameters":[],"src":"1494:0:9"},"scope":3051,"src":"1415:178:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3177],"body":{"id":3022,"nodeType":"Block","src":"1849:81:9","statements":[{"expression":{"id":3014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1859:20:9","subExpression":{"id":3013,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2971,"src":"1866:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3015,"nodeType":"ExpressionStatement","src":"1859:20:9"},{"expression":{"arguments":[{"id":3019,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3009,"src":"1914:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3016,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1889:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Ownable2StepUpgradeable_$3051_$","typeString":"type(contract super Ownable2StepUpgradeable)"}},"id":3018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1895:18:9","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":3177,"src":"1889:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1889:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3021,"nodeType":"ExpressionStatement","src":"1889:34:9"}]},"documentation":{"id":3007,"nodeType":"StructuredDocumentation","src":"1599:173:9","text":" @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction."},"id":3023,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1786:18:9","nodeType":"FunctionDefinition","overrides":{"id":3011,"nodeType":"OverrideSpecifier","overrides":[],"src":"1840:8:9"},"parameters":{"id":3010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3009,"mutability":"mutable","name":"newOwner","nameLocation":"1813:8:9","nodeType":"VariableDeclaration","scope":3023,"src":"1805:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3008,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1804:18:9"},"returnParameters":{"id":3012,"nodeType":"ParameterList","parameters":[],"src":"1849:0:9"},"scope":3051,"src":"1777:153:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3044,"nodeType":"Block","src":"2046:170:9","statements":[{"assignments":[3028],"declarations":[{"constant":false,"id":3028,"mutability":"mutable","name":"sender","nameLocation":"2064:6:9","nodeType":"VariableDeclaration","scope":3044,"src":"2056:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3027,"name":"address","nodeType":"ElementaryTypeName","src":"2056:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3031,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3029,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"2073:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2073:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2056:29:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3033,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2986,"src":"2103:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3035,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3028,"src":"2121:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2103:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572","id":3037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2129:43:9","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":3032,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2095:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2095:78:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3039,"nodeType":"ExpressionStatement","src":"2095:78:9"},{"expression":{"arguments":[{"id":3041,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3028,"src":"2202:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3040,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[3023],"referencedDeclaration":3023,"src":"2183:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2183:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3043,"nodeType":"ExpressionStatement","src":"2183:26:9"}]},"documentation":{"id":3024,"nodeType":"StructuredDocumentation","src":"1936:69:9","text":" @dev The new owner accepts the ownership transfer."},"functionSelector":"79ba5097","id":3045,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"2019:15:9","nodeType":"FunctionDefinition","parameters":{"id":3025,"nodeType":"ParameterList","parameters":[],"src":"2034:2:9"},"returnParameters":{"id":3026,"nodeType":"ParameterList","parameters":[],"src":"2046:0:9"},"scope":3051,"src":"2010:206:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"constant":false,"documentation":{"id":3046,"nodeType":"StructuredDocumentation","src":"2222:254:9","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":3050,"mutability":"mutable","name":"__gap","nameLocation":"2501:5:9","nodeType":"VariableDeclaration","scope":3051,"src":"2481:25:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":3047,"name":"uint256","nodeType":"ElementaryTypeName","src":"2481:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3049,"length":{"hexValue":"3439","id":3048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2489:2:9","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2481:11:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":3052,"src":"653:1856:9","usedErrors":[],"usedEvents":[2977,3068,3198]}],"src":"107:2403:9"},"id":9},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[3636],"ContextUpgradeable":[3678],"Initializable":[3352],"OwnableUpgradeable":[3183]},"id":3184,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3053,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:10"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":3054,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3184,"sourceUnit":3679,"src":"127:41:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":3055,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3184,"sourceUnit":3353,"src":"169:42:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3057,"name":"Initializable","nameLocations":["748:13:10"],"nodeType":"IdentifierPath","referencedDeclaration":3352,"src":"748:13:10"},"id":3058,"nodeType":"InheritanceSpecifier","src":"748:13:10"},{"baseName":{"id":3059,"name":"ContextUpgradeable","nameLocations":["763:18:10"],"nodeType":"IdentifierPath","referencedDeclaration":3678,"src":"763:18:10"},"id":3060,"nodeType":"InheritanceSpecifier","src":"763:18:10"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3056,"nodeType":"StructuredDocumentation","src":"213:494:10","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":3183,"linearizedBaseContracts":[3183,3678,3352],"name":"OwnableUpgradeable","nameLocation":"726:18:10","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3062,"mutability":"mutable","name":"_owner","nameLocation":"804:6:10","nodeType":"VariableDeclaration","scope":3183,"src":"788:22:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3061,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":3068,"name":"OwnershipTransferred","nameLocation":"823:20:10","nodeType":"EventDefinition","parameters":{"id":3067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3064,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"860:13:10","nodeType":"VariableDeclaration","scope":3068,"src":"844:29:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3063,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3066,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"891:8:10","nodeType":"VariableDeclaration","scope":3068,"src":"875:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3065,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"843:57:10"},"src":"817:84:10"},{"body":{"id":3077,"nodeType":"Block","src":"1055:43:10","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3074,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"1065:24:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3076,"nodeType":"ExpressionStatement","src":"1065:26:10"}]},"documentation":{"id":3069,"nodeType":"StructuredDocumentation","src":"907:91:10","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":3078,"implemented":true,"kind":"function","modifiers":[{"id":3072,"kind":"modifierInvocation","modifierName":{"id":3071,"name":"onlyInitializing","nameLocations":["1038:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":3297,"src":"1038:16:10"},"nodeType":"ModifierInvocation","src":"1038:16:10"}],"name":"__Ownable_init","nameLocation":"1012:14:10","nodeType":"FunctionDefinition","parameters":{"id":3070,"nodeType":"ParameterList","parameters":[],"src":"1026:2:10"},"returnParameters":{"id":3073,"nodeType":"ParameterList","parameters":[],"src":"1055:0:10"},"scope":3183,"src":"1003:95:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3088,"nodeType":"Block","src":"1166:49:10","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3084,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"1195:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1195:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3083,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"1176:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1176:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3087,"nodeType":"ExpressionStatement","src":"1176:32:10"}]},"id":3089,"implemented":true,"kind":"function","modifiers":[{"id":3081,"kind":"modifierInvocation","modifierName":{"id":3080,"name":"onlyInitializing","nameLocations":["1149:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":3297,"src":"1149:16:10"},"nodeType":"ModifierInvocation","src":"1149:16:10"}],"name":"__Ownable_init_unchained","nameLocation":"1113:24:10","nodeType":"FunctionDefinition","parameters":{"id":3079,"nodeType":"ParameterList","parameters":[],"src":"1137:2:10"},"returnParameters":{"id":3082,"nodeType":"ParameterList","parameters":[],"src":"1166:0:10"},"scope":3183,"src":"1104:111:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3096,"nodeType":"Block","src":"1324:41:10","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3092,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"1334:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":3093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3094,"nodeType":"ExpressionStatement","src":"1334:13:10"},{"id":3095,"nodeType":"PlaceholderStatement","src":"1357:1:10"}]},"documentation":{"id":3090,"nodeType":"StructuredDocumentation","src":"1221:77:10","text":" @dev Throws if called by any account other than the owner."},"id":3097,"name":"onlyOwner","nameLocation":"1312:9:10","nodeType":"ModifierDefinition","parameters":{"id":3091,"nodeType":"ParameterList","parameters":[],"src":"1321:2:10"},"src":"1303:62:10","virtual":false,"visibility":"internal"},{"body":{"id":3105,"nodeType":"Block","src":"1496:30:10","statements":[{"expression":{"id":3103,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3062,"src":"1513:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3102,"id":3104,"nodeType":"Return","src":"1506:13:10"}]},"documentation":{"id":3098,"nodeType":"StructuredDocumentation","src":"1371:65:10","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":3106,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1450:5:10","nodeType":"FunctionDefinition","parameters":{"id":3099,"nodeType":"ParameterList","parameters":[],"src":"1455:2:10"},"returnParameters":{"id":3102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3106,"src":"1487:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3100,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1486:9:10"},"scope":3183,"src":"1441:85:10","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3119,"nodeType":"Block","src":"1644:85:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3111,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"1662:5:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1662:7:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3113,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"1673:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1673:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1662:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":3116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1687:34:10","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":3110,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1654:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3118,"nodeType":"ExpressionStatement","src":"1654:68:10"}]},"documentation":{"id":3107,"nodeType":"StructuredDocumentation","src":"1532:62:10","text":" @dev Throws if the sender is not the owner."},"id":3120,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1608:11:10","nodeType":"FunctionDefinition","parameters":{"id":3108,"nodeType":"ParameterList","parameters":[],"src":"1619:2:10"},"returnParameters":{"id":3109,"nodeType":"ParameterList","parameters":[],"src":"1644:0:10"},"scope":3183,"src":"1599:130:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3133,"nodeType":"Block","src":"2125:47:10","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2162: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":3128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2154:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3127,"name":"address","nodeType":"ElementaryTypeName","src":"2154:7:10","typeDescriptions":{}}},"id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3126,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"2135:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:30:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3132,"nodeType":"ExpressionStatement","src":"2135:30:10"}]},"documentation":{"id":3121,"nodeType":"StructuredDocumentation","src":"1735:331:10","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":3134,"implemented":true,"kind":"function","modifiers":[{"id":3124,"kind":"modifierInvocation","modifierName":{"id":3123,"name":"onlyOwner","nameLocations":["2115:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":3097,"src":"2115:9:10"},"nodeType":"ModifierInvocation","src":"2115:9:10"}],"name":"renounceOwnership","nameLocation":"2080:17:10","nodeType":"FunctionDefinition","parameters":{"id":3122,"nodeType":"ParameterList","parameters":[],"src":"2097:2:10"},"returnParameters":{"id":3125,"nodeType":"ParameterList","parameters":[],"src":"2125:0:10"},"scope":3183,"src":"2071:101:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3156,"nodeType":"Block","src":"2391:128:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3143,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3137,"src":"2409:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2429: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":3145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2421:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3144,"name":"address","nodeType":"ElementaryTypeName","src":"2421:7:10","typeDescriptions":{}}},"id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2409:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":3149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2433:40:10","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":3142,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2401:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2401:73:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3151,"nodeType":"ExpressionStatement","src":"2401:73:10"},{"expression":{"arguments":[{"id":3153,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3137,"src":"2503:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3152,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"2484:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3155,"nodeType":"ExpressionStatement","src":"2484:28:10"}]},"documentation":{"id":3135,"nodeType":"StructuredDocumentation","src":"2178:138:10","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":3157,"implemented":true,"kind":"function","modifiers":[{"id":3140,"kind":"modifierInvocation","modifierName":{"id":3139,"name":"onlyOwner","nameLocations":["2381:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":3097,"src":"2381:9:10"},"nodeType":"ModifierInvocation","src":"2381:9:10"}],"name":"transferOwnership","nameLocation":"2330:17:10","nodeType":"FunctionDefinition","parameters":{"id":3138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3137,"mutability":"mutable","name":"newOwner","nameLocation":"2356:8:10","nodeType":"VariableDeclaration","scope":3157,"src":"2348:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3136,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:18:10"},"returnParameters":{"id":3141,"nodeType":"ParameterList","parameters":[],"src":"2391:0:10"},"scope":3183,"src":"2321:198:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3176,"nodeType":"Block","src":"2736:124:10","statements":[{"assignments":[3164],"declarations":[{"constant":false,"id":3164,"mutability":"mutable","name":"oldOwner","nameLocation":"2754:8:10","nodeType":"VariableDeclaration","scope":3176,"src":"2746:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3163,"name":"address","nodeType":"ElementaryTypeName","src":"2746:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3166,"initialValue":{"id":3165,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3062,"src":"2765:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2746:25:10"},{"expression":{"id":3169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3167,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3062,"src":"2781:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3168,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3160,"src":"2790:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2781:17:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3170,"nodeType":"ExpressionStatement","src":"2781:17:10"},{"eventCall":{"arguments":[{"id":3172,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3164,"src":"2834:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3173,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3160,"src":"2844:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3171,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3068,"src":"2813:20:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2813:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3175,"nodeType":"EmitStatement","src":"2808:45:10"}]},"documentation":{"id":3158,"nodeType":"StructuredDocumentation","src":"2525:143:10","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":3177,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2682:18:10","nodeType":"FunctionDefinition","parameters":{"id":3161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3160,"mutability":"mutable","name":"newOwner","nameLocation":"2709:8:10","nodeType":"VariableDeclaration","scope":3177,"src":"2701:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3159,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2700:18:10"},"returnParameters":{"id":3162,"nodeType":"ParameterList","parameters":[],"src":"2736:0:10"},"scope":3183,"src":"2673:187:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":3178,"nodeType":"StructuredDocumentation","src":"2866:254:10","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":3182,"mutability":"mutable","name":"__gap","nameLocation":"3145:5:10","nodeType":"VariableDeclaration","scope":3183,"src":"3125:25:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":3179,"name":"uint256","nodeType":"ElementaryTypeName","src":"3125:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3181,"length":{"hexValue":"3439","id":3180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3133:2:10","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3125:11:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":3184,"src":"708:2445:10","usedErrors":[],"usedEvents":[3068,3198]}],"src":"102:3052:10"},"id":10},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"AddressUpgradeable":[3636],"Initializable":[3352]},"id":3353,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3185,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:11"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":3186,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3353,"sourceUnit":3637,"src":"138:44:11","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3187,"nodeType":"StructuredDocumentation","src":"184:2198:11","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 ```\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":3352,"linearizedBaseContracts":[3352],"name":"Initializable","nameLocation":"2401:13:11","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":3188,"nodeType":"StructuredDocumentation","src":"2421:109:11","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":3190,"mutability":"mutable","name":"_initialized","nameLocation":"2549:12:11","nodeType":"VariableDeclaration","scope":3352,"src":"2535:26:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3189,"name":"uint8","nodeType":"ElementaryTypeName","src":"2535:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":3191,"nodeType":"StructuredDocumentation","src":"2568:91:11","text":" @dev Indicates that the contract is in the process of being initialized."},"id":3193,"mutability":"mutable","name":"_initializing","nameLocation":"2677:13:11","nodeType":"VariableDeclaration","scope":3352,"src":"2664:26:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3192,"name":"bool","nodeType":"ElementaryTypeName","src":"2664:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":3194,"nodeType":"StructuredDocumentation","src":"2697:90:11","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":3198,"name":"Initialized","nameLocation":"2798:11:11","nodeType":"EventDefinition","parameters":{"id":3197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3196,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2816:7:11","nodeType":"VariableDeclaration","scope":3198,"src":"2810:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3195,"name":"uint8","nodeType":"ElementaryTypeName","src":"2810:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2809:15:11"},"src":"2792:33:11"},{"body":{"id":3253,"nodeType":"Block","src":"3258:483:11","statements":[{"assignments":[3202],"declarations":[{"constant":false,"id":3202,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3273:14:11","nodeType":"VariableDeclaration","scope":3253,"src":"3268:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3201,"name":"bool","nodeType":"ElementaryTypeName","src":"3268:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3205,"initialValue":{"id":3204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3290:14:11","subExpression":{"id":3203,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"3291:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3268:36:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3207,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3202,"src":"3336:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3208,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3354:12:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":3209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3369:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3354:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3336:34:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3335:36:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3376:45:11","subExpression":{"arguments":[{"arguments":[{"id":3217,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3415:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$3352","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$3352","typeString":"contract Initializable"}],"id":3216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3407:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3215,"name":"address","nodeType":"ElementaryTypeName","src":"3407:7:11","typeDescriptions":{}}},"id":3218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3407:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3213,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"3377:18:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$3636_$","typeString":"type(library AddressUpgradeable)"}},"id":3214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3396:10:11","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":3370,"src":"3377:29:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3377:44:11","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":3223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3221,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3425:12:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3441:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3425:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3376:66:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3225,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3375:68:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3335:108:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":3227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3457:48:11","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":3206,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3314:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3314:201:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3229,"nodeType":"ExpressionStatement","src":"3314:201:11"},{"expression":{"id":3232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3230,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3525:12:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":3231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3540:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3525:16:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3233,"nodeType":"ExpressionStatement","src":"3525:16:11"},{"condition":{"id":3234,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3202,"src":"3555:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3240,"nodeType":"IfStatement","src":"3551:65:11","trueBody":{"id":3239,"nodeType":"Block","src":"3571:45:11","statements":[{"expression":{"id":3237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3235,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"3585:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3601:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3585:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3238,"nodeType":"ExpressionStatement","src":"3585:20:11"}]}},{"id":3241,"nodeType":"PlaceholderStatement","src":"3625:1:11"},{"condition":{"id":3242,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3202,"src":"3640:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3252,"nodeType":"IfStatement","src":"3636:99:11","trueBody":{"id":3251,"nodeType":"Block","src":"3656:79:11","statements":[{"expression":{"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3243,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"3670:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3686:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3670:21:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3246,"nodeType":"ExpressionStatement","src":"3670:21:11"},{"eventCall":{"arguments":[{"hexValue":"31","id":3248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3722:1:11","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":3247,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"3710:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3710:14:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3250,"nodeType":"EmitStatement","src":"3705:19:11"}]}}]},"documentation":{"id":3199,"nodeType":"StructuredDocumentation","src":"2831:399:11","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":3254,"name":"initializer","nameLocation":"3244:11:11","nodeType":"ModifierDefinition","parameters":{"id":3200,"nodeType":"ParameterList","parameters":[],"src":"3255:2:11"},"src":"3235:506:11","virtual":false,"visibility":"internal"},{"body":{"id":3286,"nodeType":"Block","src":"4852:255:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4870:14:11","subExpression":{"id":3260,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"4871:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3262,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"4888:12:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3263,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3257,"src":"4903:7:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4888:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4870:40:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":3266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:48:11","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":3259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4862:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4862:99:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3268,"nodeType":"ExpressionStatement","src":"4862:99:11"},{"expression":{"id":3271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3269,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"4971:12:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3270,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3257,"src":"4986:7:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4971:22:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3272,"nodeType":"ExpressionStatement","src":"4971:22:11"},{"expression":{"id":3275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3273,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"5003:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5019:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5003:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3276,"nodeType":"ExpressionStatement","src":"5003:20:11"},{"id":3277,"nodeType":"PlaceholderStatement","src":"5033:1:11"},{"expression":{"id":3280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3278,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"5044:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5060:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5044:21:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3281,"nodeType":"ExpressionStatement","src":"5044:21:11"},{"eventCall":{"arguments":[{"id":3283,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3257,"src":"5092:7:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3282,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"5080:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5080:20:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3285,"nodeType":"EmitStatement","src":"5075:25:11"}]},"documentation":{"id":3255,"nodeType":"StructuredDocumentation","src":"3747:1062:11","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":3287,"name":"reinitializer","nameLocation":"4823:13:11","nodeType":"ModifierDefinition","parameters":{"id":3258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3257,"mutability":"mutable","name":"version","nameLocation":"4843:7:11","nodeType":"VariableDeclaration","scope":3287,"src":"4837:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3256,"name":"uint8","nodeType":"ElementaryTypeName","src":"4837:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4836:15:11"},"src":"4814:293:11","virtual":false,"visibility":"internal"},{"body":{"id":3296,"nodeType":"Block","src":"5345:97:11","statements":[{"expression":{"arguments":[{"id":3291,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"5363:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":3292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:45:11","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":3290,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5355:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5355:69:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3294,"nodeType":"ExpressionStatement","src":"5355:69:11"},{"id":3295,"nodeType":"PlaceholderStatement","src":"5434:1:11"}]},"documentation":{"id":3288,"nodeType":"StructuredDocumentation","src":"5113:199:11","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":3297,"name":"onlyInitializing","nameLocation":"5326:16:11","nodeType":"ModifierDefinition","parameters":{"id":3289,"nodeType":"ParameterList","parameters":[],"src":"5342:2:11"},"src":"5317:125:11","virtual":false,"visibility":"internal"},{"body":{"id":3332,"nodeType":"Block","src":"5977:230:11","statements":[{"expression":{"arguments":[{"id":3303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5995:14:11","subExpression":{"id":3302,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"5996:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":3304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6011:41:11","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":3301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5987:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5987:66:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3306,"nodeType":"ExpressionStatement","src":"5987:66:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3307,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"6067:12:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":3310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6087:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3309,"name":"uint8","nodeType":"ElementaryTypeName","src":"6087:5:11","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":3308,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6082:4:11","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6082:11:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":3312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6094:3:11","memberName":"max","nodeType":"MemberAccess","src":"6082:15:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6067:30:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3331,"nodeType":"IfStatement","src":"6063:138:11","trueBody":{"id":3330,"nodeType":"Block","src":"6099:102:11","statements":[{"expression":{"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3314,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"6113:12:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":3317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3316,"name":"uint8","nodeType":"ElementaryTypeName","src":"6133:5:11","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":3315,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6128:4:11","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:11:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":3319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6140:3:11","memberName":"max","nodeType":"MemberAccess","src":"6128:15:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6113:30:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3321,"nodeType":"ExpressionStatement","src":"6113:30:11"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":3325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6179:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3324,"name":"uint8","nodeType":"ElementaryTypeName","src":"6179:5:11","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":3323,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6174:4:11","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:11:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":3327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6186:3:11","memberName":"max","nodeType":"MemberAccess","src":"6174:15:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3322,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3198,"src":"6162:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":3328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6162:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3329,"nodeType":"EmitStatement","src":"6157:33:11"}]}}]},"documentation":{"id":3298,"nodeType":"StructuredDocumentation","src":"5448:475:11","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":3333,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5937:20:11","nodeType":"FunctionDefinition","parameters":{"id":3299,"nodeType":"ParameterList","parameters":[],"src":"5957:2:11"},"returnParameters":{"id":3300,"nodeType":"ParameterList","parameters":[],"src":"5977:0:11"},"scope":3352,"src":"5928:279:11","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3341,"nodeType":"Block","src":"6381:36:11","statements":[{"expression":{"id":3339,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"6398:12:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":3338,"id":3340,"nodeType":"Return","src":"6391:19:11"}]},"documentation":{"id":3334,"nodeType":"StructuredDocumentation","src":"6213:99:11","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":3342,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6326:22:11","nodeType":"FunctionDefinition","parameters":{"id":3335,"nodeType":"ParameterList","parameters":[],"src":"6348:2:11"},"returnParameters":{"id":3338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3342,"src":"6374:5:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3336,"name":"uint8","nodeType":"ElementaryTypeName","src":"6374:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6373:7:11"},"scope":3352,"src":"6317:100:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3350,"nodeType":"Block","src":"6589:37:11","statements":[{"expression":{"id":3348,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3193,"src":"6606:13:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3347,"id":3349,"nodeType":"Return","src":"6599:20:11"}]},"documentation":{"id":3343,"nodeType":"StructuredDocumentation","src":"6423:105:11","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":3351,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6542:15:11","nodeType":"FunctionDefinition","parameters":{"id":3344,"nodeType":"ParameterList","parameters":[],"src":"6557:2:11"},"returnParameters":{"id":3347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3351,"src":"6583:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3345,"name":"bool","nodeType":"ElementaryTypeName","src":"6583:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6582:6:11"},"scope":3352,"src":"6533:93:11","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3353,"src":"2383:4245:11","usedErrors":[],"usedEvents":[3198]}],"src":"113:6516:11"},"id":11},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[3636]},"id":3637,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3354,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:12"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":3355,"nodeType":"StructuredDocumentation","src":"126:67:12","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":3636,"linearizedBaseContracts":[3636],"name":"AddressUpgradeable","nameLocation":"202:18:12","nodeType":"ContractDefinition","nodes":[{"body":{"id":3369,"nodeType":"Block","src":"1252:254:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3363,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3358,"src":"1476:7:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1484:4:12","memberName":"code","nodeType":"MemberAccess","src":"1476:12:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1489:6:12","memberName":"length","nodeType":"MemberAccess","src":"1476:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1498:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1476:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3362,"id":3368,"nodeType":"Return","src":"1469:30:12"}]},"documentation":{"id":3356,"nodeType":"StructuredDocumentation","src":"227:954:12","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":3370,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1195:10:12","nodeType":"FunctionDefinition","parameters":{"id":3359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3358,"mutability":"mutable","name":"account","nameLocation":"1214:7:12","nodeType":"VariableDeclaration","scope":3370,"src":"1206:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3357,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1205:17:12"},"returnParameters":{"id":3362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3370,"src":"1246:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3360,"name":"bool","nodeType":"ElementaryTypeName","src":"1246:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1245:6:12"},"scope":3636,"src":"1186:320:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3403,"nodeType":"Block","src":"2494:241:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3381,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2520:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$3636","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$3636","typeString":"library AddressUpgradeable"}],"id":3380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3379,"name":"address","nodeType":"ElementaryTypeName","src":"2512:7:12","typeDescriptions":{}}},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2512:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2526:7:12","memberName":"balance","nodeType":"MemberAccess","src":"2512:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3384,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3375,"src":"2537:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2512:31:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":3386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2545:31:12","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":3378,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2504:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2504:73:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3388,"nodeType":"ExpressionStatement","src":"2504:73:12"},{"assignments":[3390,null],"declarations":[{"constant":false,"id":3390,"mutability":"mutable","name":"success","nameLocation":"2594:7:12","nodeType":"VariableDeclaration","scope":3403,"src":"2589:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3389,"name":"bool","nodeType":"ElementaryTypeName","src":"2589:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":3397,"initialValue":{"arguments":[{"hexValue":"","id":3395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2637:2:12","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":3391,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3373,"src":"2607:9:12","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2617:4:12","memberName":"call","nodeType":"MemberAccess","src":"2607:14:12","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":3394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":3393,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3375,"src":"2629:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2607:29:12","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":3396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2607:33:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2588:52:12"},{"expression":{"arguments":[{"id":3399,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3390,"src":"2658:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":3400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2667:60:12","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":3398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2650:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:78:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3402,"nodeType":"ExpressionStatement","src":"2650:78:12"}]},"documentation":{"id":3371,"nodeType":"StructuredDocumentation","src":"1512:906:12","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":3404,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2432:9:12","nodeType":"FunctionDefinition","parameters":{"id":3376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3373,"mutability":"mutable","name":"recipient","nameLocation":"2458:9:12","nodeType":"VariableDeclaration","scope":3404,"src":"2442:25:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3372,"name":"address","nodeType":"ElementaryTypeName","src":"2442:15:12","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":3375,"mutability":"mutable","name":"amount","nameLocation":"2477:6:12","nodeType":"VariableDeclaration","scope":3404,"src":"2469:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3374,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2441:43:12"},"returnParameters":{"id":3377,"nodeType":"ParameterList","parameters":[],"src":"2494:0:12"},"scope":3636,"src":"2423:312:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3421,"nodeType":"Block","src":"3566:96:12","statements":[{"expression":{"arguments":[{"id":3415,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3407,"src":"3605:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3416,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3409,"src":"3613:4:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":3417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3619:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":3418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3622:32:12","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":3414,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[3462,3506],"referencedDeclaration":3506,"src":"3583:21:12","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":3419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:72:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3413,"id":3420,"nodeType":"Return","src":"3576:79:12"}]},"documentation":{"id":3405,"nodeType":"StructuredDocumentation","src":"2741:731:12","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":3422,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3486:12:12","nodeType":"FunctionDefinition","parameters":{"id":3410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3407,"mutability":"mutable","name":"target","nameLocation":"3507:6:12","nodeType":"VariableDeclaration","scope":3422,"src":"3499:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3406,"name":"address","nodeType":"ElementaryTypeName","src":"3499:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3409,"mutability":"mutable","name":"data","nameLocation":"3528:4:12","nodeType":"VariableDeclaration","scope":3422,"src":"3515:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3408,"name":"bytes","nodeType":"ElementaryTypeName","src":"3515:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3498:35:12"},"returnParameters":{"id":3413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3422,"src":"3552:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3411,"name":"bytes","nodeType":"ElementaryTypeName","src":"3552:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3551:14:12"},"scope":3636,"src":"3477:185:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3441,"nodeType":"Block","src":"4031:76:12","statements":[{"expression":{"arguments":[{"id":3435,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"4070:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3436,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"4078:4:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":3437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4084:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":3438,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"4087:12:12","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":3434,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[3462,3506],"referencedDeclaration":3506,"src":"4048:21:12","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":3439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4048:52:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3433,"id":3440,"nodeType":"Return","src":"4041:59:12"}]},"documentation":{"id":3423,"nodeType":"StructuredDocumentation","src":"3668:211:12","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":3442,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3893:12:12","nodeType":"FunctionDefinition","parameters":{"id":3430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3425,"mutability":"mutable","name":"target","nameLocation":"3923:6:12","nodeType":"VariableDeclaration","scope":3442,"src":"3915:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3424,"name":"address","nodeType":"ElementaryTypeName","src":"3915:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3427,"mutability":"mutable","name":"data","nameLocation":"3952:4:12","nodeType":"VariableDeclaration","scope":3442,"src":"3939:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3426,"name":"bytes","nodeType":"ElementaryTypeName","src":"3939:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3429,"mutability":"mutable","name":"errorMessage","nameLocation":"3980:12:12","nodeType":"VariableDeclaration","scope":3442,"src":"3966:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3428,"name":"string","nodeType":"ElementaryTypeName","src":"3966:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3905:93:12"},"returnParameters":{"id":3433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3432,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3442,"src":"4017:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3431,"name":"bytes","nodeType":"ElementaryTypeName","src":"4017:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4016:14:12"},"scope":3636,"src":"3884:223:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3461,"nodeType":"Block","src":"4612:111:12","statements":[{"expression":{"arguments":[{"id":3455,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3445,"src":"4651:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3456,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3447,"src":"4659:4:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3457,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3449,"src":"4665:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":3458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4672:43:12","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":3454,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[3462,3506],"referencedDeclaration":3506,"src":"4629:21:12","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":3459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4629:87:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3453,"id":3460,"nodeType":"Return","src":"4622:94:12"}]},"documentation":{"id":3443,"nodeType":"StructuredDocumentation","src":"4113:351:12","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":3462,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4478:21:12","nodeType":"FunctionDefinition","parameters":{"id":3450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3445,"mutability":"mutable","name":"target","nameLocation":"4517:6:12","nodeType":"VariableDeclaration","scope":3462,"src":"4509:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3444,"name":"address","nodeType":"ElementaryTypeName","src":"4509:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3447,"mutability":"mutable","name":"data","nameLocation":"4546:4:12","nodeType":"VariableDeclaration","scope":3462,"src":"4533:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3446,"name":"bytes","nodeType":"ElementaryTypeName","src":"4533:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3449,"mutability":"mutable","name":"value","nameLocation":"4568:5:12","nodeType":"VariableDeclaration","scope":3462,"src":"4560:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3448,"name":"uint256","nodeType":"ElementaryTypeName","src":"4560:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4499:80:12"},"returnParameters":{"id":3453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3462,"src":"4598:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3451,"name":"bytes","nodeType":"ElementaryTypeName","src":"4598:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4597:14:12"},"scope":3636,"src":"4469:254:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3505,"nodeType":"Block","src":"5150:267:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3479,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5176:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$3636","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$3636","typeString":"library AddressUpgradeable"}],"id":3478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5168:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3477,"name":"address","nodeType":"ElementaryTypeName","src":"5168:7:12","typeDescriptions":{}}},"id":3480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5168:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:7:12","memberName":"balance","nodeType":"MemberAccess","src":"5168:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3482,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3469,"src":"5193:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5168:30:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":3484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5200:40:12","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":3476,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5160:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5160:81:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3486,"nodeType":"ExpressionStatement","src":"5160:81:12"},{"assignments":[3488,3490],"declarations":[{"constant":false,"id":3488,"mutability":"mutable","name":"success","nameLocation":"5257:7:12","nodeType":"VariableDeclaration","scope":3505,"src":"5252:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3487,"name":"bool","nodeType":"ElementaryTypeName","src":"5252:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3490,"mutability":"mutable","name":"returndata","nameLocation":"5279:10:12","nodeType":"VariableDeclaration","scope":3505,"src":"5266:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3489,"name":"bytes","nodeType":"ElementaryTypeName","src":"5266:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3497,"initialValue":{"arguments":[{"id":3495,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3467,"src":"5319:4:12","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":3491,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3465,"src":"5293:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5300:4:12","memberName":"call","nodeType":"MemberAccess","src":"5293:11:12","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":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":3493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3469,"src":"5312:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5293:25:12","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":3496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5293:31:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5251:73:12"},{"expression":{"arguments":[{"id":3499,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3465,"src":"5368:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3500,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3488,"src":"5376:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3501,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3490,"src":"5385:10:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3502,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3471,"src":"5397:12:12","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":3498,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"5341:26:12","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":3503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5341:69:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3475,"id":3504,"nodeType":"Return","src":"5334:76:12"}]},"documentation":{"id":3463,"nodeType":"StructuredDocumentation","src":"4729:237:12","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":3506,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4980:21:12","nodeType":"FunctionDefinition","parameters":{"id":3472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3465,"mutability":"mutable","name":"target","nameLocation":"5019:6:12","nodeType":"VariableDeclaration","scope":3506,"src":"5011:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3464,"name":"address","nodeType":"ElementaryTypeName","src":"5011:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3467,"mutability":"mutable","name":"data","nameLocation":"5048:4:12","nodeType":"VariableDeclaration","scope":3506,"src":"5035:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3466,"name":"bytes","nodeType":"ElementaryTypeName","src":"5035:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3469,"mutability":"mutable","name":"value","nameLocation":"5070:5:12","nodeType":"VariableDeclaration","scope":3506,"src":"5062:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3468,"name":"uint256","nodeType":"ElementaryTypeName","src":"5062:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3471,"mutability":"mutable","name":"errorMessage","nameLocation":"5099:12:12","nodeType":"VariableDeclaration","scope":3506,"src":"5085:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3470,"name":"string","nodeType":"ElementaryTypeName","src":"5085:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5001:116:12"},"returnParameters":{"id":3475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3506,"src":"5136:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3473,"name":"bytes","nodeType":"ElementaryTypeName","src":"5136:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5135:14:12"},"scope":3636,"src":"4971:446:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3522,"nodeType":"Block","src":"5694:97:12","statements":[{"expression":{"arguments":[{"id":3517,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"5730:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3518,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3511,"src":"5738:4:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":3519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5744:39:12","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":3516,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[3523,3552],"referencedDeclaration":3552,"src":"5711:18:12","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":3520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5711:73:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3515,"id":3521,"nodeType":"Return","src":"5704:80:12"}]},"documentation":{"id":3507,"nodeType":"StructuredDocumentation","src":"5423:166:12","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":3523,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5603:18:12","nodeType":"FunctionDefinition","parameters":{"id":3512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3509,"mutability":"mutable","name":"target","nameLocation":"5630:6:12","nodeType":"VariableDeclaration","scope":3523,"src":"5622:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3508,"name":"address","nodeType":"ElementaryTypeName","src":"5622:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3511,"mutability":"mutable","name":"data","nameLocation":"5651:4:12","nodeType":"VariableDeclaration","scope":3523,"src":"5638:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3510,"name":"bytes","nodeType":"ElementaryTypeName","src":"5638:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5621:35:12"},"returnParameters":{"id":3515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3523,"src":"5680:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3513,"name":"bytes","nodeType":"ElementaryTypeName","src":"5680:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5679:14:12"},"scope":3636,"src":"5594:197:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3551,"nodeType":"Block","src":"6133:168:12","statements":[{"assignments":[3536,3538],"declarations":[{"constant":false,"id":3536,"mutability":"mutable","name":"success","nameLocation":"6149:7:12","nodeType":"VariableDeclaration","scope":3551,"src":"6144:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3535,"name":"bool","nodeType":"ElementaryTypeName","src":"6144:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3538,"mutability":"mutable","name":"returndata","nameLocation":"6171:10:12","nodeType":"VariableDeclaration","scope":3551,"src":"6158:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3537,"name":"bytes","nodeType":"ElementaryTypeName","src":"6158:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3543,"initialValue":{"arguments":[{"id":3541,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"6203:4:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3539,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"6185:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6192:10:12","memberName":"staticcall","nodeType":"MemberAccess","src":"6185:17:12","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":3542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6185:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6143:65:12"},{"expression":{"arguments":[{"id":3545,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"6252:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3546,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3536,"src":"6260:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3547,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3538,"src":"6269:10:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3548,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3530,"src":"6281:12:12","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":3544,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"6225:26:12","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":3549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6225:69:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3534,"id":3550,"nodeType":"Return","src":"6218:76:12"}]},"documentation":{"id":3524,"nodeType":"StructuredDocumentation","src":"5797:173:12","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":3552,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5984:18:12","nodeType":"FunctionDefinition","parameters":{"id":3531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3526,"mutability":"mutable","name":"target","nameLocation":"6020:6:12","nodeType":"VariableDeclaration","scope":3552,"src":"6012:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3525,"name":"address","nodeType":"ElementaryTypeName","src":"6012:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3528,"mutability":"mutable","name":"data","nameLocation":"6049:4:12","nodeType":"VariableDeclaration","scope":3552,"src":"6036:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3527,"name":"bytes","nodeType":"ElementaryTypeName","src":"6036:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3530,"mutability":"mutable","name":"errorMessage","nameLocation":"6077:12:12","nodeType":"VariableDeclaration","scope":3552,"src":"6063:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3529,"name":"string","nodeType":"ElementaryTypeName","src":"6063:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6002:93:12"},"returnParameters":{"id":3534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3552,"src":"6119:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3532,"name":"bytes","nodeType":"ElementaryTypeName","src":"6119:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6118:14:12"},"scope":3636,"src":"5975:326:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3590,"nodeType":"Block","src":"6783:434:12","statements":[{"condition":{"id":3566,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3557,"src":"6797:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3588,"nodeType":"Block","src":"7153:58:12","statements":[{"expression":{"arguments":[{"id":3584,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"7175:10:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3585,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3561,"src":"7187:12:12","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":3583,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3635,"src":"7167:7:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":3586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7167:33:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3587,"nodeType":"ExpressionStatement","src":"7167:33:12"}]},"id":3589,"nodeType":"IfStatement","src":"6793:418:12","trueBody":{"id":3582,"nodeType":"Block","src":"6806:341:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3567,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"6824:10:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6835:6:12","memberName":"length","nodeType":"MemberAccess","src":"6824:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6845:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6824:22:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3579,"nodeType":"IfStatement","src":"6820:286:12","trueBody":{"id":3578,"nodeType":"Block","src":"6848:258:12","statements":[{"expression":{"arguments":[{"arguments":[{"id":3573,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3555,"src":"7050:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3572,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3370,"src":"7039:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":3574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7039:18:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":3575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7059:31:12","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":3571,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7031:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7031:60:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3577,"nodeType":"ExpressionStatement","src":"7031:60:12"}]}},{"expression":{"id":3580,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"7126:10:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3565,"id":3581,"nodeType":"Return","src":"7119:17:12"}]}}]},"documentation":{"id":3553,"nodeType":"StructuredDocumentation","src":"6307:277:12","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":3591,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"6598:26:12","nodeType":"FunctionDefinition","parameters":{"id":3562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3555,"mutability":"mutable","name":"target","nameLocation":"6642:6:12","nodeType":"VariableDeclaration","scope":3591,"src":"6634:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3554,"name":"address","nodeType":"ElementaryTypeName","src":"6634:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3557,"mutability":"mutable","name":"success","nameLocation":"6663:7:12","nodeType":"VariableDeclaration","scope":3591,"src":"6658:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3556,"name":"bool","nodeType":"ElementaryTypeName","src":"6658:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3559,"mutability":"mutable","name":"returndata","nameLocation":"6693:10:12","nodeType":"VariableDeclaration","scope":3591,"src":"6680:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3558,"name":"bytes","nodeType":"ElementaryTypeName","src":"6680:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3561,"mutability":"mutable","name":"errorMessage","nameLocation":"6727:12:12","nodeType":"VariableDeclaration","scope":3591,"src":"6713:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3560,"name":"string","nodeType":"ElementaryTypeName","src":"6713:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6624:121:12"},"returnParameters":{"id":3565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3591,"src":"6769:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3563,"name":"bytes","nodeType":"ElementaryTypeName","src":"6769:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6768:14:12"},"scope":3636,"src":"6589:628:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3614,"nodeType":"Block","src":"7598:135:12","statements":[{"condition":{"id":3603,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3594,"src":"7612:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3612,"nodeType":"Block","src":"7669:58:12","statements":[{"expression":{"arguments":[{"id":3608,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3596,"src":"7691:10:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3609,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"7703:12:12","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":3607,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3635,"src":"7683:7:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":3610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7683:33:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3611,"nodeType":"ExpressionStatement","src":"7683:33:12"}]},"id":3613,"nodeType":"IfStatement","src":"7608:119:12","trueBody":{"id":3606,"nodeType":"Block","src":"7621:42:12","statements":[{"expression":{"id":3604,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3596,"src":"7642:10:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3602,"id":3605,"nodeType":"Return","src":"7635:17:12"}]}}]},"documentation":{"id":3592,"nodeType":"StructuredDocumentation","src":"7223:210:12","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":3615,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7447:16:12","nodeType":"FunctionDefinition","parameters":{"id":3599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3594,"mutability":"mutable","name":"success","nameLocation":"7478:7:12","nodeType":"VariableDeclaration","scope":3615,"src":"7473:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3593,"name":"bool","nodeType":"ElementaryTypeName","src":"7473:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3596,"mutability":"mutable","name":"returndata","nameLocation":"7508:10:12","nodeType":"VariableDeclaration","scope":3615,"src":"7495:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3595,"name":"bytes","nodeType":"ElementaryTypeName","src":"7495:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3598,"mutability":"mutable","name":"errorMessage","nameLocation":"7542:12:12","nodeType":"VariableDeclaration","scope":3615,"src":"7528:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3597,"name":"string","nodeType":"ElementaryTypeName","src":"7528:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7463:97:12"},"returnParameters":{"id":3602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3615,"src":"7584:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3600,"name":"bytes","nodeType":"ElementaryTypeName","src":"7584:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7583:14:12"},"scope":3636,"src":"7438:295:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3634,"nodeType":"Block","src":"7822:457:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3622,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3617,"src":"7898:10:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7909:6:12","memberName":"length","nodeType":"MemberAccess","src":"7898:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7918:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7898:21:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3632,"nodeType":"Block","src":"8228:45:12","statements":[{"expression":{"arguments":[{"id":3629,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3619,"src":"8249:12:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3628,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8242:6:12","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8242:20:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3631,"nodeType":"ExpressionStatement","src":"8242:20:12"}]},"id":3633,"nodeType":"IfStatement","src":"7894:379:12","trueBody":{"id":3627,"nodeType":"Block","src":"7921:301:12","statements":[{"AST":{"nativeSrc":"8079:133:12","nodeType":"YulBlock","src":"8079:133:12","statements":[{"nativeSrc":"8097:40:12","nodeType":"YulVariableDeclaration","src":"8097:40:12","value":{"arguments":[{"name":"returndata","nativeSrc":"8126:10:12","nodeType":"YulIdentifier","src":"8126:10:12"}],"functionName":{"name":"mload","nativeSrc":"8120:5:12","nodeType":"YulIdentifier","src":"8120:5:12"},"nativeSrc":"8120:17:12","nodeType":"YulFunctionCall","src":"8120:17:12"},"variables":[{"name":"returndata_size","nativeSrc":"8101:15:12","nodeType":"YulTypedName","src":"8101:15:12","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8165:2:12","nodeType":"YulLiteral","src":"8165:2:12","type":"","value":"32"},{"name":"returndata","nativeSrc":"8169:10:12","nodeType":"YulIdentifier","src":"8169:10:12"}],"functionName":{"name":"add","nativeSrc":"8161:3:12","nodeType":"YulIdentifier","src":"8161:3:12"},"nativeSrc":"8161:19:12","nodeType":"YulFunctionCall","src":"8161:19:12"},{"name":"returndata_size","nativeSrc":"8182:15:12","nodeType":"YulIdentifier","src":"8182:15:12"}],"functionName":{"name":"revert","nativeSrc":"8154:6:12","nodeType":"YulIdentifier","src":"8154:6:12"},"nativeSrc":"8154:44:12","nodeType":"YulFunctionCall","src":"8154:44:12"},"nativeSrc":"8154:44:12","nodeType":"YulExpressionStatement","src":"8154:44:12"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3617,"isOffset":false,"isSlot":false,"src":"8126:10:12","valueSize":1},{"declaration":3617,"isOffset":false,"isSlot":false,"src":"8169:10:12","valueSize":1}],"id":3626,"nodeType":"InlineAssembly","src":"8070:142:12"}]}}]},"id":3635,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"7748:7:12","nodeType":"FunctionDefinition","parameters":{"id":3620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3617,"mutability":"mutable","name":"returndata","nameLocation":"7769:10:12","nodeType":"VariableDeclaration","scope":3635,"src":"7756:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3616,"name":"bytes","nodeType":"ElementaryTypeName","src":"7756:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3619,"mutability":"mutable","name":"errorMessage","nameLocation":"7795:12:12","nodeType":"VariableDeclaration","scope":3635,"src":"7781:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3618,"name":"string","nodeType":"ElementaryTypeName","src":"7781:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7755:53:12"},"returnParameters":{"id":3621,"nodeType":"ParameterList","parameters":[],"src":"7822:0:12"},"scope":3636,"src":"7739:540:12","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":3637,"src":"194:8087:12","usedErrors":[],"usedEvents":[]}],"src":"101:8181:12"},"id":12},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[3636],"ContextUpgradeable":[3678],"Initializable":[3352]},"id":3679,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3638,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:13"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":3639,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3679,"sourceUnit":3353,"src":"110:42:13","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3641,"name":"Initializable","nameLocations":["691:13:13"],"nodeType":"IdentifierPath","referencedDeclaration":3352,"src":"691:13:13"},"id":3642,"nodeType":"InheritanceSpecifier","src":"691:13:13"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3640,"nodeType":"StructuredDocumentation","src":"154:496:13","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":3678,"linearizedBaseContracts":[3678,3352],"name":"ContextUpgradeable","nameLocation":"669:18:13","nodeType":"ContractDefinition","nodes":[{"body":{"id":3647,"nodeType":"Block","src":"763:7:13","statements":[]},"id":3648,"implemented":true,"kind":"function","modifiers":[{"id":3645,"kind":"modifierInvocation","modifierName":{"id":3644,"name":"onlyInitializing","nameLocations":["746:16:13"],"nodeType":"IdentifierPath","referencedDeclaration":3297,"src":"746:16:13"},"nodeType":"ModifierInvocation","src":"746:16:13"}],"name":"__Context_init","nameLocation":"720:14:13","nodeType":"FunctionDefinition","parameters":{"id":3643,"nodeType":"ParameterList","parameters":[],"src":"734:2:13"},"returnParameters":{"id":3646,"nodeType":"ParameterList","parameters":[],"src":"763:0:13"},"scope":3678,"src":"711:59:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3653,"nodeType":"Block","src":"838:7:13","statements":[]},"id":3654,"implemented":true,"kind":"function","modifiers":[{"id":3651,"kind":"modifierInvocation","modifierName":{"id":3650,"name":"onlyInitializing","nameLocations":["821:16:13"],"nodeType":"IdentifierPath","referencedDeclaration":3297,"src":"821:16:13"},"nodeType":"ModifierInvocation","src":"821:16:13"}],"name":"__Context_init_unchained","nameLocation":"785:24:13","nodeType":"FunctionDefinition","parameters":{"id":3649,"nodeType":"ParameterList","parameters":[],"src":"809:2:13"},"returnParameters":{"id":3652,"nodeType":"ParameterList","parameters":[],"src":"838:0:13"},"scope":3678,"src":"776:69:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3662,"nodeType":"Block","src":"912:34:13","statements":[{"expression":{"expression":{"id":3659,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"929:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"933:6:13","memberName":"sender","nodeType":"MemberAccess","src":"929:10:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3658,"id":3661,"nodeType":"Return","src":"922:17:13"}]},"id":3663,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"859:10:13","nodeType":"FunctionDefinition","parameters":{"id":3655,"nodeType":"ParameterList","parameters":[],"src":"869:2:13"},"returnParameters":{"id":3658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3663,"src":"903:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3656,"name":"address","nodeType":"ElementaryTypeName","src":"903:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"902:9:13"},"scope":3678,"src":"850:96:13","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3671,"nodeType":"Block","src":"1019:32:13","statements":[{"expression":{"expression":{"id":3668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1036:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1040:4:13","memberName":"data","nodeType":"MemberAccess","src":"1036:8:13","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":3667,"id":3670,"nodeType":"Return","src":"1029:15:13"}]},"id":3672,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"961:8:13","nodeType":"FunctionDefinition","parameters":{"id":3664,"nodeType":"ParameterList","parameters":[],"src":"969:2:13"},"returnParameters":{"id":3667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3672,"src":"1003:14:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3665,"name":"bytes","nodeType":"ElementaryTypeName","src":"1003:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1002:16:13"},"scope":3678,"src":"952:99:13","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":3673,"nodeType":"StructuredDocumentation","src":"1057:254:13","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":3677,"mutability":"mutable","name":"__gap","nameLocation":"1336:5:13","nodeType":"VariableDeclaration","scope":3678,"src":"1316:25:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":3674,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3676,"length":{"hexValue":"3530","id":3675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:2:13","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1316:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":3679,"src":"651:693:13","usedErrors":[],"usedEvents":[3198]}],"src":"86:1259:13"},"id":13},"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[3994],"Context":[4364],"ERC165":[4563],"IAccessControl":[4067],"IERC165":[4575],"Math":[5440],"Strings":[4539]},"id":3995,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3680,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:14"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":3681,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3995,"sourceUnit":4068,"src":"133:30:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3682,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3995,"sourceUnit":4365,"src":"164:30:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":3683,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3995,"sourceUnit":4540,"src":"195:30:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":3684,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3995,"sourceUnit":4564,"src":"226:43:14","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3686,"name":"Context","nameLocations":["1841:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":4364,"src":"1841:7:14"},"id":3687,"nodeType":"InheritanceSpecifier","src":"1841:7:14"},{"baseName":{"id":3688,"name":"IAccessControl","nameLocations":["1850:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":4067,"src":"1850:14:14"},"id":3689,"nodeType":"InheritanceSpecifier","src":"1850:14:14"},{"baseName":{"id":3690,"name":"ERC165","nameLocations":["1866:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":4563,"src":"1866:6:14"},"id":3691,"nodeType":"InheritanceSpecifier","src":"1866:6:14"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":3685,"nodeType":"StructuredDocumentation","src":"271:1534:14","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 ```\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 ```\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."},"fullyImplemented":true,"id":3994,"linearizedBaseContracts":[3994,4563,4575,4067,4364],"name":"AccessControl","nameLocation":"1824:13:14","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":3698,"members":[{"constant":false,"id":3695,"mutability":"mutable","name":"members","nameLocation":"1930:7:14","nodeType":"VariableDeclaration","scope":3698,"src":"1905:32:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":3694,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3692,"name":"address","nodeType":"ElementaryTypeName","src":"1913:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1905:24:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3693,"name":"bool","nodeType":"ElementaryTypeName","src":"1924:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":3697,"mutability":"mutable","name":"adminRole","nameLocation":"1955:9:14","nodeType":"VariableDeclaration","scope":3698,"src":"1947:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1947:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"1886:8:14","nodeType":"StructDefinition","scope":3994,"src":"1879:92:14","visibility":"public"},{"constant":false,"id":3703,"mutability":"mutable","name":"_roles","nameLocation":"2014:6:14","nodeType":"VariableDeclaration","scope":3994,"src":"1977:43:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$3698_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":3702,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1985:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1977:28:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$3698_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3701,"nodeType":"UserDefinedTypeName","pathNode":{"id":3700,"name":"RoleData","nameLocations":["1996:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":3698,"src":"1996:8:14"},"referencedDeclaration":3698,"src":"1996:8:14","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$3698_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":3706,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2051:18:14","nodeType":"VariableDeclaration","scope":3994,"src":"2027:49:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2027:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":3705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:4:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":3716,"nodeType":"Block","src":"2495:44:14","statements":[{"expression":{"arguments":[{"id":3712,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3709,"src":"2516:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3711,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[3771,3810],"referencedDeclaration":3771,"src":"2505:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":3713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2505:16:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3714,"nodeType":"ExpressionStatement","src":"2505:16:14"},{"id":3715,"nodeType":"PlaceholderStatement","src":"2531:1:14"}]},"documentation":{"id":3707,"nodeType":"StructuredDocumentation","src":"2083:375:14","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":3717,"name":"onlyRole","nameLocation":"2472:8:14","nodeType":"ModifierDefinition","parameters":{"id":3710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3709,"mutability":"mutable","name":"role","nameLocation":"2489:4:14","nodeType":"VariableDeclaration","scope":3717,"src":"2481:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3708,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2480:14:14"},"src":"2463:76:14","virtual":false,"visibility":"internal"},{"baseFunctions":[4562],"body":{"id":3738,"nodeType":"Block","src":"2697:111:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3726,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"2714:11:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3728,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4067,"src":"2734:14:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$4067_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$4067_$","typeString":"type(contract IAccessControl)"}],"id":3727,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$4067","typeString":"type(contract IAccessControl)"}},"id":3730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2750:11:14","memberName":"interfaceId","nodeType":"MemberAccess","src":"2729:32:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2714:47:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3734,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"2789:11:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":3732,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2765:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$3994_$","typeString":"type(contract super AccessControl)"}},"id":3733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2771:17:14","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":4562,"src":"2765:23:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":3735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2714:87:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3725,"id":3737,"nodeType":"Return","src":"2707:94:14"}]},"documentation":{"id":3718,"nodeType":"StructuredDocumentation","src":"2545:56:14","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":3739,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2615:17:14","nodeType":"FunctionDefinition","overrides":{"id":3722,"nodeType":"OverrideSpecifier","overrides":[],"src":"2673:8:14"},"parameters":{"id":3721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3720,"mutability":"mutable","name":"interfaceId","nameLocation":"2640:11:14","nodeType":"VariableDeclaration","scope":3739,"src":"2633:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3719,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2633:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2632:20:14"},"returnParameters":{"id":3725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3739,"src":"2691:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3723,"name":"bool","nodeType":"ElementaryTypeName","src":"2691:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2690:6:14"},"scope":3994,"src":"2606:202:14","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4034],"body":{"id":3757,"nodeType":"Block","src":"2987:53:14","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":3750,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3703,"src":"3004:6:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$3698_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":3752,"indexExpression":{"id":3751,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"3011:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$3698_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":3753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3017:7:14","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":3695,"src":"3004:20:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3755,"indexExpression":{"id":3754,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3744,"src":"3025:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3749,"id":3756,"nodeType":"Return","src":"2997:36:14"}]},"documentation":{"id":3740,"nodeType":"StructuredDocumentation","src":"2814:76:14","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":3758,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2904:7:14","nodeType":"FunctionDefinition","overrides":{"id":3746,"nodeType":"OverrideSpecifier","overrides":[],"src":"2963:8:14"},"parameters":{"id":3745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3742,"mutability":"mutable","name":"role","nameLocation":"2920:4:14","nodeType":"VariableDeclaration","scope":3758,"src":"2912:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2912:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3744,"mutability":"mutable","name":"account","nameLocation":"2934:7:14","nodeType":"VariableDeclaration","scope":3758,"src":"2926:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3743,"name":"address","nodeType":"ElementaryTypeName","src":"2926:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2911:31:14"},"returnParameters":{"id":3749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3758,"src":"2981:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3747,"name":"bool","nodeType":"ElementaryTypeName","src":"2981:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2980:6:14"},"scope":3994,"src":"2895:145:14","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3770,"nodeType":"Block","src":"3390:47:14","statements":[{"expression":{"arguments":[{"id":3765,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3761,"src":"3411:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":3766,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"3417:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3417:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3764,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[3771,3810],"referencedDeclaration":3810,"src":"3400:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":3768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3400:30:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3769,"nodeType":"ExpressionStatement","src":"3400:30:14"}]},"documentation":{"id":3759,"nodeType":"StructuredDocumentation","src":"3046:283:14","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":3771,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3343:10:14","nodeType":"FunctionDefinition","parameters":{"id":3762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3761,"mutability":"mutable","name":"role","nameLocation":"3362:4:14","nodeType":"VariableDeclaration","scope":3771,"src":"3354:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3354:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3353:14:14"},"returnParameters":{"id":3763,"nodeType":"ParameterList","parameters":[],"src":"3390:0:14"},"scope":3994,"src":"3334:103:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3809,"nodeType":"Block","src":"3791:406:14","statements":[{"condition":{"id":3783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3805:23:14","subExpression":{"arguments":[{"id":3780,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"3814:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3781,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"3820:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3779,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3758,"src":"3806:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":3782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3806:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3808,"nodeType":"IfStatement","src":"3801:390:14","trueBody":{"id":3807,"nodeType":"Block","src":"3830:361:14","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":3789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3938:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"id":3792,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"4009:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3790,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4539,"src":"3989:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$4539_$","typeString":"type(library Strings)"}},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3997:11:14","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":4538,"src":"3989:19:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3989:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":3794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4043:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":3799,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"4116:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4108:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3797,"name":"uint256","nodeType":"ElementaryTypeName","src":"4108:7:14","typeDescriptions":{}}},"id":3800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4108:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":3801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4123:2:14","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":3795,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4539,"src":"4088:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$4539_$","typeString":"type(library Strings)"}},"id":3796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:11:14","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":4518,"src":"4088:19:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4088:38:14","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":3787,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3896:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3900:12:14","memberName":"encodePacked","nodeType":"MemberAccess","src":"3896:16:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3896:252:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3785,"name":"string","nodeType":"ElementaryTypeName","src":"3868:6:14","typeDescriptions":{}}},"id":3804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:298:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3784,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3844:6:14","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3844:336:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3806,"nodeType":"ExpressionStatement","src":"3844:336:14"}]}}]},"documentation":{"id":3772,"nodeType":"StructuredDocumentation","src":"3443:270:14","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":3810,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3727:10:14","nodeType":"FunctionDefinition","parameters":{"id":3777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3774,"mutability":"mutable","name":"role","nameLocation":"3746:4:14","nodeType":"VariableDeclaration","scope":3810,"src":"3738:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3773,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3738:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3776,"mutability":"mutable","name":"account","nameLocation":"3760:7:14","nodeType":"VariableDeclaration","scope":3810,"src":"3752:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3775,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3737:31:14"},"returnParameters":{"id":3778,"nodeType":"ParameterList","parameters":[],"src":"3791:0:14"},"scope":3994,"src":"3718:479:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[4042],"body":{"id":3824,"nodeType":"Block","src":"4461:46:14","statements":[{"expression":{"expression":{"baseExpression":{"id":3819,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3703,"src":"4478:6:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$3698_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":3821,"indexExpression":{"id":3820,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"4485:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4478:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$3698_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":3822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4491:9:14","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":3697,"src":"4478:22:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3818,"id":3823,"nodeType":"Return","src":"4471:29:14"}]},"documentation":{"id":3811,"nodeType":"StructuredDocumentation","src":"4203:170:14","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":3825,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4387:12:14","nodeType":"FunctionDefinition","overrides":{"id":3815,"nodeType":"OverrideSpecifier","overrides":[],"src":"4434:8:14"},"parameters":{"id":3814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3813,"mutability":"mutable","name":"role","nameLocation":"4408:4:14","nodeType":"VariableDeclaration","scope":3825,"src":"4400:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4400:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4399:14:14"},"returnParameters":{"id":3818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3825,"src":"4452:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4451:9:14"},"scope":3994,"src":"4378:129:14","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4050],"body":{"id":3844,"nodeType":"Block","src":"4906:42:14","statements":[{"expression":{"arguments":[{"id":3840,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3828,"src":"4927:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3841,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"4933:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3839,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3962,"src":"4916:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4916:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3843,"nodeType":"ExpressionStatement","src":"4916:25:14"}]},"documentation":{"id":3826,"nodeType":"StructuredDocumentation","src":"4513:285:14","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":3845,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":3835,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3828,"src":"4899:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3834,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"4886:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4886:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3837,"kind":"modifierInvocation","modifierName":{"id":3833,"name":"onlyRole","nameLocations":["4877:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":3717,"src":"4877:8:14"},"nodeType":"ModifierInvocation","src":"4877:28:14"}],"name":"grantRole","nameLocation":"4812:9:14","nodeType":"FunctionDefinition","overrides":{"id":3832,"nodeType":"OverrideSpecifier","overrides":[],"src":"4868:8:14"},"parameters":{"id":3831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3828,"mutability":"mutable","name":"role","nameLocation":"4830:4:14","nodeType":"VariableDeclaration","scope":3845,"src":"4822:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4822:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3830,"mutability":"mutable","name":"account","nameLocation":"4844:7:14","nodeType":"VariableDeclaration","scope":3845,"src":"4836:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3829,"name":"address","nodeType":"ElementaryTypeName","src":"4836:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4821:31:14"},"returnParameters":{"id":3838,"nodeType":"ParameterList","parameters":[],"src":"4906:0:14"},"scope":3994,"src":"4803:145:14","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4058],"body":{"id":3864,"nodeType":"Block","src":"5332:43:14","statements":[{"expression":{"arguments":[{"id":3860,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"5354:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3861,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"5360:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3859,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5342:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3863,"nodeType":"ExpressionStatement","src":"5342:26:14"}]},"documentation":{"id":3846,"nodeType":"StructuredDocumentation","src":"4954:269:14","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":3865,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":3855,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"5325:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3854,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"5312:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":3856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5312:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3857,"kind":"modifierInvocation","modifierName":{"id":3853,"name":"onlyRole","nameLocations":["5303:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":3717,"src":"5303:8:14"},"nodeType":"ModifierInvocation","src":"5303:28:14"}],"name":"revokeRole","nameLocation":"5237:10:14","nodeType":"FunctionDefinition","overrides":{"id":3852,"nodeType":"OverrideSpecifier","overrides":[],"src":"5294:8:14"},"parameters":{"id":3851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3848,"mutability":"mutable","name":"role","nameLocation":"5256:4:14","nodeType":"VariableDeclaration","scope":3865,"src":"5248:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5248:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3850,"mutability":"mutable","name":"account","nameLocation":"5270:7:14","nodeType":"VariableDeclaration","scope":3865,"src":"5262:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3849,"name":"address","nodeType":"ElementaryTypeName","src":"5262:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5247:31:14"},"returnParameters":{"id":3858,"nodeType":"ParameterList","parameters":[],"src":"5332:0:14"},"scope":3994,"src":"5228:147:14","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4066],"body":{"id":3887,"nodeType":"Block","src":"5989:137:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3875,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3870,"src":"6007:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3876,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"6018:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6007:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":3879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6032:49:14","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":3874,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5999:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5999:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3881,"nodeType":"ExpressionStatement","src":"5999:83:14"},{"expression":{"arguments":[{"id":3883,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"6105:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3884,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3870,"src":"6111:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3882,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"6093:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6093:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3886,"nodeType":"ExpressionStatement","src":"6093:26:14"}]},"documentation":{"id":3866,"nodeType":"StructuredDocumentation","src":"5381:526:14","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":3888,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5921:12:14","nodeType":"FunctionDefinition","overrides":{"id":3872,"nodeType":"OverrideSpecifier","overrides":[],"src":"5980:8:14"},"parameters":{"id":3871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3868,"mutability":"mutable","name":"role","nameLocation":"5942:4:14","nodeType":"VariableDeclaration","scope":3888,"src":"5934:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5934:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3870,"mutability":"mutable","name":"account","nameLocation":"5956:7:14","nodeType":"VariableDeclaration","scope":3888,"src":"5948:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3869,"name":"address","nodeType":"ElementaryTypeName","src":"5948:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5933:31:14"},"returnParameters":{"id":3873,"nodeType":"ParameterList","parameters":[],"src":"5989:0:14"},"scope":3994,"src":"5912:214:14","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3901,"nodeType":"Block","src":"6879:42:14","statements":[{"expression":{"arguments":[{"id":3897,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"6900:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3898,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"6906:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3896,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3962,"src":"6889:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6889:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3900,"nodeType":"ExpressionStatement","src":"6889:25:14"}]},"documentation":{"id":3889,"nodeType":"StructuredDocumentation","src":"6132:674:14","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":3902,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6820:10:14","nodeType":"FunctionDefinition","parameters":{"id":3894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3891,"mutability":"mutable","name":"role","nameLocation":"6839:4:14","nodeType":"VariableDeclaration","scope":3902,"src":"6831:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6831:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3893,"mutability":"mutable","name":"account","nameLocation":"6853:7:14","nodeType":"VariableDeclaration","scope":3902,"src":"6845:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3892,"name":"address","nodeType":"ElementaryTypeName","src":"6845:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6830:31:14"},"returnParameters":{"id":3895,"nodeType":"ParameterList","parameters":[],"src":"6879:0:14"},"scope":3994,"src":"6811:110:14","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3929,"nodeType":"Block","src":"7119:174:14","statements":[{"assignments":[3911],"declarations":[{"constant":false,"id":3911,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7137:17:14","nodeType":"VariableDeclaration","scope":3929,"src":"7129:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7129:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3915,"initialValue":{"arguments":[{"id":3913,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3905,"src":"7170:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3912,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"7157:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":3914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7157:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7129:46:14"},{"expression":{"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":3916,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3703,"src":"7185:6:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$3698_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":3918,"indexExpression":{"id":3917,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3905,"src":"7192:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7185:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$3698_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":3919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7198:9:14","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":3697,"src":"7185:22:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3920,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3907,"src":"7210:9:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7185:34:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3922,"nodeType":"ExpressionStatement","src":"7185:34:14"},{"eventCall":{"arguments":[{"id":3924,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3905,"src":"7251:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3925,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3911,"src":"7257:17:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3926,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3907,"src":"7276:9:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3923,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"7234:16:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7234:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3928,"nodeType":"EmitStatement","src":"7229:57:14"}]},"documentation":{"id":3903,"nodeType":"StructuredDocumentation","src":"6927:114:14","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":3930,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7055:13:14","nodeType":"FunctionDefinition","parameters":{"id":3908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3905,"mutability":"mutable","name":"role","nameLocation":"7077:4:14","nodeType":"VariableDeclaration","scope":3930,"src":"7069:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7069:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3907,"mutability":"mutable","name":"adminRole","nameLocation":"7091:9:14","nodeType":"VariableDeclaration","scope":3930,"src":"7083:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7083:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7068:33:14"},"returnParameters":{"id":3909,"nodeType":"ParameterList","parameters":[],"src":"7119:0:14"},"scope":3994,"src":"7046:247:14","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3961,"nodeType":"Block","src":"7529:165:14","statements":[{"condition":{"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7543:23:14","subExpression":{"arguments":[{"id":3939,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"7552:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3940,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3935,"src":"7558:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3938,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3758,"src":"7544:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7544:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3960,"nodeType":"IfStatement","src":"7539:149:14","trueBody":{"id":3959,"nodeType":"Block","src":"7568:120:14","statements":[{"expression":{"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":3943,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3703,"src":"7582:6:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$3698_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":3945,"indexExpression":{"id":3944,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"7589:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7582:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$3698_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":3946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7595:7:14","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":3695,"src":"7582:20:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3948,"indexExpression":{"id":3947,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3935,"src":"7603:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7582:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7614:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7582:36:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3951,"nodeType":"ExpressionStatement","src":"7582:36:14"},{"eventCall":{"arguments":[{"id":3953,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"7649:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3954,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3935,"src":"7655:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":3955,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"7664:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7664:12:14","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":3952,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"7637:11:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":3957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7637:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3958,"nodeType":"EmitStatement","src":"7632:45:14"}]}}]},"documentation":{"id":3931,"nodeType":"StructuredDocumentation","src":"7299:157:14","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":3962,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7470:10:14","nodeType":"FunctionDefinition","parameters":{"id":3936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3933,"mutability":"mutable","name":"role","nameLocation":"7489:4:14","nodeType":"VariableDeclaration","scope":3962,"src":"7481:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7481:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3935,"mutability":"mutable","name":"account","nameLocation":"7503:7:14","nodeType":"VariableDeclaration","scope":3962,"src":"7495:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3934,"name":"address","nodeType":"ElementaryTypeName","src":"7495:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7480:31:14"},"returnParameters":{"id":3937,"nodeType":"ParameterList","parameters":[],"src":"7529:0:14"},"scope":3994,"src":"7461:233:14","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3992,"nodeType":"Block","src":"7934:165:14","statements":[{"condition":{"arguments":[{"id":3971,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"7956:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3972,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3967,"src":"7962:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3970,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3758,"src":"7948:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":3973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7948:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3991,"nodeType":"IfStatement","src":"7944:149:14","trueBody":{"id":3990,"nodeType":"Block","src":"7972:121:14","statements":[{"expression":{"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":3974,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3703,"src":"7986:6:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$3698_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":3976,"indexExpression":{"id":3975,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"7993:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7986:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$3698_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":3977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7999:7:14","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":3695,"src":"7986:20:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3979,"indexExpression":{"id":3978,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3967,"src":"8007:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7986:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8018:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7986:37:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3982,"nodeType":"ExpressionStatement","src":"7986:37:14"},{"eventCall":{"arguments":[{"id":3984,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"8054:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3985,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3967,"src":"8060:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":3986,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"8069:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:12:14","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":3983,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4024,"src":"8042:11:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":3988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8042:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3989,"nodeType":"EmitStatement","src":"8037:45:14"}]}}]},"documentation":{"id":3963,"nodeType":"StructuredDocumentation","src":"7700:160:14","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":3993,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7874:11:14","nodeType":"FunctionDefinition","parameters":{"id":3968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3965,"mutability":"mutable","name":"role","nameLocation":"7894:4:14","nodeType":"VariableDeclaration","scope":3993,"src":"7886:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7886:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3967,"mutability":"mutable","name":"account","nameLocation":"7908:7:14","nodeType":"VariableDeclaration","scope":3993,"src":"7900:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3966,"name":"address","nodeType":"ElementaryTypeName","src":"7900:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7885:31:14"},"returnParameters":{"id":3969,"nodeType":"ParameterList","parameters":[],"src":"7934:0:14"},"scope":3994,"src":"7865:234:14","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3995,"src":"1806:6295:14","usedErrors":[],"usedEvents":[4006,4015,4024]}],"src":"108:7994:14"},"id":14},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[4067]},"id":4068,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3996,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:15"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":3997,"nodeType":"StructuredDocumentation","src":"119:89:15","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":4067,"linearizedBaseContracts":[4067],"name":"IAccessControl","nameLocation":"219:14:15","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":3998,"nodeType":"StructuredDocumentation","src":"240:292:15","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":4006,"name":"RoleAdminChanged","nameLocation":"543:16:15","nodeType":"EventDefinition","parameters":{"id":4005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4000,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:15","nodeType":"VariableDeclaration","scope":4006,"src":"560:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4002,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:15","nodeType":"VariableDeclaration","scope":4006,"src":"582:33:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4004,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:15","nodeType":"VariableDeclaration","scope":4006,"src":"617:28:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:15"},"src":"537:110:15"},{"anonymous":false,"documentation":{"id":4007,"nodeType":"StructuredDocumentation","src":"653:212:15","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":4015,"name":"RoleGranted","nameLocation":"876:11:15","nodeType":"EventDefinition","parameters":{"id":4014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4009,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:15","nodeType":"VariableDeclaration","scope":4015,"src":"888:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4011,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:15","nodeType":"VariableDeclaration","scope":4015,"src":"910:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4010,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4013,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:15","nodeType":"VariableDeclaration","scope":4015,"src":"935:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4012,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:15"},"src":"870:89:15"},{"anonymous":false,"documentation":{"id":4016,"nodeType":"StructuredDocumentation","src":"965:275:15","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":4024,"name":"RoleRevoked","nameLocation":"1251:11:15","nodeType":"EventDefinition","parameters":{"id":4023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4018,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:15","nodeType":"VariableDeclaration","scope":4024,"src":"1263:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4020,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:15","nodeType":"VariableDeclaration","scope":4024,"src":"1285:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4019,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4022,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:15","nodeType":"VariableDeclaration","scope":4024,"src":"1310:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4021,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:15"},"src":"1245:89:15"},{"documentation":{"id":4025,"nodeType":"StructuredDocumentation","src":"1340:76:15","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":4034,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:15","nodeType":"FunctionDefinition","parameters":{"id":4030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4027,"mutability":"mutable","name":"role","nameLocation":"1446:4:15","nodeType":"VariableDeclaration","scope":4034,"src":"1438:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4029,"mutability":"mutable","name":"account","nameLocation":"1460:7:15","nodeType":"VariableDeclaration","scope":4034,"src":"1452:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4028,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:15"},"returnParameters":{"id":4033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4034,"src":"1492:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4031,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:15"},"scope":4067,"src":"1421:77:15","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4035,"nodeType":"StructuredDocumentation","src":"1504:184:15","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":4042,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:15","nodeType":"FunctionDefinition","parameters":{"id":4038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4037,"mutability":"mutable","name":"role","nameLocation":"1723:4:15","nodeType":"VariableDeclaration","scope":4042,"src":"1715:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4036,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:15"},"returnParameters":{"id":4041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4042,"src":"1752:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:15"},"scope":4067,"src":"1693:68:15","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4043,"nodeType":"StructuredDocumentation","src":"1767:239:15","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":4050,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:15","nodeType":"FunctionDefinition","parameters":{"id":4048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4045,"mutability":"mutable","name":"role","nameLocation":"2038:4:15","nodeType":"VariableDeclaration","scope":4050,"src":"2030:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4047,"mutability":"mutable","name":"account","nameLocation":"2052:7:15","nodeType":"VariableDeclaration","scope":4050,"src":"2044:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4046,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:15"},"returnParameters":{"id":4049,"nodeType":"ParameterList","parameters":[],"src":"2069:0:15"},"scope":4067,"src":"2011:59:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4051,"nodeType":"StructuredDocumentation","src":"2076:223:15","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":4058,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:15","nodeType":"FunctionDefinition","parameters":{"id":4056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4053,"mutability":"mutable","name":"role","nameLocation":"2332:4:15","nodeType":"VariableDeclaration","scope":4058,"src":"2324:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4055,"mutability":"mutable","name":"account","nameLocation":"2346:7:15","nodeType":"VariableDeclaration","scope":4058,"src":"2338:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4054,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:15"},"returnParameters":{"id":4057,"nodeType":"ParameterList","parameters":[],"src":"2363:0:15"},"scope":4067,"src":"2304:60:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4059,"nodeType":"StructuredDocumentation","src":"2370:480:15","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":4066,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:15","nodeType":"FunctionDefinition","parameters":{"id":4064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4061,"mutability":"mutable","name":"role","nameLocation":"2885:4:15","nodeType":"VariableDeclaration","scope":4066,"src":"2877:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4063,"mutability":"mutable","name":"account","nameLocation":"2899:7:15","nodeType":"VariableDeclaration","scope":4066,"src":"2891:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4062,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:15"},"returnParameters":{"id":4065,"nodeType":"ParameterList","parameters":[],"src":"2916:0:15"},"scope":4067,"src":"2855:62:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4068,"src":"209:2710:15","usedErrors":[],"usedEvents":[4006,4015,4024]}],"src":"94:2826:15"},"id":15},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[4364],"Ownable":[4180]},"id":4181,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4069,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:16"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":4070,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4181,"sourceUnit":4365,"src":"127:30:16","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4072,"name":"Context","nameLocations":["683:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":4364,"src":"683:7:16"},"id":4073,"nodeType":"InheritanceSpecifier","src":"683:7:16"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4071,"nodeType":"StructuredDocumentation","src":"159:494:16","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":4180,"linearizedBaseContracts":[4180,4364],"name":"Ownable","nameLocation":"672:7:16","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":4075,"mutability":"mutable","name":"_owner","nameLocation":"713:6:16","nodeType":"VariableDeclaration","scope":4180,"src":"697:22:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4074,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":4081,"name":"OwnershipTransferred","nameLocation":"732:20:16","nodeType":"EventDefinition","parameters":{"id":4080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4077,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:16","nodeType":"VariableDeclaration","scope":4081,"src":"753:29:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4076,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4079,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:16","nodeType":"VariableDeclaration","scope":4081,"src":"784:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4078,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:16"},"src":"726:84:16"},{"body":{"id":4090,"nodeType":"Block","src":"926:49:16","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4086,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"955:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4085,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"936:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4089,"nodeType":"ExpressionStatement","src":"936:32:16"}]},"documentation":{"id":4082,"nodeType":"StructuredDocumentation","src":"816:91:16","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":4091,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4083,"nodeType":"ParameterList","parameters":[],"src":"923:2:16"},"returnParameters":{"id":4084,"nodeType":"ParameterList","parameters":[],"src":"926:0:16"},"scope":4180,"src":"912:63:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4098,"nodeType":"Block","src":"1084:41:16","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4094,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4122,"src":"1094:11:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4096,"nodeType":"ExpressionStatement","src":"1094:13:16"},{"id":4097,"nodeType":"PlaceholderStatement","src":"1117:1:16"}]},"documentation":{"id":4092,"nodeType":"StructuredDocumentation","src":"981:77:16","text":" @dev Throws if called by any account other than the owner."},"id":4099,"name":"onlyOwner","nameLocation":"1072:9:16","nodeType":"ModifierDefinition","parameters":{"id":4093,"nodeType":"ParameterList","parameters":[],"src":"1081:2:16"},"src":"1063:62:16","virtual":false,"visibility":"internal"},{"body":{"id":4107,"nodeType":"Block","src":"1256:30:16","statements":[{"expression":{"id":4105,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"1273:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4104,"id":4106,"nodeType":"Return","src":"1266:13:16"}]},"documentation":{"id":4100,"nodeType":"StructuredDocumentation","src":"1131:65:16","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":4108,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:16","nodeType":"FunctionDefinition","parameters":{"id":4101,"nodeType":"ParameterList","parameters":[],"src":"1215:2:16"},"returnParameters":{"id":4104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4108,"src":"1247:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4102,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:16"},"scope":4180,"src":"1201:85:16","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4121,"nodeType":"Block","src":"1404:85:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4113,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4108,"src":"1422:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:7:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4115,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"1433:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":4118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:16","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":4112,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:68:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4120,"nodeType":"ExpressionStatement","src":"1414:68:16"}]},"documentation":{"id":4109,"nodeType":"StructuredDocumentation","src":"1292:62:16","text":" @dev Throws if the sender is not the owner."},"id":4122,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:16","nodeType":"FunctionDefinition","parameters":{"id":4110,"nodeType":"ParameterList","parameters":[],"src":"1379:2:16"},"returnParameters":{"id":4111,"nodeType":"ParameterList","parameters":[],"src":"1404:0:16"},"scope":4180,"src":"1359:130:16","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4135,"nodeType":"Block","src":"1885:47:16","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":4131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:16","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":4130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4129,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:16","typeDescriptions":{}}},"id":4132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1914:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4128,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"1895:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:30:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4134,"nodeType":"ExpressionStatement","src":"1895:30:16"}]},"documentation":{"id":4123,"nodeType":"StructuredDocumentation","src":"1495:331:16","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":4136,"implemented":true,"kind":"function","modifiers":[{"id":4126,"kind":"modifierInvocation","modifierName":{"id":4125,"name":"onlyOwner","nameLocations":["1875:9:16"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"1875:9:16"},"nodeType":"ModifierInvocation","src":"1875:9:16"}],"name":"renounceOwnership","nameLocation":"1840:17:16","nodeType":"FunctionDefinition","parameters":{"id":4124,"nodeType":"ParameterList","parameters":[],"src":"1857:2:16"},"returnParameters":{"id":4127,"nodeType":"ParameterList","parameters":[],"src":"1885:0:16"},"scope":4180,"src":"1831:101:16","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":4158,"nodeType":"Block","src":"2151:128:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4145,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"2169:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:16","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":4147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4146,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:16","typeDescriptions":{}}},"id":4149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2181:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":4151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:16","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":4144,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2161:73:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4153,"nodeType":"ExpressionStatement","src":"2161:73:16"},{"expression":{"arguments":[{"id":4155,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"2263:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4154,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"2244:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2244:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4157,"nodeType":"ExpressionStatement","src":"2244:28:16"}]},"documentation":{"id":4137,"nodeType":"StructuredDocumentation","src":"1938:138:16","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":4159,"implemented":true,"kind":"function","modifiers":[{"id":4142,"kind":"modifierInvocation","modifierName":{"id":4141,"name":"onlyOwner","nameLocations":["2141:9:16"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"2141:9:16"},"nodeType":"ModifierInvocation","src":"2141:9:16"}],"name":"transferOwnership","nameLocation":"2090:17:16","nodeType":"FunctionDefinition","parameters":{"id":4140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4139,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:16","nodeType":"VariableDeclaration","scope":4159,"src":"2108:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4138,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:16"},"returnParameters":{"id":4143,"nodeType":"ParameterList","parameters":[],"src":"2151:0:16"},"scope":4180,"src":"2081:198:16","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":4178,"nodeType":"Block","src":"2496:124:16","statements":[{"assignments":[4166],"declarations":[{"constant":false,"id":4166,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:16","nodeType":"VariableDeclaration","scope":4178,"src":"2506:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4165,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4168,"initialValue":{"id":4167,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"2525:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:16"},{"expression":{"id":4171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4169,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"2541:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4170,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"2550:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4172,"nodeType":"ExpressionStatement","src":"2541:17:16"},{"eventCall":{"arguments":[{"id":4174,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4166,"src":"2594:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4175,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"2604:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4173,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"2573:20:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4177,"nodeType":"EmitStatement","src":"2568:45:16"}]},"documentation":{"id":4160,"nodeType":"StructuredDocumentation","src":"2285:143:16","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":4179,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:16","nodeType":"FunctionDefinition","parameters":{"id":4163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4162,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:16","nodeType":"VariableDeclaration","scope":4179,"src":"2461:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4161,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:16"},"returnParameters":{"id":4164,"nodeType":"ParameterList","parameters":[],"src":"2496:0:16"},"scope":4180,"src":"2433:187:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4181,"src":"654:1968:16","usedErrors":[],"usedEvents":[4081]}],"src":"102:2521:16"},"id":16},"@openzeppelin/contracts/security/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","exportedSymbols":{"Context":[4364],"Pausable":[4288]},"id":4289,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4182,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:17"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":4183,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4289,"sourceUnit":4365,"src":"130:30:17","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4185,"name":"Context","nameLocations":["632:7:17"],"nodeType":"IdentifierPath","referencedDeclaration":4364,"src":"632:7:17"},"id":4186,"nodeType":"InheritanceSpecifier","src":"632:7:17"}],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4184,"nodeType":"StructuredDocumentation","src":"162:439:17","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":4288,"linearizedBaseContracts":[4288,4364],"name":"Pausable","nameLocation":"620:8:17","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":4187,"nodeType":"StructuredDocumentation","src":"646:73:17","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":4191,"name":"Paused","nameLocation":"730:6:17","nodeType":"EventDefinition","parameters":{"id":4190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4189,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"745:7:17","nodeType":"VariableDeclaration","scope":4191,"src":"737:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4188,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:17:17"},"src":"724:30:17"},{"anonymous":false,"documentation":{"id":4192,"nodeType":"StructuredDocumentation","src":"760:70:17","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":4196,"name":"Unpaused","nameLocation":"841:8:17","nodeType":"EventDefinition","parameters":{"id":4195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4194,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"858:7:17","nodeType":"VariableDeclaration","scope":4196,"src":"850:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4193,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:17"},"src":"835:32:17"},{"constant":false,"id":4198,"mutability":"mutable","name":"_paused","nameLocation":"886:7:17","nodeType":"VariableDeclaration","scope":4288,"src":"873:20:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4197,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":4206,"nodeType":"Block","src":"986:32:17","statements":[{"expression":{"id":4204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4202,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"996:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1006:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"996:15:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4205,"nodeType":"ExpressionStatement","src":"996:15:17"}]},"documentation":{"id":4199,"nodeType":"StructuredDocumentation","src":"900:67:17","text":" @dev Initializes the contract in unpaused state."},"id":4207,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4200,"nodeType":"ParameterList","parameters":[],"src":"983:2:17"},"returnParameters":{"id":4201,"nodeType":"ParameterList","parameters":[],"src":"986:0:17"},"scope":4288,"src":"972:46:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4214,"nodeType":"Block","src":"1229:47:17","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4210,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4244,"src":"1239:17:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1239:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4212,"nodeType":"ExpressionStatement","src":"1239:19:17"},{"id":4213,"nodeType":"PlaceholderStatement","src":"1268:1:17"}]},"documentation":{"id":4208,"nodeType":"StructuredDocumentation","src":"1024:175:17","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":4215,"name":"whenNotPaused","nameLocation":"1213:13:17","nodeType":"ModifierDefinition","parameters":{"id":4209,"nodeType":"ParameterList","parameters":[],"src":"1226:2:17"},"src":"1204:72:17","virtual":false,"visibility":"internal"},{"body":{"id":4222,"nodeType":"Block","src":"1476:44:17","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4218,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4255,"src":"1486:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":4219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1486:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4220,"nodeType":"ExpressionStatement","src":"1486:16:17"},{"id":4221,"nodeType":"PlaceholderStatement","src":"1512:1:17"}]},"documentation":{"id":4216,"nodeType":"StructuredDocumentation","src":"1282:167:17","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":4223,"name":"whenPaused","nameLocation":"1463:10:17","nodeType":"ModifierDefinition","parameters":{"id":4217,"nodeType":"ParameterList","parameters":[],"src":"1473:2:17"},"src":"1454:66:17","virtual":false,"visibility":"internal"},{"body":{"id":4231,"nodeType":"Block","src":"1668:31:17","statements":[{"expression":{"id":4229,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"1685:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4228,"id":4230,"nodeType":"Return","src":"1678:14:17"}]},"documentation":{"id":4224,"nodeType":"StructuredDocumentation","src":"1526:84:17","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":4232,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1624:6:17","nodeType":"FunctionDefinition","parameters":{"id":4225,"nodeType":"ParameterList","parameters":[],"src":"1630:2:17"},"returnParameters":{"id":4228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4232,"src":"1662:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4226,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:17"},"scope":4288,"src":"1615:84:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4243,"nodeType":"Block","src":"1818:55:17","statements":[{"expression":{"arguments":[{"id":4239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1836:9:17","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4237,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"1837:6:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":4238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1837:8:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":4240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1847:18:17","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":4236,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1828:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1828:38:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4242,"nodeType":"ExpressionStatement","src":"1828:38:17"}]},"documentation":{"id":4233,"nodeType":"StructuredDocumentation","src":"1705:57:17","text":" @dev Throws if the contract is paused."},"id":4244,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1776:17:17","nodeType":"FunctionDefinition","parameters":{"id":4234,"nodeType":"ParameterList","parameters":[],"src":"1793:2:17"},"returnParameters":{"id":4235,"nodeType":"ParameterList","parameters":[],"src":"1818:0:17"},"scope":4288,"src":"1767:106:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4254,"nodeType":"Block","src":"1993:58:17","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4249,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"2011:6:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2011:8:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":4251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:22:17","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":4248,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2003:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2003:41:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4253,"nodeType":"ExpressionStatement","src":"2003:41:17"}]},"documentation":{"id":4245,"nodeType":"StructuredDocumentation","src":"1879:61:17","text":" @dev Throws if the contract is not paused."},"id":4255,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1954:14:17","nodeType":"FunctionDefinition","parameters":{"id":4246,"nodeType":"ParameterList","parameters":[],"src":"1968:2:17"},"returnParameters":{"id":4247,"nodeType":"ParameterList","parameters":[],"src":"1993:0:17"},"scope":4288,"src":"1945:106:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4270,"nodeType":"Block","src":"2235:66:17","statements":[{"expression":{"id":4263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4261,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"2245:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2255:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2245:14:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4264,"nodeType":"ExpressionStatement","src":"2245:14:17"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4266,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"2281:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4265,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4191,"src":"2274:6:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:20:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4269,"nodeType":"EmitStatement","src":"2269:25:17"}]},"documentation":{"id":4256,"nodeType":"StructuredDocumentation","src":"2057:124:17","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":4271,"implemented":true,"kind":"function","modifiers":[{"id":4259,"kind":"modifierInvocation","modifierName":{"id":4258,"name":"whenNotPaused","nameLocations":["2221:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":4215,"src":"2221:13:17"},"nodeType":"ModifierInvocation","src":"2221:13:17"}],"name":"_pause","nameLocation":"2195:6:17","nodeType":"FunctionDefinition","parameters":{"id":4257,"nodeType":"ParameterList","parameters":[],"src":"2201:2:17"},"returnParameters":{"id":4260,"nodeType":"ParameterList","parameters":[],"src":"2235:0:17"},"scope":4288,"src":"2186:115:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4286,"nodeType":"Block","src":"2481:69:17","statements":[{"expression":{"id":4279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4277,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"2491:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2491:15:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4280,"nodeType":"ExpressionStatement","src":"2491:15:17"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4282,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"2530:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2530:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4281,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4196,"src":"2521:8:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2521:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4285,"nodeType":"EmitStatement","src":"2516:27:17"}]},"documentation":{"id":4272,"nodeType":"StructuredDocumentation","src":"2307:121:17","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":4287,"implemented":true,"kind":"function","modifiers":[{"id":4275,"kind":"modifierInvocation","modifierName":{"id":4274,"name":"whenPaused","nameLocations":["2470:10:17"],"nodeType":"IdentifierPath","referencedDeclaration":4223,"src":"2470:10:17"},"nodeType":"ModifierInvocation","src":"2470:10:17"}],"name":"_unpause","nameLocation":"2442:8:17","nodeType":"FunctionDefinition","parameters":{"id":4273,"nodeType":"ParameterList","parameters":[],"src":"2450:2:17"},"returnParameters":{"id":4276,"nodeType":"ParameterList","parameters":[],"src":"2481:0:17"},"scope":4288,"src":"2433:117:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4289,"src":"602:1950:17","usedErrors":[],"usedEvents":[4191,4196]}],"src":"105:2448:17"},"id":17},"@openzeppelin/contracts/security/ReentrancyGuard.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[4342]},"id":4343,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4290,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:18"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":4291,"nodeType":"StructuredDocumentation","src":"137:750:18","text":" @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."},"fullyImplemented":true,"id":4342,"linearizedBaseContracts":[4342],"name":"ReentrancyGuard","nameLocation":"906:15:18","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4294,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"1701:12:18","nodeType":"VariableDeclaration","scope":4342,"src":"1676:41:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4292,"name":"uint256","nodeType":"ElementaryTypeName","src":"1676:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":4293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1716:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":4297,"mutability":"constant","name":"_ENTERED","nameLocation":"1748:8:18","nodeType":"VariableDeclaration","scope":4342,"src":"1723:37:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4295,"name":"uint256","nodeType":"ElementaryTypeName","src":"1723:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":4296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1759:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":false,"id":4299,"mutability":"mutable","name":"_status","nameLocation":"1783:7:18","nodeType":"VariableDeclaration","scope":4342,"src":"1767:23:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1767:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":4306,"nodeType":"Block","src":"1811:39:18","statements":[{"expression":{"id":4304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4302,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"1821:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4303,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"1831:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1821:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4305,"nodeType":"ExpressionStatement","src":"1821:22:18"}]},"id":4307,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4300,"nodeType":"ParameterList","parameters":[],"src":"1808:2:18"},"returnParameters":{"id":4301,"nodeType":"ParameterList","parameters":[],"src":"1811:0:18"},"scope":4342,"src":"1797:53:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4317,"nodeType":"Block","src":"2251:79:18","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4310,"name":"_nonReentrantBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4333,"src":"2261:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2261:21:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4312,"nodeType":"ExpressionStatement","src":"2261:21:18"},{"id":4313,"nodeType":"PlaceholderStatement","src":"2292:1:18"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4314,"name":"_nonReentrantAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4341,"src":"2303:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2303:20:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4316,"nodeType":"ExpressionStatement","src":"2303:20:18"}]},"documentation":{"id":4308,"nodeType":"StructuredDocumentation","src":"1856:366:18","text":" @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."},"id":4318,"name":"nonReentrant","nameLocation":"2236:12:18","nodeType":"ModifierDefinition","parameters":{"id":4309,"nodeType":"ParameterList","parameters":[],"src":"2248:2:18"},"src":"2227:103:18","virtual":false,"visibility":"internal"},{"body":{"id":4332,"nodeType":"Block","src":"2375:248:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4322,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"2468:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4323,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"2479:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2468:19:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","id":4325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2489:33:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""},"value":"ReentrancyGuard: reentrant call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619","typeString":"literal_string \"ReentrancyGuard: reentrant call\""}],"id":4321,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2460:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2460:63:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4327,"nodeType":"ExpressionStatement","src":"2460:63:18"},{"expression":{"id":4330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4328,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"2598:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4329,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"2608:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2598:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4331,"nodeType":"ExpressionStatement","src":"2598:18:18"}]},"id":4333,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantBefore","nameLocation":"2345:19:18","nodeType":"FunctionDefinition","parameters":{"id":4319,"nodeType":"ParameterList","parameters":[],"src":"2364:2:18"},"returnParameters":{"id":4320,"nodeType":"ParameterList","parameters":[],"src":"2375:0:18"},"scope":4342,"src":"2336:287:18","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4340,"nodeType":"Block","src":"2667:171:18","statements":[{"expression":{"id":4338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4336,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"2809:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4337,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"2819:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2809:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4339,"nodeType":"ExpressionStatement","src":"2809:22:18"}]},"id":4341,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantAfter","nameLocation":"2638:18:18","nodeType":"FunctionDefinition","parameters":{"id":4334,"nodeType":"ParameterList","parameters":[],"src":"2656:2:18"},"returnParameters":{"id":4335,"nodeType":"ParameterList","parameters":[],"src":"2667:0:18"},"scope":4342,"src":"2629:209:18","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":4343,"src":"888:1952:18","usedErrors":[],"usedEvents":[]}],"src":"112:2729:18"},"id":18},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[4364]},"id":4365,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4344,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:19"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":4345,"nodeType":"StructuredDocumentation","src":"111:496:19","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":4364,"linearizedBaseContracts":[4364],"name":"Context","nameLocation":"626:7:19","nodeType":"ContractDefinition","nodes":[{"body":{"id":4353,"nodeType":"Block","src":"702:34:19","statements":[{"expression":{"expression":{"id":4350,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:19","memberName":"sender","nodeType":"MemberAccess","src":"719:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4349,"id":4352,"nodeType":"Return","src":"712:17:19"}]},"id":4354,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:19","nodeType":"FunctionDefinition","parameters":{"id":4346,"nodeType":"ParameterList","parameters":[],"src":"659:2:19"},"returnParameters":{"id":4349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4354,"src":"693:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4347,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:19"},"scope":4364,"src":"640:96:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4362,"nodeType":"Block","src":"809:32:19","statements":[{"expression":{"expression":{"id":4359,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:19","memberName":"data","nodeType":"MemberAccess","src":"826:8:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":4358,"id":4361,"nodeType":"Return","src":"819:15:19"}]},"id":4363,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:19","nodeType":"FunctionDefinition","parameters":{"id":4355,"nodeType":"ParameterList","parameters":[],"src":"759:2:19"},"returnParameters":{"id":4358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4363,"src":"793:14:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4356,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:19"},"scope":4364,"src":"742:99:19","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":4365,"src":"608:235:19","usedErrors":[],"usedEvents":[]}],"src":"86:758:19"},"id":19},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[5440],"Strings":[4539]},"id":4540,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4366,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:20"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":4367,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4540,"sourceUnit":5441,"src":"126:25:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":4368,"nodeType":"StructuredDocumentation","src":"153:34:20","text":" @dev String operations."},"fullyImplemented":true,"id":4539,"linearizedBaseContracts":[4539],"name":"Strings","nameLocation":"196:7:20","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4371,"mutability":"constant","name":"_SYMBOLS","nameLocation":"235:8:20","nodeType":"VariableDeclaration","scope":4539,"src":"210:54:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":4369,"name":"bytes16","nodeType":"ElementaryTypeName","src":"210:7:20","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":4370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246:18:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":4374,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"293:15:20","nodeType":"VariableDeclaration","scope":4539,"src":"270:43:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4372,"name":"uint8","nodeType":"ElementaryTypeName","src":"270:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":4373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311:2:20","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":4421,"nodeType":"Block","src":"486:625:20","statements":[{"id":4420,"nodeType":"UncheckedBlock","src":"496:609:20","statements":[{"assignments":[4383],"declarations":[{"constant":false,"id":4383,"mutability":"mutable","name":"length","nameLocation":"528:6:20","nodeType":"VariableDeclaration","scope":4420,"src":"520:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4382,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4390,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4386,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"548:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4384,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5440,"src":"537:4:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$5440_$","typeString":"type(library Math)"}},"id":4385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"542:5:20","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"537:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"537:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"557:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"537:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"520:38:20"},{"assignments":[4392],"declarations":[{"constant":false,"id":4392,"mutability":"mutable","name":"buffer","nameLocation":"586:6:20","nodeType":"VariableDeclaration","scope":4420,"src":"572:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4391,"name":"string","nodeType":"ElementaryTypeName","src":"572:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4397,"initialValue":{"arguments":[{"id":4395,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4383,"src":"606:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"595:10:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":4393,"name":"string","nodeType":"ElementaryTypeName","src":"599:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":4396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"595:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"572:41:20"},{"assignments":[4399],"declarations":[{"constant":false,"id":4399,"mutability":"mutable","name":"ptr","nameLocation":"635:3:20","nodeType":"VariableDeclaration","scope":4420,"src":"627:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4398,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4400,"nodeType":"VariableDeclarationStatement","src":"627:11:20"},{"AST":{"nativeSrc":"708:67:20","nodeType":"YulBlock","src":"708:67:20","statements":[{"nativeSrc":"726:35:20","nodeType":"YulAssignment","src":"726:35:20","value":{"arguments":[{"name":"buffer","nativeSrc":"737:6:20","nodeType":"YulIdentifier","src":"737:6:20"},{"arguments":[{"kind":"number","nativeSrc":"749:2:20","nodeType":"YulLiteral","src":"749:2:20","type":"","value":"32"},{"name":"length","nativeSrc":"753:6:20","nodeType":"YulIdentifier","src":"753:6:20"}],"functionName":{"name":"add","nativeSrc":"745:3:20","nodeType":"YulIdentifier","src":"745:3:20"},"nativeSrc":"745:15:20","nodeType":"YulFunctionCall","src":"745:15:20"}],"functionName":{"name":"add","nativeSrc":"733:3:20","nodeType":"YulIdentifier","src":"733:3:20"},"nativeSrc":"733:28:20","nodeType":"YulFunctionCall","src":"733:28:20"},"variableNames":[{"name":"ptr","nativeSrc":"726:3:20","nodeType":"YulIdentifier","src":"726:3:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4392,"isOffset":false,"isSlot":false,"src":"737:6:20","valueSize":1},{"declaration":4383,"isOffset":false,"isSlot":false,"src":"753:6:20","valueSize":1},{"declaration":4399,"isOffset":false,"isSlot":false,"src":"726:3:20","valueSize":1}],"id":4401,"nodeType":"InlineAssembly","src":"699:76:20"},{"body":{"id":4416,"nodeType":"Block","src":"801:267:20","statements":[{"expression":{"id":4404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"819:5:20","subExpression":{"id":4403,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4399,"src":"819:3:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4405,"nodeType":"ExpressionStatement","src":"819:5:20"},{"AST":{"nativeSrc":"902:84:20","nodeType":"YulBlock","src":"902:84:20","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"932:3:20","nodeType":"YulIdentifier","src":"932:3:20"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"946:5:20","nodeType":"YulIdentifier","src":"946:5:20"},{"kind":"number","nativeSrc":"953:2:20","nodeType":"YulLiteral","src":"953:2:20","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"942:3:20","nodeType":"YulIdentifier","src":"942:3:20"},"nativeSrc":"942:14:20","nodeType":"YulFunctionCall","src":"942:14:20"},{"name":"_SYMBOLS","nativeSrc":"958:8:20","nodeType":"YulIdentifier","src":"958:8:20"}],"functionName":{"name":"byte","nativeSrc":"937:4:20","nodeType":"YulIdentifier","src":"937:4:20"},"nativeSrc":"937:30:20","nodeType":"YulFunctionCall","src":"937:30:20"}],"functionName":{"name":"mstore8","nativeSrc":"924:7:20","nodeType":"YulIdentifier","src":"924:7:20"},"nativeSrc":"924:44:20","nodeType":"YulFunctionCall","src":"924:44:20"},"nativeSrc":"924:44:20","nodeType":"YulExpressionStatement","src":"924:44:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4371,"isOffset":false,"isSlot":false,"src":"958:8:20","valueSize":1},{"declaration":4399,"isOffset":false,"isSlot":false,"src":"932:3:20","valueSize":1},{"declaration":4377,"isOffset":false,"isSlot":false,"src":"946:5:20","valueSize":1}],"id":4406,"nodeType":"InlineAssembly","src":"893:93:20"},{"expression":{"id":4409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4407,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"1003:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":4408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1012:2:20","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1003:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4410,"nodeType":"ExpressionStatement","src":"1003:11:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4411,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"1036:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1036:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4415,"nodeType":"IfStatement","src":"1032:21:20","trueBody":{"id":4414,"nodeType":"Break","src":"1048:5:20"}}]},"condition":{"hexValue":"74727565","id":4402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"795:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":4417,"nodeType":"WhileStatement","src":"788:280:20"},{"expression":{"id":4418,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"1088:6:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4381,"id":4419,"nodeType":"Return","src":"1081:13:20"}]}]},"documentation":{"id":4375,"nodeType":"StructuredDocumentation","src":"320:90:20","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":4422,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"424:8:20","nodeType":"FunctionDefinition","parameters":{"id":4378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4377,"mutability":"mutable","name":"value","nameLocation":"441:5:20","nodeType":"VariableDeclaration","scope":4422,"src":"433:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4376,"name":"uint256","nodeType":"ElementaryTypeName","src":"433:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"432:15:20"},"returnParameters":{"id":4381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4422,"src":"471:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4379,"name":"string","nodeType":"ElementaryTypeName","src":"471:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"470:15:20"},"scope":4539,"src":"415:696:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4441,"nodeType":"Block","src":"1290:100:20","statements":[{"id":4440,"nodeType":"UncheckedBlock","src":"1300:84:20","statements":[{"expression":{"arguments":[{"id":4431,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"1343:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4434,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"1362:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4432,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5440,"src":"1350:4:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$5440_$","typeString":"type(library Math)"}},"id":4433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1355:6:20","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":5400,"src":"1350:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1350:22:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4430,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[4442,4518,4538],"referencedDeclaration":4518,"src":"1331:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1331:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4429,"id":4439,"nodeType":"Return","src":"1324:49:20"}]}]},"documentation":{"id":4423,"nodeType":"StructuredDocumentation","src":"1117:94:20","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":4442,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1225:11:20","nodeType":"FunctionDefinition","parameters":{"id":4426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4425,"mutability":"mutable","name":"value","nameLocation":"1245:5:20","nodeType":"VariableDeclaration","scope":4442,"src":"1237:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4424,"name":"uint256","nodeType":"ElementaryTypeName","src":"1237:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1236:15:20"},"returnParameters":{"id":4429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4442,"src":"1275:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4427,"name":"string","nodeType":"ElementaryTypeName","src":"1275:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1274:15:20"},"scope":4539,"src":"1216:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4517,"nodeType":"Block","src":"1603:347:20","statements":[{"assignments":[4453],"declarations":[{"constant":false,"id":4453,"mutability":"mutable","name":"buffer","nameLocation":"1626:6:20","nodeType":"VariableDeclaration","scope":4517,"src":"1613:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4452,"name":"bytes","nodeType":"ElementaryTypeName","src":"1613:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4462,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4457,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4447,"src":"1649:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1645:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":4459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1645:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1635:9:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4454,"name":"bytes","nodeType":"ElementaryTypeName","src":"1639:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1635:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1613:47:20"},{"expression":{"id":4467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4463,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4453,"src":"1670:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4465,"indexExpression":{"hexValue":"30","id":4464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1677:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1670:9:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":4466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1682:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1670:15:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":4468,"nodeType":"ExpressionStatement","src":"1670:15:20"},{"expression":{"id":4473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4469,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4453,"src":"1695:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4471,"indexExpression":{"hexValue":"31","id":4470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1702:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1695:9:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":4472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1707:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1695:15:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":4474,"nodeType":"ExpressionStatement","src":"1695:15:20"},{"body":{"id":4503,"nodeType":"Block","src":"1765:83:20","statements":[{"expression":{"id":4497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4489,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4453,"src":"1779:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4491,"indexExpression":{"id":4490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4476,"src":"1786:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1779:9:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4492,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4371,"src":"1791:8:20","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":4496,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"1800:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":4494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1808:3:20","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1800:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1791:21:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1779:33:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":4498,"nodeType":"ExpressionStatement","src":"1779:33:20"},{"expression":{"id":4501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4499,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"1826:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":4500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1836:1:20","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1826:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4502,"nodeType":"ExpressionStatement","src":"1826:11:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4483,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4476,"src":"1753:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":4484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1753:5:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4504,"initializationExpression":{"assignments":[4476],"declarations":[{"constant":false,"id":4476,"mutability":"mutable","name":"i","nameLocation":"1733:1:20","nodeType":"VariableDeclaration","scope":4504,"src":"1725:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4475,"name":"uint256","nodeType":"ElementaryTypeName","src":"1725:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4482,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1737:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4478,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4447,"src":"1741:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1737:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1750:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1737:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1725:26:20"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":4487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1760:3:20","subExpression":{"id":4486,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4476,"src":"1762:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4488,"nodeType":"ExpressionStatement","src":"1760:3:20"},"nodeType":"ForStatement","src":"1720:128:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4506,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"1865:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1874:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1865:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":4509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1877:34:20","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":4505,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1857:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1857:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4511,"nodeType":"ExpressionStatement","src":"1857:55:20"},{"expression":{"arguments":[{"id":4514,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4453,"src":"1936:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1929:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4512,"name":"string","nodeType":"ElementaryTypeName","src":"1929:6:20","typeDescriptions":{}}},"id":4515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4451,"id":4516,"nodeType":"Return","src":"1922:21:20"}]},"documentation":{"id":4443,"nodeType":"StructuredDocumentation","src":"1396:112:20","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":4518,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1522:11:20","nodeType":"FunctionDefinition","parameters":{"id":4448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4445,"mutability":"mutable","name":"value","nameLocation":"1542:5:20","nodeType":"VariableDeclaration","scope":4518,"src":"1534:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4444,"name":"uint256","nodeType":"ElementaryTypeName","src":"1534:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4447,"mutability":"mutable","name":"length","nameLocation":"1557:6:20","nodeType":"VariableDeclaration","scope":4518,"src":"1549:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4446,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1533:31:20"},"returnParameters":{"id":4451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4518,"src":"1588:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4449,"name":"string","nodeType":"ElementaryTypeName","src":"1588:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1587:15:20"},"scope":4539,"src":"1513:437:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4537,"nodeType":"Block","src":"2175:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":4531,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4521,"src":"2220:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2212:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4529,"name":"uint160","nodeType":"ElementaryTypeName","src":"2212:7:20","typeDescriptions":{}}},"id":4532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2204:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4527,"name":"uint256","nodeType":"ElementaryTypeName","src":"2204:7:20","typeDescriptions":{}}},"id":4533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2204:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4534,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4374,"src":"2228:15:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4526,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[4442,4518,4538],"referencedDeclaration":4518,"src":"2192:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":4535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2192:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4525,"id":4536,"nodeType":"Return","src":"2185:59:20"}]},"documentation":{"id":4519,"nodeType":"StructuredDocumentation","src":"1956:141:20","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":4538,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2111:11:20","nodeType":"FunctionDefinition","parameters":{"id":4522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4521,"mutability":"mutable","name":"addr","nameLocation":"2131:4:20","nodeType":"VariableDeclaration","scope":4538,"src":"2123:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4520,"name":"address","nodeType":"ElementaryTypeName","src":"2123:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2122:14:20"},"returnParameters":{"id":4525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4538,"src":"2160:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4523,"name":"string","nodeType":"ElementaryTypeName","src":"2160:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2159:15:20"},"scope":4539,"src":"2102:149:20","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4540,"src":"188:2065:20","usedErrors":[],"usedEvents":[]}],"src":"101:2153:20"},"id":20},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[4563],"IERC165":[4575]},"id":4564,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4541,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:21"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":4542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4564,"sourceUnit":4576,"src":"124:23:21","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4544,"name":"IERC165","nameLocations":["754:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":4575,"src":"754:7:21"},"id":4545,"nodeType":"InheritanceSpecifier","src":"754:7:21"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":4543,"nodeType":"StructuredDocumentation","src":"149:576:21","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":4563,"linearizedBaseContracts":[4563,4575],"name":"ERC165","nameLocation":"744:6:21","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[4574],"body":{"id":4561,"nodeType":"Block","src":"920:64:21","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":4559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4554,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4548,"src":"937:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":4556,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"957:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$4575_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$4575_$","typeString":"type(contract IERC165)"}],"id":4555,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:21","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$4575","typeString":"type(contract IERC165)"}},"id":4558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:11:21","memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4553,"id":4560,"nodeType":"Return","src":"930:47:21"}]},"documentation":{"id":4546,"nodeType":"StructuredDocumentation","src":"768:56:21","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":4562,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:21","nodeType":"FunctionDefinition","overrides":{"id":4550,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:21"},"parameters":{"id":4549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4548,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:21","nodeType":"VariableDeclaration","scope":4562,"src":"856:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4547,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:21"},"returnParameters":{"id":4553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4562,"src":"914:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4551,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:21"},"scope":4563,"src":"829:155:21","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":4564,"src":"726:260:21","usedErrors":[],"usedEvents":[]}],"src":"99:888:21"},"id":21},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[4575]},"id":4576,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4565,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:22"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":4566,"nodeType":"StructuredDocumentation","src":"125:279:22","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":4575,"linearizedBaseContracts":[4575],"name":"IERC165","nameLocation":"415:7:22","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4567,"nodeType":"StructuredDocumentation","src":"429:340:22","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":4574,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:22","nodeType":"FunctionDefinition","parameters":{"id":4570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4569,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:22","nodeType":"VariableDeclaration","scope":4574,"src":"801:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4568,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:22"},"returnParameters":{"id":4573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4572,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4574,"src":"844:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4571,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:22"},"scope":4575,"src":"774:76:22","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4576,"src":"405:447:22","usedErrors":[],"usedEvents":[]}],"src":"100:753:22"},"id":22},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[5440]},"id":5441,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4577,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:23"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":4578,"nodeType":"StructuredDocumentation","src":"128:73:23","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":5440,"linearizedBaseContracts":[5440],"name":"Math","nameLocation":"210:4:23","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":4582,"members":[{"id":4579,"name":"Down","nameLocation":"245:4:23","nodeType":"EnumValue","src":"245:4:23"},{"id":4580,"name":"Up","nameLocation":"287:2:23","nodeType":"EnumValue","src":"287:2:23"},{"id":4581,"name":"Zero","nameLocation":"318:4:23","nodeType":"EnumValue","src":"318:4:23"}],"name":"Rounding","nameLocation":"226:8:23","nodeType":"EnumDefinition","src":"221:122:23"},{"body":{"id":4599,"nodeType":"Block","src":"480:37:23","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4592,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"497:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4593,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"501:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4596,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"509:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:23","trueExpression":{"id":4595,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"505:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4591,"id":4598,"nodeType":"Return","src":"490:20:23"}]},"documentation":{"id":4583,"nodeType":"StructuredDocumentation","src":"349:59:23","text":" @dev Returns the largest of two numbers."},"id":4600,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:23","nodeType":"FunctionDefinition","parameters":{"id":4588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4585,"mutability":"mutable","name":"a","nameLocation":"434:1:23","nodeType":"VariableDeclaration","scope":4600,"src":"426:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4584,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4587,"mutability":"mutable","name":"b","nameLocation":"445:1:23","nodeType":"VariableDeclaration","scope":4600,"src":"437:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4586,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:23"},"returnParameters":{"id":4591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4600,"src":"471:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4589,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:23"},"scope":5440,"src":"413:104:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4617,"nodeType":"Block","src":"655:37:23","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4610,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4603,"src":"672:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4611,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4605,"src":"676:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4614,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4605,"src":"684:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:23","trueExpression":{"id":4613,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4603,"src":"680:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4609,"id":4616,"nodeType":"Return","src":"665:20:23"}]},"documentation":{"id":4601,"nodeType":"StructuredDocumentation","src":"523:60:23","text":" @dev Returns the smallest of two numbers."},"id":4618,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:23","nodeType":"FunctionDefinition","parameters":{"id":4606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4603,"mutability":"mutable","name":"a","nameLocation":"609:1:23","nodeType":"VariableDeclaration","scope":4618,"src":"601:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4602,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4605,"mutability":"mutable","name":"b","nameLocation":"620:1:23","nodeType":"VariableDeclaration","scope":4618,"src":"612:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4604,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:23"},"returnParameters":{"id":4609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4618,"src":"646:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4607,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:23"},"scope":5440,"src":"588:104:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4640,"nodeType":"Block","src":"876:82:23","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4628,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4621,"src":"931:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4629,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4623,"src":"935:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4632,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4621,"src":"941:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4633,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4623,"src":"945:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4635,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":4636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4627,"id":4639,"nodeType":"Return","src":"923:28:23"}]},"documentation":{"id":4619,"nodeType":"StructuredDocumentation","src":"698:102:23","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":4641,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:23","nodeType":"FunctionDefinition","parameters":{"id":4624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4621,"mutability":"mutable","name":"a","nameLocation":"830:1:23","nodeType":"VariableDeclaration","scope":4641,"src":"822:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4620,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4623,"mutability":"mutable","name":"b","nameLocation":"841:1:23","nodeType":"VariableDeclaration","scope":4641,"src":"833:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4622,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:23"},"returnParameters":{"id":4627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4641,"src":"867:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4625,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:23"},"scope":5440,"src":"805:153:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4665,"nodeType":"Block","src":"1228:123:23","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4651,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4644,"src":"1316:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4655,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4644,"src":"1330:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4659,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4646,"src":"1339:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:23","trueExpression":{"hexValue":"30","id":4654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4650,"id":4664,"nodeType":"Return","src":"1309:35:23"}]},"documentation":{"id":4642,"nodeType":"StructuredDocumentation","src":"964:188:23","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":4666,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:23","nodeType":"FunctionDefinition","parameters":{"id":4647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4644,"mutability":"mutable","name":"a","nameLocation":"1182:1:23","nodeType":"VariableDeclaration","scope":4666,"src":"1174:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4643,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4646,"mutability":"mutable","name":"b","nameLocation":"1193:1:23","nodeType":"VariableDeclaration","scope":4666,"src":"1185:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4645,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:23"},"returnParameters":{"id":4650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4666,"src":"1219:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4648,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:23"},"scope":5440,"src":"1157:194:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4787,"nodeType":"Block","src":"1795:3797:23","statements":[{"id":4786,"nodeType":"UncheckedBlock","src":"1805:3781:23","statements":[{"assignments":[4679],"declarations":[{"constant":false,"id":4679,"mutability":"mutable","name":"prod0","nameLocation":"2134:5:23","nodeType":"VariableDeclaration","scope":4786,"src":"2126:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4678,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4680,"nodeType":"VariableDeclarationStatement","src":"2126:13:23"},{"assignments":[4682],"declarations":[{"constant":false,"id":4682,"mutability":"mutable","name":"prod1","nameLocation":"2206:5:23","nodeType":"VariableDeclaration","scope":4786,"src":"2198:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4681,"name":"uint256","nodeType":"ElementaryTypeName","src":"2198:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4683,"nodeType":"VariableDeclarationStatement","src":"2198:13:23"},{"AST":{"nativeSrc":"2278:157:23","nodeType":"YulBlock","src":"2278:157:23","statements":[{"nativeSrc":"2296:30:23","nodeType":"YulVariableDeclaration","src":"2296:30:23","value":{"arguments":[{"name":"x","nativeSrc":"2313:1:23","nodeType":"YulIdentifier","src":"2313:1:23"},{"name":"y","nativeSrc":"2316:1:23","nodeType":"YulIdentifier","src":"2316:1:23"},{"arguments":[{"kind":"number","nativeSrc":"2323:1:23","nodeType":"YulLiteral","src":"2323:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2319:3:23","nodeType":"YulIdentifier","src":"2319:3:23"},"nativeSrc":"2319:6:23","nodeType":"YulFunctionCall","src":"2319:6:23"}],"functionName":{"name":"mulmod","nativeSrc":"2306:6:23","nodeType":"YulIdentifier","src":"2306:6:23"},"nativeSrc":"2306:20:23","nodeType":"YulFunctionCall","src":"2306:20:23"},"variables":[{"name":"mm","nativeSrc":"2300:2:23","nodeType":"YulTypedName","src":"2300:2:23","type":""}]},{"nativeSrc":"2343:18:23","nodeType":"YulAssignment","src":"2343:18:23","value":{"arguments":[{"name":"x","nativeSrc":"2356:1:23","nodeType":"YulIdentifier","src":"2356:1:23"},{"name":"y","nativeSrc":"2359:1:23","nodeType":"YulIdentifier","src":"2359:1:23"}],"functionName":{"name":"mul","nativeSrc":"2352:3:23","nodeType":"YulIdentifier","src":"2352:3:23"},"nativeSrc":"2352:9:23","nodeType":"YulFunctionCall","src":"2352:9:23"},"variableNames":[{"name":"prod0","nativeSrc":"2343:5:23","nodeType":"YulIdentifier","src":"2343:5:23"}]},{"nativeSrc":"2378:43:23","nodeType":"YulAssignment","src":"2378:43:23","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"2395:2:23","nodeType":"YulIdentifier","src":"2395:2:23"},{"name":"prod0","nativeSrc":"2399:5:23","nodeType":"YulIdentifier","src":"2399:5:23"}],"functionName":{"name":"sub","nativeSrc":"2391:3:23","nodeType":"YulIdentifier","src":"2391:3:23"},"nativeSrc":"2391:14:23","nodeType":"YulFunctionCall","src":"2391:14:23"},{"arguments":[{"name":"mm","nativeSrc":"2410:2:23","nodeType":"YulIdentifier","src":"2410:2:23"},{"name":"prod0","nativeSrc":"2414:5:23","nodeType":"YulIdentifier","src":"2414:5:23"}],"functionName":{"name":"lt","nativeSrc":"2407:2:23","nodeType":"YulIdentifier","src":"2407:2:23"},"nativeSrc":"2407:13:23","nodeType":"YulFunctionCall","src":"2407:13:23"}],"functionName":{"name":"sub","nativeSrc":"2387:3:23","nodeType":"YulIdentifier","src":"2387:3:23"},"nativeSrc":"2387:34:23","nodeType":"YulFunctionCall","src":"2387:34:23"},"variableNames":[{"name":"prod1","nativeSrc":"2378:5:23","nodeType":"YulIdentifier","src":"2378:5:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4679,"isOffset":false,"isSlot":false,"src":"2343:5:23","valueSize":1},{"declaration":4679,"isOffset":false,"isSlot":false,"src":"2399:5:23","valueSize":1},{"declaration":4679,"isOffset":false,"isSlot":false,"src":"2414:5:23","valueSize":1},{"declaration":4682,"isOffset":false,"isSlot":false,"src":"2378:5:23","valueSize":1},{"declaration":4669,"isOffset":false,"isSlot":false,"src":"2313:1:23","valueSize":1},{"declaration":4669,"isOffset":false,"isSlot":false,"src":"2356:1:23","valueSize":1},{"declaration":4671,"isOffset":false,"isSlot":false,"src":"2316:1:23","valueSize":1},{"declaration":4671,"isOffset":false,"isSlot":false,"src":"2359:1:23","valueSize":1}],"id":4684,"nodeType":"InlineAssembly","src":"2269:166:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4685,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4682,"src":"2516:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2525:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2516:10:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4693,"nodeType":"IfStatement","src":"2512:75:23","trueBody":{"id":4692,"nodeType":"Block","src":"2528:59:23","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4688,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4679,"src":"2553:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4689,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"2561:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2553:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4677,"id":4691,"nodeType":"Return","src":"2546:26:23"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4695,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"2697:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4696,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4682,"src":"2711:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2697:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4694,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2689:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2689:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4699,"nodeType":"ExpressionStatement","src":"2689:28:23"},{"assignments":[4701],"declarations":[{"constant":false,"id":4701,"mutability":"mutable","name":"remainder","nameLocation":"2981:9:23","nodeType":"VariableDeclaration","scope":4786,"src":"2973:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4700,"name":"uint256","nodeType":"ElementaryTypeName","src":"2973:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4702,"nodeType":"VariableDeclarationStatement","src":"2973:17:23"},{"AST":{"nativeSrc":"3013:291:23","nodeType":"YulBlock","src":"3013:291:23","statements":[{"nativeSrc":"3082:38:23","nodeType":"YulAssignment","src":"3082:38:23","value":{"arguments":[{"name":"x","nativeSrc":"3102:1:23","nodeType":"YulIdentifier","src":"3102:1:23"},{"name":"y","nativeSrc":"3105:1:23","nodeType":"YulIdentifier","src":"3105:1:23"},{"name":"denominator","nativeSrc":"3108:11:23","nodeType":"YulIdentifier","src":"3108:11:23"}],"functionName":{"name":"mulmod","nativeSrc":"3095:6:23","nodeType":"YulIdentifier","src":"3095:6:23"},"nativeSrc":"3095:25:23","nodeType":"YulFunctionCall","src":"3095:25:23"},"variableNames":[{"name":"remainder","nativeSrc":"3082:9:23","nodeType":"YulIdentifier","src":"3082:9:23"}]},{"nativeSrc":"3202:41:23","nodeType":"YulAssignment","src":"3202:41:23","value":{"arguments":[{"name":"prod1","nativeSrc":"3215:5:23","nodeType":"YulIdentifier","src":"3215:5:23"},{"arguments":[{"name":"remainder","nativeSrc":"3225:9:23","nodeType":"YulIdentifier","src":"3225:9:23"},{"name":"prod0","nativeSrc":"3236:5:23","nodeType":"YulIdentifier","src":"3236:5:23"}],"functionName":{"name":"gt","nativeSrc":"3222:2:23","nodeType":"YulIdentifier","src":"3222:2:23"},"nativeSrc":"3222:20:23","nodeType":"YulFunctionCall","src":"3222:20:23"}],"functionName":{"name":"sub","nativeSrc":"3211:3:23","nodeType":"YulIdentifier","src":"3211:3:23"},"nativeSrc":"3211:32:23","nodeType":"YulFunctionCall","src":"3211:32:23"},"variableNames":[{"name":"prod1","nativeSrc":"3202:5:23","nodeType":"YulIdentifier","src":"3202:5:23"}]},{"nativeSrc":"3260:30:23","nodeType":"YulAssignment","src":"3260:30:23","value":{"arguments":[{"name":"prod0","nativeSrc":"3273:5:23","nodeType":"YulIdentifier","src":"3273:5:23"},{"name":"remainder","nativeSrc":"3280:9:23","nodeType":"YulIdentifier","src":"3280:9:23"}],"functionName":{"name":"sub","nativeSrc":"3269:3:23","nodeType":"YulIdentifier","src":"3269:3:23"},"nativeSrc":"3269:21:23","nodeType":"YulFunctionCall","src":"3269:21:23"},"variableNames":[{"name":"prod0","nativeSrc":"3260:5:23","nodeType":"YulIdentifier","src":"3260:5:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4673,"isOffset":false,"isSlot":false,"src":"3108:11:23","valueSize":1},{"declaration":4679,"isOffset":false,"isSlot":false,"src":"3236:5:23","valueSize":1},{"declaration":4679,"isOffset":false,"isSlot":false,"src":"3260:5:23","valueSize":1},{"declaration":4679,"isOffset":false,"isSlot":false,"src":"3273:5:23","valueSize":1},{"declaration":4682,"isOffset":false,"isSlot":false,"src":"3202:5:23","valueSize":1},{"declaration":4682,"isOffset":false,"isSlot":false,"src":"3215:5:23","valueSize":1},{"declaration":4701,"isOffset":false,"isSlot":false,"src":"3082:9:23","valueSize":1},{"declaration":4701,"isOffset":false,"isSlot":false,"src":"3225:9:23","valueSize":1},{"declaration":4701,"isOffset":false,"isSlot":false,"src":"3280:9:23","valueSize":1},{"declaration":4669,"isOffset":false,"isSlot":false,"src":"3102:1:23","valueSize":1},{"declaration":4671,"isOffset":false,"isSlot":false,"src":"3105:1:23","valueSize":1}],"id":4703,"nodeType":"InlineAssembly","src":"3004:300:23"},{"assignments":[4705],"declarations":[{"constant":false,"id":4705,"mutability":"mutable","name":"twos","nameLocation":"3619:4:23","nodeType":"VariableDeclaration","scope":4786,"src":"3611:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4704,"name":"uint256","nodeType":"ElementaryTypeName","src":"3611:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4713,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4706,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"3626:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3641:12:23","subExpression":{"id":4707,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"3642:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3656:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3641:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4711,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3640:18:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3626:32:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3611:47:23"},{"AST":{"nativeSrc":"3681:362:23","nodeType":"YulBlock","src":"3681:362:23","statements":[{"nativeSrc":"3746:37:23","nodeType":"YulAssignment","src":"3746:37:23","value":{"arguments":[{"name":"denominator","nativeSrc":"3765:11:23","nodeType":"YulIdentifier","src":"3765:11:23"},{"name":"twos","nativeSrc":"3778:4:23","nodeType":"YulIdentifier","src":"3778:4:23"}],"functionName":{"name":"div","nativeSrc":"3761:3:23","nodeType":"YulIdentifier","src":"3761:3:23"},"nativeSrc":"3761:22:23","nodeType":"YulFunctionCall","src":"3761:22:23"},"variableNames":[{"name":"denominator","nativeSrc":"3746:11:23","nodeType":"YulIdentifier","src":"3746:11:23"}]},{"nativeSrc":"3850:25:23","nodeType":"YulAssignment","src":"3850:25:23","value":{"arguments":[{"name":"prod0","nativeSrc":"3863:5:23","nodeType":"YulIdentifier","src":"3863:5:23"},{"name":"twos","nativeSrc":"3870:4:23","nodeType":"YulIdentifier","src":"3870:4:23"}],"functionName":{"name":"div","nativeSrc":"3859:3:23","nodeType":"YulIdentifier","src":"3859:3:23"},"nativeSrc":"3859:16:23","nodeType":"YulFunctionCall","src":"3859:16:23"},"variableNames":[{"name":"prod0","nativeSrc":"3850:5:23","nodeType":"YulIdentifier","src":"3850:5:23"}]},{"nativeSrc":"3990:39:23","nodeType":"YulAssignment","src":"3990:39:23","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4010:1:23","nodeType":"YulLiteral","src":"4010:1:23","type":"","value":"0"},{"name":"twos","nativeSrc":"4013:4:23","nodeType":"YulIdentifier","src":"4013:4:23"}],"functionName":{"name":"sub","nativeSrc":"4006:3:23","nodeType":"YulIdentifier","src":"4006:3:23"},"nativeSrc":"4006:12:23","nodeType":"YulFunctionCall","src":"4006:12:23"},{"name":"twos","nativeSrc":"4020:4:23","nodeType":"YulIdentifier","src":"4020:4:23"}],"functionName":{"name":"div","nativeSrc":"4002:3:23","nodeType":"YulIdentifier","src":"4002:3:23"},"nativeSrc":"4002:23:23","nodeType":"YulFunctionCall","src":"4002:23:23"},{"kind":"number","nativeSrc":"4027:1:23","nodeType":"YulLiteral","src":"4027:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3998:3:23","nodeType":"YulIdentifier","src":"3998:3:23"},"nativeSrc":"3998:31:23","nodeType":"YulFunctionCall","src":"3998:31:23"},"variableNames":[{"name":"twos","nativeSrc":"3990:4:23","nodeType":"YulIdentifier","src":"3990:4:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4673,"isOffset":false,"isSlot":false,"src":"3746:11:23","valueSize":1},{"declaration":4673,"isOffset":false,"isSlot":false,"src":"3765:11:23","valueSize":1},{"declaration":4679,"isOffset":false,"isSlot":false,"src":"3850:5:23","valueSize":1},{"declaration":4679,"isOffset":false,"isSlot":false,"src":"3863:5:23","valueSize":1},{"declaration":4705,"isOffset":false,"isSlot":false,"src":"3778:4:23","valueSize":1},{"declaration":4705,"isOffset":false,"isSlot":false,"src":"3870:4:23","valueSize":1},{"declaration":4705,"isOffset":false,"isSlot":false,"src":"3990:4:23","valueSize":1},{"declaration":4705,"isOffset":false,"isSlot":false,"src":"4013:4:23","valueSize":1},{"declaration":4705,"isOffset":false,"isSlot":false,"src":"4020:4:23","valueSize":1}],"id":4714,"nodeType":"InlineAssembly","src":"3672:371:23"},{"expression":{"id":4719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4715,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4679,"src":"4109:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4716,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4682,"src":"4118:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4717,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4705,"src":"4126:4:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4118:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4109:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4720,"nodeType":"ExpressionStatement","src":"4109:21:23"},{"assignments":[4722],"declarations":[{"constant":false,"id":4722,"mutability":"mutable","name":"inverse","nameLocation":"4456:7:23","nodeType":"VariableDeclaration","scope":4786,"src":"4448:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4721,"name":"uint256","nodeType":"ElementaryTypeName","src":"4448:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4729,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":4723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:23","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4724,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"4471:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4467:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4726,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4466:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":4727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4486:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4466:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4448:39:23"},{"expression":{"id":4736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4730,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4704:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4715:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4732,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"4719:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4733,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4733:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4719:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4715:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4704:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4737,"nodeType":"ExpressionStatement","src":"4704:36:23"},{"expression":{"id":4744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4738,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4773:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4784:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4740,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"4788:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4741,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4802:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4788:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4784:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4773:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4745,"nodeType":"ExpressionStatement","src":"4773:36:23"},{"expression":{"id":4752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4746,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4843:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4854:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4748,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"4858:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4749,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4872:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4858:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4854:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4843:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4753,"nodeType":"ExpressionStatement","src":"4843:36:23"},{"expression":{"id":4760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4754,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4913:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4924:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4756,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"4928:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4757,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4942:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4928:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4924:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4913:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4761,"nodeType":"ExpressionStatement","src":"4913:36:23"},{"expression":{"id":4768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4762,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"4983:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4994:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4764,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"4998:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4765,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"5012:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4994:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4983:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4769,"nodeType":"ExpressionStatement","src":"4983:36:23"},{"expression":{"id":4776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4770,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"5054:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5065:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4772,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4673,"src":"5069:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4773,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"5083:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5069:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5054:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4777,"nodeType":"ExpressionStatement","src":"5054:36:23"},{"expression":{"id":4782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4778,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"5524:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4779,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4679,"src":"5533:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4780,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"5541:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5533:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5524:24:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4783,"nodeType":"ExpressionStatement","src":"5524:24:23"},{"expression":{"id":4784,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"5569:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4677,"id":4785,"nodeType":"Return","src":"5562:13:23"}]}]},"documentation":{"id":4667,"nodeType":"StructuredDocumentation","src":"1357:305:23","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":4788,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:23","nodeType":"FunctionDefinition","parameters":{"id":4674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4669,"mutability":"mutable","name":"x","nameLocation":"1700:1:23","nodeType":"VariableDeclaration","scope":4788,"src":"1692:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4671,"mutability":"mutable","name":"y","nameLocation":"1719:1:23","nodeType":"VariableDeclaration","scope":4788,"src":"1711:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4670,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4673,"mutability":"mutable","name":"denominator","nameLocation":"1738:11:23","nodeType":"VariableDeclaration","scope":4788,"src":"1730:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4672,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:73:23"},"returnParameters":{"id":4677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4676,"mutability":"mutable","name":"result","nameLocation":"1787:6:23","nodeType":"VariableDeclaration","scope":4788,"src":"1779:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4675,"name":"uint256","nodeType":"ElementaryTypeName","src":"1779:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1778:16:23"},"scope":5440,"src":"1667:3925:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4831,"nodeType":"Block","src":"5872:189:23","statements":[{"assignments":[4804],"declarations":[{"constant":false,"id":4804,"mutability":"mutable","name":"result","nameLocation":"5890:6:23","nodeType":"VariableDeclaration","scope":4831,"src":"5882:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4803,"name":"uint256","nodeType":"ElementaryTypeName","src":"5882:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4810,"initialValue":{"arguments":[{"id":4806,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"5906:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4807,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4793,"src":"5909:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4808,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"5912:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4805,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[4788,4832],"referencedDeclaration":4788,"src":"5899:6:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":4809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5899:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5882:42:23"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"id":4814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4811,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4798,"src":"5938:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4812,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"5950:8:23","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4582_$","typeString":"type(enum Math.Rounding)"}},"id":4813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5959:2:23","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4580,"src":"5950:11:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"src":"5938:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4816,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"5972:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4817,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4793,"src":"5975:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4818,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"5978:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4815,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"5965:6:23","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":4819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5965:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5993:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5965:29:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5938:56:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4828,"nodeType":"IfStatement","src":"5934:98:23","trueBody":{"id":4827,"nodeType":"Block","src":"5996:36:23","statements":[{"expression":{"id":4825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4823,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4804,"src":"6010:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6020:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6010:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4826,"nodeType":"ExpressionStatement","src":"6010:11:23"}]}},{"expression":{"id":4829,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4804,"src":"6048:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4802,"id":4830,"nodeType":"Return","src":"6041:13:23"}]},"documentation":{"id":4789,"nodeType":"StructuredDocumentation","src":"5598:121:23","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":4832,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5733:6:23","nodeType":"FunctionDefinition","parameters":{"id":4799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4791,"mutability":"mutable","name":"x","nameLocation":"5757:1:23","nodeType":"VariableDeclaration","scope":4832,"src":"5749:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4790,"name":"uint256","nodeType":"ElementaryTypeName","src":"5749:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4793,"mutability":"mutable","name":"y","nameLocation":"5776:1:23","nodeType":"VariableDeclaration","scope":4832,"src":"5768:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4792,"name":"uint256","nodeType":"ElementaryTypeName","src":"5768:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4795,"mutability":"mutable","name":"denominator","nameLocation":"5795:11:23","nodeType":"VariableDeclaration","scope":4832,"src":"5787:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4794,"name":"uint256","nodeType":"ElementaryTypeName","src":"5787:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4798,"mutability":"mutable","name":"rounding","nameLocation":"5825:8:23","nodeType":"VariableDeclaration","scope":4832,"src":"5816:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"typeName":{"id":4797,"nodeType":"UserDefinedTypeName","pathNode":{"id":4796,"name":"Rounding","nameLocations":["5816:8:23"],"nodeType":"IdentifierPath","referencedDeclaration":4582,"src":"5816:8:23"},"referencedDeclaration":4582,"src":"5816:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"5739:100:23"},"returnParameters":{"id":4802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4832,"src":"5863:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4800,"name":"uint256","nodeType":"ElementaryTypeName","src":"5863:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5862:9:23"},"scope":5440,"src":"5724:337:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4943,"nodeType":"Block","src":"6337:1585:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4840,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"6351:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6356:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6351:6:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4846,"nodeType":"IfStatement","src":"6347:45:23","trueBody":{"id":4845,"nodeType":"Block","src":"6359:33:23","statements":[{"expression":{"hexValue":"30","id":4843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6380:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":4839,"id":4844,"nodeType":"Return","src":"6373:8:23"}]}},{"assignments":[4848],"declarations":[{"constant":false,"id":4848,"mutability":"mutable","name":"result","nameLocation":"7079:6:23","nodeType":"VariableDeclaration","scope":4943,"src":"7071:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4847,"name":"uint256","nodeType":"ElementaryTypeName","src":"7071:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4857,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7088:1:23","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":4854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4851,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7099:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4850,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[5112,5148],"referencedDeclaration":5112,"src":"7094:4:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7094:7:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7105:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7094:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4855,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7093:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7088:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7071:36:23"},{"id":4942,"nodeType":"UncheckedBlock","src":"7508:408:23","statements":[{"expression":{"id":4867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4858,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7532:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4859,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7542:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4860,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7551:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4861,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7555:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7551:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7542:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4864,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7541:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7566:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7541:26:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7532:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4868,"nodeType":"ExpressionStatement","src":"7532:35:23"},{"expression":{"id":4878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4869,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7581:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4870,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7591:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4871,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7600:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4872,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7604:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7600:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7591:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4875,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7590:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7590:26:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7581:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4879,"nodeType":"ExpressionStatement","src":"7581:35:23"},{"expression":{"id":4889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4880,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7630:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4881,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7640:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4882,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7649:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4883,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7653:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7649:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7640:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4886,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7639:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7664:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7639:26:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7630:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4890,"nodeType":"ExpressionStatement","src":"7630:35:23"},{"expression":{"id":4900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4891,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7679:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4892,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7689:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4893,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7698:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4894,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7702:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7698:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7689:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4897,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7688:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7713:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7688:26:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7679:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4901,"nodeType":"ExpressionStatement","src":"7679:35:23"},{"expression":{"id":4911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4902,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7728:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4903,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7738:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4904,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7747:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4905,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7751:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7747:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7738:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4908,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7737:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7762:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7737:26:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7728:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4912,"nodeType":"ExpressionStatement","src":"7728:35:23"},{"expression":{"id":4922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4913,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7777:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4914,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7787:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4915,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7796:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4916,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7800:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7796:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7787:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4919,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7786:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7811:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7786:26:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7777:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4923,"nodeType":"ExpressionStatement","src":"7777:35:23"},{"expression":{"id":4933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4924,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7826:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4925,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7836:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4926,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7845:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4927,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7849:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7845:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7836:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4930,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7835:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7860:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7835:26:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7826:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4934,"nodeType":"ExpressionStatement","src":"7826:35:23"},{"expression":{"arguments":[{"id":4936,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7886:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4937,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"7894:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4938,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"7898:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7894:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4935,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"7882:3:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7882:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4839,"id":4941,"nodeType":"Return","src":"7875:30:23"}]}]},"documentation":{"id":4833,"nodeType":"StructuredDocumentation","src":"6067:208:23","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":4944,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6289:4:23","nodeType":"FunctionDefinition","parameters":{"id":4836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4835,"mutability":"mutable","name":"a","nameLocation":"6302:1:23","nodeType":"VariableDeclaration","scope":4944,"src":"6294:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4834,"name":"uint256","nodeType":"ElementaryTypeName","src":"6294:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6293:11:23"},"returnParameters":{"id":4839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4944,"src":"6328:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4837,"name":"uint256","nodeType":"ElementaryTypeName","src":"6328:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6327:9:23"},"scope":5440,"src":"6280:1642:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4979,"nodeType":"Block","src":"8098:161:23","statements":[{"id":4978,"nodeType":"UncheckedBlock","src":"8108:145:23","statements":[{"assignments":[4956],"declarations":[{"constant":false,"id":4956,"mutability":"mutable","name":"result","nameLocation":"8140:6:23","nodeType":"VariableDeclaration","scope":4978,"src":"8132:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4955,"name":"uint256","nodeType":"ElementaryTypeName","src":"8132:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4960,"initialValue":{"arguments":[{"id":4958,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4947,"src":"8154:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4957,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[4944,4980],"referencedDeclaration":4944,"src":"8149:4:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8149:7:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8132:24:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4961,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"8177:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"id":4965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4962,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4950,"src":"8187:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4963,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"8199:8:23","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4582_$","typeString":"type(enum Math.Rounding)"}},"id":4964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8208:2:23","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4580,"src":"8199:11:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"src":"8187:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4966,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"8214:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4967,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4956,"src":"8223:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4969,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4947,"src":"8232:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8187:46:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8240:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8187:54:23","trueExpression":{"hexValue":"31","id":4972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8236:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4975,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8186:56:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8177:65:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4954,"id":4977,"nodeType":"Return","src":"8170:72:23"}]}]},"documentation":{"id":4945,"nodeType":"StructuredDocumentation","src":"7928:89:23","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":4980,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8031:4:23","nodeType":"FunctionDefinition","parameters":{"id":4951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4947,"mutability":"mutable","name":"a","nameLocation":"8044:1:23","nodeType":"VariableDeclaration","scope":4980,"src":"8036:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4946,"name":"uint256","nodeType":"ElementaryTypeName","src":"8036:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4950,"mutability":"mutable","name":"rounding","nameLocation":"8056:8:23","nodeType":"VariableDeclaration","scope":4980,"src":"8047:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"typeName":{"id":4949,"nodeType":"UserDefinedTypeName","pathNode":{"id":4948,"name":"Rounding","nameLocations":["8047:8:23"],"nodeType":"IdentifierPath","referencedDeclaration":4582,"src":"8047:8:23"},"referencedDeclaration":4582,"src":"8047:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8035:30:23"},"returnParameters":{"id":4954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4953,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4980,"src":"8089:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4952,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8088:9:23"},"scope":5440,"src":"8022:237:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5111,"nodeType":"Block","src":"8444:922:23","statements":[{"assignments":[4989],"declarations":[{"constant":false,"id":4989,"mutability":"mutable","name":"result","nameLocation":"8462:6:23","nodeType":"VariableDeclaration","scope":5111,"src":"8454:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4988,"name":"uint256","nodeType":"ElementaryTypeName","src":"8454:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4991,"initialValue":{"hexValue":"30","id":4990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8471:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8454:18:23"},{"id":5108,"nodeType":"UncheckedBlock","src":"8482:855:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4992,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8510:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":4993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8519:3:23","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8510:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8525:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8510:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5006,"nodeType":"IfStatement","src":"8506:99:23","trueBody":{"id":5005,"nodeType":"Block","src":"8528:77:23","statements":[{"expression":{"id":4999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4997,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8546:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":4998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8556:3:23","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8546:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5000,"nodeType":"ExpressionStatement","src":"8546:13:23"},{"expression":{"id":5003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5001,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"8577:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":5002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8587:3:23","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8577:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5004,"nodeType":"ExpressionStatement","src":"8577:13:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5007,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8622:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":5008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8631:2:23","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8622:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8636:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8622:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5021,"nodeType":"IfStatement","src":"8618:96:23","trueBody":{"id":5020,"nodeType":"Block","src":"8639:75:23","statements":[{"expression":{"id":5014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5012,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8657:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":5013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8667:2:23","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8657:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5015,"nodeType":"ExpressionStatement","src":"8657:12:23"},{"expression":{"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5016,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"8687:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":5017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8697:2:23","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8687:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5019,"nodeType":"ExpressionStatement","src":"8687:12:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5022,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8731:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":5023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8740:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8731:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8745:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8731:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5036,"nodeType":"IfStatement","src":"8727:96:23","trueBody":{"id":5035,"nodeType":"Block","src":"8748:75:23","statements":[{"expression":{"id":5029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8766:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":5028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8776:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8766:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5030,"nodeType":"ExpressionStatement","src":"8766:12:23"},{"expression":{"id":5033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5031,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"8796:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":5032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8796:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5034,"nodeType":"ExpressionStatement","src":"8796:12:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5037,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8840:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":5038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8849:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8840:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8854:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8840:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5051,"nodeType":"IfStatement","src":"8836:96:23","trueBody":{"id":5050,"nodeType":"Block","src":"8857:75:23","statements":[{"expression":{"id":5044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5042,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8875:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":5043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8885:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8875:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5045,"nodeType":"ExpressionStatement","src":"8875:12:23"},{"expression":{"id":5048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5046,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"8905:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":5047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8915:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8905:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5049,"nodeType":"ExpressionStatement","src":"8905:12:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8949:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":5053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8958:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8949:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8962:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8949:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5066,"nodeType":"IfStatement","src":"8945:93:23","trueBody":{"id":5065,"nodeType":"Block","src":"8965:73:23","statements":[{"expression":{"id":5059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5057,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"8983:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":5058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8993:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8983:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5060,"nodeType":"ExpressionStatement","src":"8983:11:23"},{"expression":{"id":5063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5061,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"9012:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":5062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9022:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9012:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5064,"nodeType":"ExpressionStatement","src":"9012:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5067,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"9055:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":5068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9064:1:23","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9055:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9068:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9055:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5081,"nodeType":"IfStatement","src":"9051:93:23","trueBody":{"id":5080,"nodeType":"Block","src":"9071:73:23","statements":[{"expression":{"id":5074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5072,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"9089:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":5073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:1:23","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9089:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5075,"nodeType":"ExpressionStatement","src":"9089:11:23"},{"expression":{"id":5078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5076,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"9118:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":5077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9128:1:23","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9118:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5079,"nodeType":"ExpressionStatement","src":"9118:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5082,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"9161:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":5083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9170:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9161:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9174:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9161:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5096,"nodeType":"IfStatement","src":"9157:93:23","trueBody":{"id":5095,"nodeType":"Block","src":"9177:73:23","statements":[{"expression":{"id":5089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5087,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"9195:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":5088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9205:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9195:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5090,"nodeType":"ExpressionStatement","src":"9195:11:23"},{"expression":{"id":5093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5091,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"9224:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":5092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9234:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9224:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5094,"nodeType":"ExpressionStatement","src":"9224:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5097,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"9267:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":5098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9276:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9267:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9280:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9267:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5107,"nodeType":"IfStatement","src":"9263:64:23","trueBody":{"id":5106,"nodeType":"Block","src":"9283:44:23","statements":[{"expression":{"id":5104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5102,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"9301:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":5103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9301:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5105,"nodeType":"ExpressionStatement","src":"9301:11:23"}]}}]},{"expression":{"id":5109,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"9353:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4987,"id":5110,"nodeType":"Return","src":"9346:13:23"}]},"documentation":{"id":4981,"nodeType":"StructuredDocumentation","src":"8265:113:23","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":5112,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8392:4:23","nodeType":"FunctionDefinition","parameters":{"id":4984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4983,"mutability":"mutable","name":"value","nameLocation":"8405:5:23","nodeType":"VariableDeclaration","scope":5112,"src":"8397:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4982,"name":"uint256","nodeType":"ElementaryTypeName","src":"8397:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8396:15:23"},"returnParameters":{"id":4987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5112,"src":"8435:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4985,"name":"uint256","nodeType":"ElementaryTypeName","src":"8435:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8434:9:23"},"scope":5440,"src":"8383:983:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5147,"nodeType":"Block","src":"9599:165:23","statements":[{"id":5146,"nodeType":"UncheckedBlock","src":"9609:149:23","statements":[{"assignments":[5124],"declarations":[{"constant":false,"id":5124,"mutability":"mutable","name":"result","nameLocation":"9641:6:23","nodeType":"VariableDeclaration","scope":5146,"src":"9633:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5123,"name":"uint256","nodeType":"ElementaryTypeName","src":"9633:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5128,"initialValue":{"arguments":[{"id":5126,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5115,"src":"9655:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5125,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[5112,5148],"referencedDeclaration":5112,"src":"9650:4:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":5127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9650:11:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9633:28:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5129,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5124,"src":"9682:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"id":5133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5130,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5118,"src":"9692:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5131,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"9704:8:23","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4582_$","typeString":"type(enum Math.Rounding)"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9713:2:23","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4580,"src":"9704:11:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"src":"9692:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9719:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":5135,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5124,"src":"9724:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9719:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5137,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5115,"src":"9733:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9719:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9692:46:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":5141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9745:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":5142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9692:54:23","trueExpression":{"hexValue":"31","id":5140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9741:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":5143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9691:56:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9682:65:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5122,"id":5145,"nodeType":"Return","src":"9675:72:23"}]}]},"documentation":{"id":5113,"nodeType":"StructuredDocumentation","src":"9372:142:23","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":5148,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9528:4:23","nodeType":"FunctionDefinition","parameters":{"id":5119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5115,"mutability":"mutable","name":"value","nameLocation":"9541:5:23","nodeType":"VariableDeclaration","scope":5148,"src":"9533:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5114,"name":"uint256","nodeType":"ElementaryTypeName","src":"9533:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5118,"mutability":"mutable","name":"rounding","nameLocation":"9557:8:23","nodeType":"VariableDeclaration","scope":5148,"src":"9548:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"typeName":{"id":5117,"nodeType":"UserDefinedTypeName","pathNode":{"id":5116,"name":"Rounding","nameLocations":["9548:8:23"],"nodeType":"IdentifierPath","referencedDeclaration":4582,"src":"9548:8:23"},"referencedDeclaration":4582,"src":"9548:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9532:34:23"},"returnParameters":{"id":5122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5148,"src":"9590:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5120,"name":"uint256","nodeType":"ElementaryTypeName","src":"9590:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9589:9:23"},"scope":5440,"src":"9519:245:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5276,"nodeType":"Block","src":"9951:828:23","statements":[{"assignments":[5157],"declarations":[{"constant":false,"id":5157,"mutability":"mutable","name":"result","nameLocation":"9969:6:23","nodeType":"VariableDeclaration","scope":5276,"src":"9961:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5156,"name":"uint256","nodeType":"ElementaryTypeName","src":"9961:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5159,"initialValue":{"hexValue":"30","id":5158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9978:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9961:18:23"},{"id":5273,"nodeType":"UncheckedBlock","src":"9989:761:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10017:5:23","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":5163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10026:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":5162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10030:2:23","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10026:6:23","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10017:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5176,"nodeType":"IfStatement","src":"10013:99:23","trueBody":{"id":5175,"nodeType":"Block","src":"10034:78:23","statements":[{"expression":{"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10052:5:23","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":5168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10061:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10065:2:23","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10061:6:23","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10052:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5170,"nodeType":"ExpressionStatement","src":"10052:15:23"},{"expression":{"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5171,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"10085:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":5172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10095:2:23","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10085:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5174,"nodeType":"ExpressionStatement","src":"10085:12:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10129:5:23","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":5180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10138:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":5179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10142:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10138:6:23","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10129:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5193,"nodeType":"IfStatement","src":"10125:99:23","trueBody":{"id":5192,"nodeType":"Block","src":"10146:78:23","statements":[{"expression":{"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5182,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10164:5:23","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":5185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10173:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":5184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10177:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10173:6:23","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10164:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5187,"nodeType":"ExpressionStatement","src":"10164:15:23"},{"expression":{"id":5190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5188,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"10197:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":5189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10207:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10197:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5191,"nodeType":"ExpressionStatement","src":"10197:12:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5194,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10241:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":5197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10250:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":5196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10254:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10250:6:23","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10241:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5210,"nodeType":"IfStatement","src":"10237:99:23","trueBody":{"id":5209,"nodeType":"Block","src":"10258:78:23","statements":[{"expression":{"id":5203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5199,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10276:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":5202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10285:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":5201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10289:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10285:6:23","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10276:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5204,"nodeType":"ExpressionStatement","src":"10276:15:23"},{"expression":{"id":5207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5205,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"10309:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":5206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10309:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5208,"nodeType":"ExpressionStatement","src":"10309:12:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5211,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10353:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":5214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10362:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":5213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10366:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10362:5:23","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10353:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5227,"nodeType":"IfStatement","src":"10349:96:23","trueBody":{"id":5226,"nodeType":"Block","src":"10369:76:23","statements":[{"expression":{"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5216,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10387:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":5219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10396:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":5218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10400:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10396:5:23","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10387:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5221,"nodeType":"ExpressionStatement","src":"10387:14:23"},{"expression":{"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5222,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"10419:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":5223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10419:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5225,"nodeType":"ExpressionStatement","src":"10419:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5228,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10462:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":5231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10471:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":5230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10475:1:23","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10471:5:23","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10462:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5244,"nodeType":"IfStatement","src":"10458:96:23","trueBody":{"id":5243,"nodeType":"Block","src":"10478:76:23","statements":[{"expression":{"id":5237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5233,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10496:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":5236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10505:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":5235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10509:1:23","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10505:5:23","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10496:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5238,"nodeType":"ExpressionStatement","src":"10496:14:23"},{"expression":{"id":5241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5239,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"10528:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":5240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10538:1:23","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10528:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5242,"nodeType":"ExpressionStatement","src":"10528:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5245,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10571:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":5248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10580:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":5247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10584:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10580:5:23","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10571:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5261,"nodeType":"IfStatement","src":"10567:96:23","trueBody":{"id":5260,"nodeType":"Block","src":"10587:76:23","statements":[{"expression":{"id":5254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5250,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10605:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":5253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10614:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":5252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10618:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10614:5:23","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10605:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5255,"nodeType":"ExpressionStatement","src":"10605:14:23"},{"expression":{"id":5258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5256,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"10637:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":5257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10647:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10637:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5259,"nodeType":"ExpressionStatement","src":"10637:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5262,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5151,"src":"10680:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":5265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10689:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":5264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10693:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10689:5:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10680:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5272,"nodeType":"IfStatement","src":"10676:64:23","trueBody":{"id":5271,"nodeType":"Block","src":"10696:44:23","statements":[{"expression":{"id":5269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5267,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"10714:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":5268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10724:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10714:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5270,"nodeType":"ExpressionStatement","src":"10714:11:23"}]}}]},{"expression":{"id":5274,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"10766:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5155,"id":5275,"nodeType":"Return","src":"10759:13:23"}]},"documentation":{"id":5149,"nodeType":"StructuredDocumentation","src":"9770:114:23","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":5277,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"9898:5:23","nodeType":"FunctionDefinition","parameters":{"id":5152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5151,"mutability":"mutable","name":"value","nameLocation":"9912:5:23","nodeType":"VariableDeclaration","scope":5277,"src":"9904:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5150,"name":"uint256","nodeType":"ElementaryTypeName","src":"9904:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9903:15:23"},"returnParameters":{"id":5155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5277,"src":"9942:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5153,"name":"uint256","nodeType":"ElementaryTypeName","src":"9942:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9941:9:23"},"scope":5440,"src":"9889:890:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5312,"nodeType":"Block","src":"11014:165:23","statements":[{"id":5311,"nodeType":"UncheckedBlock","src":"11024:149:23","statements":[{"assignments":[5289],"declarations":[{"constant":false,"id":5289,"mutability":"mutable","name":"result","nameLocation":"11056:6:23","nodeType":"VariableDeclaration","scope":5311,"src":"11048:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5288,"name":"uint256","nodeType":"ElementaryTypeName","src":"11048:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5293,"initialValue":{"arguments":[{"id":5291,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5280,"src":"11071:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5290,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[5277,5313],"referencedDeclaration":5277,"src":"11065:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11065:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11048:29:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5294,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5289,"src":"11098:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"id":5298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5295,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5283,"src":"11108:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5296,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"11120:8:23","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4582_$","typeString":"type(enum Math.Rounding)"}},"id":5297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11129:2:23","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4580,"src":"11120:11:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"src":"11108:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11135:2:23","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":5300,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5289,"src":"11139:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11135:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5280,"src":"11148:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11135:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11108:45:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":5306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11160:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":5307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11108:53:23","trueExpression":{"hexValue":"31","id":5305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11156:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":5308,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11107:55:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11098:64:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5287,"id":5310,"nodeType":"Return","src":"11091:71:23"}]}]},"documentation":{"id":5278,"nodeType":"StructuredDocumentation","src":"10785:143:23","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":5313,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10942:5:23","nodeType":"FunctionDefinition","parameters":{"id":5284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5280,"mutability":"mutable","name":"value","nameLocation":"10956:5:23","nodeType":"VariableDeclaration","scope":5313,"src":"10948:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5279,"name":"uint256","nodeType":"ElementaryTypeName","src":"10948:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5283,"mutability":"mutable","name":"rounding","nameLocation":"10972:8:23","nodeType":"VariableDeclaration","scope":5313,"src":"10963:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"typeName":{"id":5282,"nodeType":"UserDefinedTypeName","pathNode":{"id":5281,"name":"Rounding","nameLocations":["10963:8:23"],"nodeType":"IdentifierPath","referencedDeclaration":4582,"src":"10963:8:23"},"referencedDeclaration":4582,"src":"10963:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10947:34:23"},"returnParameters":{"id":5287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5313,"src":"11005:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5285,"name":"uint256","nodeType":"ElementaryTypeName","src":"11005:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11004:9:23"},"scope":5440,"src":"10933:246:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5399,"nodeType":"Block","src":"11493:600:23","statements":[{"assignments":[5322],"declarations":[{"constant":false,"id":5322,"mutability":"mutable","name":"result","nameLocation":"11511:6:23","nodeType":"VariableDeclaration","scope":5399,"src":"11503:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5321,"name":"uint256","nodeType":"ElementaryTypeName","src":"11503:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5324,"initialValue":{"hexValue":"30","id":5323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11520:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11503:18:23"},{"id":5396,"nodeType":"UncheckedBlock","src":"11531:533:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11559:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":5326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11568:3:23","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11559:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11574:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11559:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5339,"nodeType":"IfStatement","src":"11555:98:23","trueBody":{"id":5338,"nodeType":"Block","src":"11577:76:23","statements":[{"expression":{"id":5332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11595:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":5331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11605:3:23","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11595:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5333,"nodeType":"ExpressionStatement","src":"11595:13:23"},{"expression":{"id":5336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5334,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5322,"src":"11626:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":5335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11636:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11626:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5337,"nodeType":"ExpressionStatement","src":"11626:12:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11670:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":5341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11679:2:23","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11670:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11684:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11670:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5354,"nodeType":"IfStatement","src":"11666:95:23","trueBody":{"id":5353,"nodeType":"Block","src":"11687:74:23","statements":[{"expression":{"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5345,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11705:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":5346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11715:2:23","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11705:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5348,"nodeType":"ExpressionStatement","src":"11705:12:23"},{"expression":{"id":5351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5349,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5322,"src":"11735:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":5350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11745:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11735:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5352,"nodeType":"ExpressionStatement","src":"11735:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5355,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11778:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":5356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11787:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11778:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11792:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11778:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5369,"nodeType":"IfStatement","src":"11774:95:23","trueBody":{"id":5368,"nodeType":"Block","src":"11795:74:23","statements":[{"expression":{"id":5362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5360,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11813:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":5361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11823:2:23","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11813:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5363,"nodeType":"ExpressionStatement","src":"11813:12:23"},{"expression":{"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5364,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5322,"src":"11843:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":5365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11853:1:23","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11843:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5367,"nodeType":"ExpressionStatement","src":"11843:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5370,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11886:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":5371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11895:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11886:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11900:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11886:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5384,"nodeType":"IfStatement","src":"11882:95:23","trueBody":{"id":5383,"nodeType":"Block","src":"11903:74:23","statements":[{"expression":{"id":5377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5375,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11921:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":5376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11931:2:23","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11921:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5378,"nodeType":"ExpressionStatement","src":"11921:12:23"},{"expression":{"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5379,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5322,"src":"11951:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":5380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11961:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11951:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5382,"nodeType":"ExpressionStatement","src":"11951:11:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5385,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"11994:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":5386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12003:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11994:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12007:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11994:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5395,"nodeType":"IfStatement","src":"11990:64:23","trueBody":{"id":5394,"nodeType":"Block","src":"12010:44:23","statements":[{"expression":{"id":5392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5390,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5322,"src":"12028:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":5391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12028:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5393,"nodeType":"ExpressionStatement","src":"12028:11:23"}]}}]},{"expression":{"id":5397,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5322,"src":"12080:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5320,"id":5398,"nodeType":"Return","src":"12073:13:23"}]},"documentation":{"id":5314,"nodeType":"StructuredDocumentation","src":"11185:240:23","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":5400,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11439:6:23","nodeType":"FunctionDefinition","parameters":{"id":5317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5316,"mutability":"mutable","name":"value","nameLocation":"11454:5:23","nodeType":"VariableDeclaration","scope":5400,"src":"11446:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5315,"name":"uint256","nodeType":"ElementaryTypeName","src":"11446:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11445:15:23"},"returnParameters":{"id":5320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5400,"src":"11484:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5318,"name":"uint256","nodeType":"ElementaryTypeName","src":"11484:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11483:9:23"},"scope":5440,"src":"11430:663:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5438,"nodeType":"Block","src":"12329:173:23","statements":[{"id":5437,"nodeType":"UncheckedBlock","src":"12339:157:23","statements":[{"assignments":[5412],"declarations":[{"constant":false,"id":5412,"mutability":"mutable","name":"result","nameLocation":"12371:6:23","nodeType":"VariableDeclaration","scope":5437,"src":"12363:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5411,"name":"uint256","nodeType":"ElementaryTypeName","src":"12363:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5416,"initialValue":{"arguments":[{"id":5414,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5403,"src":"12387:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5413,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[5400,5439],"referencedDeclaration":5400,"src":"12380:6:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":5415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12380:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12363:30:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5417,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5412,"src":"12414:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"id":5421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5418,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"12424:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5419,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"12436:8:23","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$4582_$","typeString":"type(enum Math.Rounding)"}},"id":5420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12445:2:23","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":4580,"src":"12436:11:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"src":"12424:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12451:1:23","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":5425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5423,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5412,"src":"12457:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":5424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12466:1:23","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12457:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12456:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5428,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5403,"src":"12471:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:25:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12424:52:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":5432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12483:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":5433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12424:60:23","trueExpression":{"hexValue":"31","id":5431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12479:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":5434,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12423:62:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12414:71:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5410,"id":5436,"nodeType":"Return","src":"12407:78:23"}]}]},"documentation":{"id":5401,"nodeType":"StructuredDocumentation","src":"12099:143:23","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":5439,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12256:6:23","nodeType":"FunctionDefinition","parameters":{"id":5407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5403,"mutability":"mutable","name":"value","nameLocation":"12271:5:23","nodeType":"VariableDeclaration","scope":5439,"src":"12263:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5402,"name":"uint256","nodeType":"ElementaryTypeName","src":"12263:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5406,"mutability":"mutable","name":"rounding","nameLocation":"12287:8:23","nodeType":"VariableDeclaration","scope":5439,"src":"12278:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"},"typeName":{"id":5405,"nodeType":"UserDefinedTypeName","pathNode":{"id":5404,"name":"Rounding","nameLocations":["12278:8:23"],"nodeType":"IdentifierPath","referencedDeclaration":4582,"src":"12278:8:23"},"referencedDeclaration":4582,"src":"12278:8:23","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$4582","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12262:34:23"},"returnParameters":{"id":5410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5439,"src":"12320:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5408,"name":"uint256","nodeType":"ElementaryTypeName","src":"12320:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12319:9:23"},"scope":5440,"src":"12247:255:23","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":5441,"src":"202:12302:23","usedErrors":[],"usedEvents":[]}],"src":"103:12402:23"},"id":23},"@venusprotocol/solidity-utilities/contracts/validators.sol":{"ast":{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","exportedSymbols":{"ZeroAddressNotAllowed":[5445],"ZeroValueNotAllowed":[5448],"ensureNonzeroAddress":[5466],"ensureNonzeroValue":[5481]},"id":5482,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5442,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:24"},{"documentation":{"id":5443,"nodeType":"StructuredDocumentation","src":"66:85:24","text":"@notice Thrown if the supplied address is a zero address where it is not allowed"},"errorSelector":"8579befe","id":5445,"name":"ZeroAddressNotAllowed","nameLocation":"157:21:24","nodeType":"ErrorDefinition","parameters":{"id":5444,"nodeType":"ParameterList","parameters":[],"src":"178:2:24"},"src":"151:30:24"},{"documentation":{"id":5446,"nodeType":"StructuredDocumentation","src":"183:70:24","text":"@notice Thrown if the supplied value is 0 where it is not allowed"},"errorSelector":"9cf8540c","id":5448,"name":"ZeroValueNotAllowed","nameLocation":"259:19:24","nodeType":"ErrorDefinition","parameters":{"id":5447,"nodeType":"ParameterList","parameters":[],"src":"278:2:24"},"src":"253:28:24"},{"body":{"id":5465,"nodeType":"Block","src":"538:83:24","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5454,"name":"address_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"548:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"568:1:24","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":5456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"560:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5455,"name":"address","nodeType":"ElementaryTypeName","src":"560:7:24","typeDescriptions":{}}},"id":5458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"548:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5464,"nodeType":"IfStatement","src":"544:75:24","trueBody":{"id":5463,"nodeType":"Block","src":"572:47:24","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5460,"name":"ZeroAddressNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5445,"src":"589:21:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"589:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5462,"nodeType":"RevertStatement","src":"582:30:24"}]}}]},"documentation":{"id":5449,"nodeType":"StructuredDocumentation","src":"283:202:24","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":5466,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ensureNonzeroAddress","nameLocation":"494:20:24","nodeType":"FunctionDefinition","parameters":{"id":5452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5451,"mutability":"mutable","name":"address_","nameLocation":"523:8:24","nodeType":"VariableDeclaration","scope":5466,"src":"515:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5450,"name":"address","nodeType":"ElementaryTypeName","src":"515:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"514:18:24"},"returnParameters":{"id":5453,"nodeType":"ParameterList","parameters":[],"src":"538:0:24"},"scope":5482,"src":"485:136:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5480,"nodeType":"Block","src":"851:70:24","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5472,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"861:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"871:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"861:11:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5479,"nodeType":"IfStatement","src":"857:62:24","trueBody":{"id":5478,"nodeType":"Block","src":"874:45:24","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5475,"name":"ZeroValueNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5448,"src":"891:19:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"891:21:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5477,"nodeType":"RevertStatement","src":"884:28:24"}]}}]},"documentation":{"id":5467,"nodeType":"StructuredDocumentation","src":"623:179:24","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":5481,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ensureNonzeroValue","nameLocation":"811:18:24","nodeType":"FunctionDefinition","parameters":{"id":5470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5469,"mutability":"mutable","name":"value_","nameLocation":"838:6:24","nodeType":"VariableDeclaration","scope":5481,"src":"830:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5468,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"829:16:24"},"returnParameters":{"id":5471,"nodeType":"ParameterList","parameters":[],"src":"851:0:24"},"scope":5482,"src":"802:119:24","stateMutability":"pure","virtual":false,"visibility":"internal"}],"src":"41:881:24"},"id":24},"contracts/Cross-chain/BaseOmnichainControllerDest.sol":{"ast":{"absolutePath":"contracts/Cross-chain/BaseOmnichainControllerDest.sol","exportedSymbols":{"BaseOmnichainControllerDest":[5615],"NonblockingLzApp":[1212],"Pausable":[4288],"ensureNonzeroAddress":[5466]},"id":5616,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5483,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"43:23:25"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","id":5485,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5616,"sourceUnit":1213,"src":"68:105:25","symbolAliases":[{"foreign":{"id":5484,"name":"NonblockingLzApp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"77:16:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":5487,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5616,"sourceUnit":4289,"src":"174:73:25","symbolAliases":[{"foreign":{"id":5486,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4288,"src":"183:8:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5489,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5616,"sourceUnit":5482,"src":"248:98:25","symbolAliases":[{"foreign":{"id":5488,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"257:20:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5491,"name":"NonblockingLzApp","nameLocations":["715:16:25"],"nodeType":"IdentifierPath","referencedDeclaration":1212,"src":"715:16:25"},"id":5492,"nodeType":"InheritanceSpecifier","src":"715:16:25"},{"baseName":{"id":5493,"name":"Pausable","nameLocations":["733:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":4288,"src":"733:8:25"},"id":5494,"nodeType":"InheritanceSpecifier","src":"733:8:25"}],"canonicalName":"BaseOmnichainControllerDest","contractDependencies":[],"contractKind":"contract","documentation":{"id":5490,"nodeType":"StructuredDocumentation","src":"348:316:25","text":" @title BaseOmnichainControllerDest\n @author Venus\n @dev This contract is the base for the Omnichain controller destination contract\n It provides functionality related to daily command limits and pausability\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":false,"id":5615,"linearizedBaseContracts":[5615,4288,1212,971,1402,1371,4180,4364],"name":"BaseOmnichainControllerDest","nameLocation":"684:27:25","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":5495,"nodeType":"StructuredDocumentation","src":"748:88:25","text":" @notice Maximum daily limit for receiving commands from Binance chain"},"functionSelector":"0435bb56","id":5497,"mutability":"mutable","name":"maxDailyReceiveLimit","nameLocation":"856:20:25","nodeType":"VariableDeclaration","scope":5615,"src":"841:35:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5496,"name":"uint256","nodeType":"ElementaryTypeName","src":"841:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":5498,"nodeType":"StructuredDocumentation","src":"883:100:25","text":" @notice Total received commands within the last 24-hour window from Binance chain"},"functionSelector":"70f6ad9a","id":5500,"mutability":"mutable","name":"last24HourCommandsReceived","nameLocation":"1003:26:25","nodeType":"VariableDeclaration","scope":5615,"src":"988:41:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5499,"name":"uint256","nodeType":"ElementaryTypeName","src":"988:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":5501,"nodeType":"StructuredDocumentation","src":"1036:92:25","text":" @notice Timestamp when the last 24-hour window started from Binance chain"},"functionSelector":"876919e8","id":5503,"mutability":"mutable","name":"last24HourReceiveWindowStart","nameLocation":"1148:28:25","nodeType":"VariableDeclaration","scope":5615,"src":"1133:43:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5502,"name":"uint256","nodeType":"ElementaryTypeName","src":"1133:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":5504,"nodeType":"StructuredDocumentation","src":"1183:116:25","text":" @notice Emitted when the maximum daily limit for receiving command from Binance chain is modified"},"eventSelector":"0a653bb1a57e62cfd43f0dc557c7223e8b58896238b5f9b300ef646d37b82d1b","id":5510,"name":"SetMaxDailyReceiveLimit","nameLocation":"1310:23:25","nodeType":"EventDefinition","parameters":{"id":5509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5506,"indexed":false,"mutability":"mutable","name":"oldMaxLimit","nameLocation":"1342:11:25","nodeType":"VariableDeclaration","scope":5510,"src":"1334:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1334:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5508,"indexed":false,"mutability":"mutable","name":"newMaxLimit","nameLocation":"1363:11:25","nodeType":"VariableDeclaration","scope":5510,"src":"1355:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5507,"name":"uint256","nodeType":"ElementaryTypeName","src":"1355:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1333:42:25"},"src":"1304:72:25"},{"body":{"id":5522,"nodeType":"Block","src":"1441:48:25","statements":[{"expression":{"arguments":[{"id":5519,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1472:9:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5518,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"1451:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:31:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5521,"nodeType":"ExpressionStatement","src":"1451:31:25"}]},"id":5523,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":5515,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1430:9:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":5516,"kind":"baseConstructorSpecifier","modifierName":{"id":5514,"name":"NonblockingLzApp","nameLocations":["1413:16:25"],"nodeType":"IdentifierPath","referencedDeclaration":1212,"src":"1413:16:25"},"nodeType":"ModifierInvocation","src":"1413:27:25"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5512,"mutability":"mutable","name":"endpoint_","nameLocation":"1402:9:25","nodeType":"VariableDeclaration","scope":5523,"src":"1394:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5511,"name":"address","nodeType":"ElementaryTypeName","src":"1394:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1393:19:25"},"returnParameters":{"id":5517,"nodeType":"ParameterList","parameters":[],"src":"1441:0:25"},"scope":5615,"src":"1382:107:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5540,"nodeType":"Block","src":"1793:114:25","statements":[{"eventCall":{"arguments":[{"id":5532,"name":"maxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5497,"src":"1832:20:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5533,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5526,"src":"1854:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5531,"name":"SetMaxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"1808:23:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":5534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:53:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5535,"nodeType":"EmitStatement","src":"1803:58:25"},{"expression":{"id":5538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5536,"name":"maxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5497,"src":"1871:20:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5537,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5526,"src":"1894:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1871:29:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5539,"nodeType":"ExpressionStatement","src":"1871:29:25"}]},"documentation":{"id":5524,"nodeType":"StructuredDocumentation","src":"1495:225:25","text":" @notice Sets the maximum daily limit for receiving commands\n @param limit_ Number of commands\n @custom:access Only Owner\n @custom:event Emits SetMaxDailyReceiveLimit with old and new limit"},"functionSelector":"9493ffad","id":5541,"implemented":true,"kind":"function","modifiers":[{"id":5529,"kind":"modifierInvocation","modifierName":{"id":5528,"name":"onlyOwner","nameLocations":["1783:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"1783:9:25"},"nodeType":"ModifierInvocation","src":"1783:9:25"}],"name":"setMaxDailyReceiveLimit","nameLocation":"1734:23:25","nodeType":"FunctionDefinition","parameters":{"id":5527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5526,"mutability":"mutable","name":"limit_","nameLocation":"1766:6:25","nodeType":"VariableDeclaration","scope":5541,"src":"1758:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1758:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1757:16:25"},"returnParameters":{"id":5530,"nodeType":"ParameterList","parameters":[],"src":"1793:0:25"},"scope":5615,"src":"1725:182:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5550,"nodeType":"Block","src":"2057:25:25","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5547,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4271,"src":"2067:6:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2067:8:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5549,"nodeType":"ExpressionStatement","src":"2067:8:25"}]},"documentation":{"id":5542,"nodeType":"StructuredDocumentation","src":"1913:103:25","text":" @notice Triggers the paused state of the controller\n @custom:access Only owner"},"functionSelector":"8456cb59","id":5551,"implemented":true,"kind":"function","modifiers":[{"id":5545,"kind":"modifierInvocation","modifierName":{"id":5544,"name":"onlyOwner","nameLocations":["2047:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"2047:9:25"},"nodeType":"ModifierInvocation","src":"2047:9:25"}],"name":"pause","nameLocation":"2030:5:25","nodeType":"FunctionDefinition","parameters":{"id":5543,"nodeType":"ParameterList","parameters":[],"src":"2035:2:25"},"returnParameters":{"id":5546,"nodeType":"ParameterList","parameters":[],"src":"2057:0:25"},"scope":5615,"src":"2021:61:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5560,"nodeType":"Block","src":"2234:27:25","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5557,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4287,"src":"2244:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2244:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5559,"nodeType":"ExpressionStatement","src":"2244:10:25"}]},"documentation":{"id":5552,"nodeType":"StructuredDocumentation","src":"2088:103:25","text":" @notice Triggers the resume state of the controller\n @custom:access Only owner"},"functionSelector":"3f4ba83a","id":5561,"implemented":true,"kind":"function","modifiers":[{"id":5555,"kind":"modifierInvocation","modifierName":{"id":5554,"name":"onlyOwner","nameLocations":["2224:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"2224:9:25"},"nodeType":"ModifierInvocation","src":"2224:9:25"}],"name":"unpause","nameLocation":"2205:7:25","nodeType":"FunctionDefinition","parameters":{"id":5553,"nodeType":"ParameterList","parameters":[],"src":"2212:2:25"},"returnParameters":{"id":5556,"nodeType":"ParameterList","parameters":[],"src":"2234:0:25"},"scope":5615,"src":"2196:65:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4136],"body":{"id":5566,"nodeType":"Block","src":"2412:2:25","statements":[]},"documentation":{"id":5562,"nodeType":"StructuredDocumentation","src":"2267:95:25","text":" @notice Empty implementation of renounce ownership to avoid any mishappening"},"functionSelector":"715018a6","id":5567,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"2376:17:25","nodeType":"FunctionDefinition","overrides":{"id":5564,"nodeType":"OverrideSpecifier","overrides":[],"src":"2403:8:25"},"parameters":{"id":5563,"nodeType":"ParameterList","parameters":[],"src":"2393:2:25"},"returnParameters":{"id":5565,"nodeType":"ParameterList","parameters":[],"src":"2412:0:25"},"scope":5615,"src":"2367:47:25","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5613,"nodeType":"Block","src":"2613:818:25","statements":[{"assignments":[5574],"declarations":[{"constant":false,"id":5574,"mutability":"mutable","name":"currentBlockTimestamp","nameLocation":"2631:21:25","nodeType":"VariableDeclaration","scope":5613,"src":"2623:29:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5573,"name":"uint256","nodeType":"ElementaryTypeName","src":"2623:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5577,"initialValue":{"expression":{"id":5575,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2655:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2661:9:25","memberName":"timestamp","nodeType":"MemberAccess","src":"2655:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2623:47:25"},{"assignments":[5579],"declarations":[{"constant":false,"id":5579,"mutability":"mutable","name":"receivedInWindow","nameLocation":"2756:16:25","nodeType":"VariableDeclaration","scope":5613,"src":"2748:24:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5578,"name":"uint256","nodeType":"ElementaryTypeName","src":"2748:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5581,"initialValue":{"id":5580,"name":"last24HourCommandsReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5500,"src":"2775:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2748:53:25"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5582,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"2897:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5583,"name":"last24HourReceiveWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5503,"src":"2921:28:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2897:52:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":5585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2952:6:25","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"2897:61:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5600,"nodeType":"Block","src":"3089:58:25","statements":[{"expression":{"id":5598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5596,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"3103:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5597,"name":"noOfCommands_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5570,"src":"3123:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3103:33:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5599,"nodeType":"ExpressionStatement","src":"3103:33:25"}]},"id":5601,"nodeType":"IfStatement","src":"2893:254:25","trueBody":{"id":5595,"nodeType":"Block","src":"2960:123:25","statements":[{"expression":{"id":5589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5587,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"2974:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5588,"name":"noOfCommands_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5570,"src":"2993:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2974:32:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5590,"nodeType":"ExpressionStatement","src":"2974:32:25"},{"expression":{"id":5593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5591,"name":"last24HourReceiveWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5503,"src":"3020:28:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5592,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"3051:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3020:52:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5594,"nodeType":"ExpressionStatement","src":"3020:52:25"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5603,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"3230:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":5604,"name":"maxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5497,"src":"3250:20:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3230:40:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4461696c79205472616e73616374696f6e204c696d6974204578636565646564","id":5606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3272:34:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b","typeString":"literal_string \"Daily Transaction Limit Exceeded\""},"value":"Daily Transaction Limit Exceeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b","typeString":"literal_string \"Daily Transaction Limit Exceeded\""}],"id":5602,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3222:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3222:85:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5608,"nodeType":"ExpressionStatement","src":"3222:85:25"},{"expression":{"id":5611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5609,"name":"last24HourCommandsReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5500,"src":"3379:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5610,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"3408:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3379:45:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5612,"nodeType":"ExpressionStatement","src":"3379:45:25"}]},"documentation":{"id":5568,"nodeType":"StructuredDocumentation","src":"2420:126:25","text":" @notice Check eligibility to receive commands\n @param noOfCommands_ Number of commands to be received"},"id":5614,"implemented":true,"kind":"function","modifiers":[],"name":"_isEligibleToReceive","nameLocation":"2560:20:25","nodeType":"FunctionDefinition","parameters":{"id":5571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5570,"mutability":"mutable","name":"noOfCommands_","nameLocation":"2589:13:25","nodeType":"VariableDeclaration","scope":5614,"src":"2581:21:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5569,"name":"uint256","nodeType":"ElementaryTypeName","src":"2581:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2580:23:25"},"returnParameters":{"id":5572,"nodeType":"ParameterList","parameters":[],"src":"2613:0:25"},"scope":5615,"src":"2551:880:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":5616,"src":"666:2767:25","usedErrors":[5445],"usedEvents":[471,477,483,491,1009,1019,4081,4191,4196,5510]}],"src":"43:3391:25"},"id":25},"contracts/Cross-chain/BaseOmnichainControllerSrc.sol":{"ast":{"absolutePath":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol","exportedSymbols":{"BaseOmnichainControllerSrc":[5867],"IAccessControlManagerV8":[8389],"Ownable":[4180],"Pausable":[4288],"ensureNonzeroAddress":[5466]},"id":5868,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5617,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"42:23:26"},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":5619,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5868,"sourceUnit":4289,"src":"67:73:26","symbolAliases":[{"foreign":{"id":5618,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4288,"src":"76:8:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":5621,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5868,"sourceUnit":4181,"src":"141:69:26","symbolAliases":[{"foreign":{"id":5620,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4180,"src":"150:7:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5623,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5868,"sourceUnit":5482,"src":"211:98:26","symbolAliases":[{"foreign":{"id":5622,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"220:20:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","file":"./../Governance/IAccessControlManagerV8.sol","id":5625,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5868,"sourceUnit":8390,"src":"310:86:26","symbolAliases":[{"foreign":{"id":5624,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8389,"src":"319:23:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5627,"name":"Ownable","nameLocations":["735:7:26"],"nodeType":"IdentifierPath","referencedDeclaration":4180,"src":"735:7:26"},"id":5628,"nodeType":"InheritanceSpecifier","src":"735:7:26"},{"baseName":{"id":5629,"name":"Pausable","nameLocations":["744:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":4288,"src":"744:8:26"},"id":5630,"nodeType":"InheritanceSpecifier","src":"744:8:26"}],"canonicalName":"BaseOmnichainControllerSrc","contractDependencies":[],"contractKind":"contract","documentation":{"id":5626,"nodeType":"StructuredDocumentation","src":"398:296:26","text":" @title BaseOmnichainControllerSrc\n @dev This contract is the base for the Omnichain controller source contracts.\n It provides functionality related to daily command limits and pausability.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":5867,"linearizedBaseContracts":[5867,4288,4180,4364],"name":"BaseOmnichainControllerSrc","nameLocation":"705:26:26","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":5631,"nodeType":"StructuredDocumentation","src":"759:72:26","text":" @notice ACM (Access Control Manager) contract address"},"functionSelector":"b4a0bdf3","id":5633,"mutability":"mutable","name":"accessControlManager","nameLocation":"851:20:26","nodeType":"VariableDeclaration","scope":5867,"src":"836:35:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5632,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":5634,"nodeType":"StructuredDocumentation","src":"878:80:26","text":" @notice Maximum daily limit for commands from the local chain"},"functionSelector":"4f4ba0f4","id":5638,"mutability":"mutable","name":"chainIdToMaxDailyLimit","nameLocation":"997:22:26","nodeType":"VariableDeclaration","scope":5867,"src":"963:56:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":5637,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5635,"name":"uint16","nodeType":"ElementaryTypeName","src":"971:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"963:26:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5636,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":5639,"nodeType":"StructuredDocumentation","src":"1026:105:26","text":" @notice Total commands transferred within the last 24-hour window from the local chain"},"functionSelector":"1183a3b2","id":5643,"mutability":"mutable","name":"chainIdToLast24HourCommandsSent","nameLocation":"1170:31:26","nodeType":"VariableDeclaration","scope":5867,"src":"1136:65:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":5642,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5640,"name":"uint16","nodeType":"ElementaryTypeName","src":"1144:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1136:26:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5641,"name":"uint256","nodeType":"ElementaryTypeName","src":"1154:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":5644,"nodeType":"StructuredDocumentation","src":"1208:94:26","text":" @notice Timestamp when the last 24-hour window started from the local chain"},"functionSelector":"93a61d6c","id":5648,"mutability":"mutable","name":"chainIdToLast24HourWindowStart","nameLocation":"1341:30:26","nodeType":"VariableDeclaration","scope":5867,"src":"1307:64:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":5647,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5645,"name":"uint16","nodeType":"ElementaryTypeName","src":"1315:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1307:26:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5646,"name":"uint256","nodeType":"ElementaryTypeName","src":"1325:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":5649,"nodeType":"StructuredDocumentation","src":"1377:99:26","text":" @notice Timestamp when the last proposal sent from the local chain to dest chain"},"functionSelector":"e0354d7f","id":5653,"mutability":"mutable","name":"chainIdToLastProposalSentTimestamp","nameLocation":"1515:34:26","nodeType":"VariableDeclaration","scope":5867,"src":"1481:68:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":5652,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5650,"name":"uint16","nodeType":"ElementaryTypeName","src":"1489:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1481:26:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5651,"name":"uint256","nodeType":"ElementaryTypeName","src":"1499:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":5654,"nodeType":"StructuredDocumentation","src":"1556:108:26","text":" @notice Emitted when the maximum daily limit of commands from the local chain is modified"},"eventSelector":"4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693","id":5662,"name":"SetMaxDailyLimit","nameLocation":"1675:16:26","nodeType":"EventDefinition","parameters":{"id":5661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5656,"indexed":true,"mutability":"mutable","name":"chainId","nameLocation":"1707:7:26","nodeType":"VariableDeclaration","scope":5662,"src":"1692:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5655,"name":"uint16","nodeType":"ElementaryTypeName","src":"1692:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5658,"indexed":false,"mutability":"mutable","name":"oldMaxLimit","nameLocation":"1724:11:26","nodeType":"VariableDeclaration","scope":5662,"src":"1716:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5657,"name":"uint256","nodeType":"ElementaryTypeName","src":"1716:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5660,"indexed":false,"mutability":"mutable","name":"newMaxLimit","nameLocation":"1745:11:26","nodeType":"VariableDeclaration","scope":5662,"src":"1737:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1737:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1691:66:26"},"src":"1669:89:26"},{"anonymous":false,"eventSelector":"66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0","id":5668,"name":"NewAccessControlManager","nameLocation":"1842:23:26","nodeType":"EventDefinition","parameters":{"id":5667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5664,"indexed":true,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"1882:23:26","nodeType":"VariableDeclaration","scope":5668,"src":"1866:39:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5663,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5666,"indexed":true,"mutability":"mutable","name":"newAccessControlManager","nameLocation":"1923:23:26","nodeType":"VariableDeclaration","scope":5668,"src":"1907:39:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5665,"name":"address","nodeType":"ElementaryTypeName","src":"1907:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1865:82:26"},"src":"1836:112:26"},{"body":{"id":5681,"nodeType":"Block","src":"1997:114:26","statements":[{"expression":{"arguments":[{"id":5674,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5670,"src":"2028:21:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5673,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"2007:20:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2007:43:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5676,"nodeType":"ExpressionStatement","src":"2007:43:26"},{"expression":{"id":5679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5677,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5633,"src":"2060:20:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5678,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5670,"src":"2083:21:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2060:44:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5680,"nodeType":"ExpressionStatement","src":"2060:44:26"}]},"id":5682,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5670,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1974:21:26","nodeType":"VariableDeclaration","scope":5682,"src":"1966:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5669,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1965:31:26"},"returnParameters":{"id":5672,"nodeType":"ParameterList","parameters":[],"src":"1997:0:26"},"scope":5867,"src":"1954:157:26","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5708,"nodeType":"Block","src":"2504:201:26","statements":[{"expression":{"arguments":[{"hexValue":"7365744d61784461696c794c696d69742875696e7431362c75696e7432353629","id":5691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2529:34:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488eec8bda362f4b194125e74dc1ba51b47c87eea325ace3d09d029d71f6a2d","typeString":"literal_string \"setMaxDailyLimit(uint16,uint256)\""},"value":"setMaxDailyLimit(uint16,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488eec8bda362f4b194125e74dc1ba51b47c87eea325ace3d09d029d71f6a2d","typeString":"literal_string \"setMaxDailyLimit(uint16,uint256)\""}],"id":5690,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"2514:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":5692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2514:50:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5693,"nodeType":"ExpressionStatement","src":"2514:50:26"},{"eventCall":{"arguments":[{"id":5695,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5685,"src":"2596:8:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"baseExpression":{"id":5696,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"2606:22:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5698,"indexExpression":{"id":5697,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5685,"src":"2629:8:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2606:32:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5699,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"2640:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5694,"name":"SetMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5662,"src":"2579:16:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256,uint256)"}},"id":5700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:68:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5701,"nodeType":"EmitStatement","src":"2574:73:26"},{"expression":{"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5702,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"2657:22:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5704,"indexExpression":{"id":5703,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5685,"src":"2680:8:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2657:32:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5705,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"2692:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2657:41:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5707,"nodeType":"ExpressionStatement","src":"2657:41:26"}]},"documentation":{"id":5683,"nodeType":"StructuredDocumentation","src":"2117:314:26","text":" @notice Sets the limit of daily (24 Hour) command amount\n @param chainId_ Destination chain id\n @param limit_ Number of commands\n @custom:access Controlled by AccessControlManager\n @custom:event Emits SetMaxDailyLimit with old and new limit and its corresponding chain id"},"functionSelector":"2488eec8","id":5709,"implemented":true,"kind":"function","modifiers":[],"name":"setMaxDailyLimit","nameLocation":"2445:16:26","nodeType":"FunctionDefinition","parameters":{"id":5688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5685,"mutability":"mutable","name":"chainId_","nameLocation":"2469:8:26","nodeType":"VariableDeclaration","scope":5709,"src":"2462:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5684,"name":"uint16","nodeType":"ElementaryTypeName","src":"2462:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5687,"mutability":"mutable","name":"limit_","nameLocation":"2487:6:26","nodeType":"VariableDeclaration","scope":5709,"src":"2479:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5686,"name":"uint256","nodeType":"ElementaryTypeName","src":"2479:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2461:33:26"},"returnParameters":{"id":5689,"nodeType":"ParameterList","parameters":[],"src":"2504:0:26"},"scope":5867,"src":"2436:269:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5720,"nodeType":"Block","src":"2869:60:26","statements":[{"expression":{"arguments":[{"hexValue":"70617573652829","id":5714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2894:9:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_8456cb591a934d53f6ccc6332123a165a1f3562907bf11330d847a29ca49eb89","typeString":"literal_string \"pause()\""},"value":"pause()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8456cb591a934d53f6ccc6332123a165a1f3562907bf11330d847a29ca49eb89","typeString":"literal_string \"pause()\""}],"id":5713,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"2879:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2879:25:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5716,"nodeType":"ExpressionStatement","src":"2879:25:26"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5717,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4271,"src":"2914:6:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2914:8:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5719,"nodeType":"ExpressionStatement","src":"2914:8:26"}]},"documentation":{"id":5710,"nodeType":"StructuredDocumentation","src":"2711:127:26","text":" @notice Triggers the paused state of the controller\n @custom:access Controlled by AccessControlManager"},"functionSelector":"8456cb59","id":5721,"implemented":true,"kind":"function","modifiers":[],"name":"pause","nameLocation":"2852:5:26","nodeType":"FunctionDefinition","parameters":{"id":5711,"nodeType":"ParameterList","parameters":[],"src":"2857:2:26"},"returnParameters":{"id":5712,"nodeType":"ParameterList","parameters":[],"src":"2869:0:26"},"scope":5867,"src":"2843:86:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5732,"nodeType":"Block","src":"3095:64:26","statements":[{"expression":{"arguments":[{"hexValue":"756e70617573652829","id":5726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3120:11:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc","typeString":"literal_string \"unpause()\""},"value":"unpause()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc","typeString":"literal_string \"unpause()\""}],"id":5725,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"3105:14:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3105:27:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5728,"nodeType":"ExpressionStatement","src":"3105:27:26"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5729,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4287,"src":"3142:8:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3142:10:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5731,"nodeType":"ExpressionStatement","src":"3142:10:26"}]},"documentation":{"id":5722,"nodeType":"StructuredDocumentation","src":"2935:127:26","text":" @notice Triggers the resume state of the controller\n @custom:access Controlled by AccessControlManager"},"functionSelector":"3f4ba83a","id":5733,"implemented":true,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"3076:7:26","nodeType":"FunctionDefinition","parameters":{"id":5723,"nodeType":"ParameterList","parameters":[],"src":"3083:2:26"},"returnParameters":{"id":5724,"nodeType":"ParameterList","parameters":[],"src":"3095:0:26"},"scope":5867,"src":"3067:92:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5754,"nodeType":"Block","src":"3544:197:26","statements":[{"expression":{"arguments":[{"id":5742,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"3575:21:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5741,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"3554:20:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3554:43:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5744,"nodeType":"ExpressionStatement","src":"3554:43:26"},{"eventCall":{"arguments":[{"id":5746,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5633,"src":"3636:20:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5747,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"3658:21:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5745,"name":"NewAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"3612:23:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3612:68:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5749,"nodeType":"EmitStatement","src":"3607:73:26"},{"expression":{"id":5752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5750,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5633,"src":"3690:20:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5751,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"3713:21:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3690:44:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5753,"nodeType":"ExpressionStatement","src":"3690:44:26"}]},"documentation":{"id":5734,"nodeType":"StructuredDocumentation","src":"3165:291:26","text":" @notice Sets the address of Access Control Manager (ACM)\n @param accessControlManager_ The new address of the Access Control Manager\n @custom:access Only owner\n @custom:event Emits NewAccessControlManager with old and new access control manager addresses"},"functionSelector":"0e32cb86","id":5755,"implemented":true,"kind":"function","modifiers":[{"id":5739,"kind":"modifierInvocation","modifierName":{"id":5738,"name":"onlyOwner","nameLocations":["3534:9:26"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"3534:9:26"},"nodeType":"ModifierInvocation","src":"3534:9:26"}],"name":"setAccessControlManager","nameLocation":"3470:23:26","nodeType":"FunctionDefinition","parameters":{"id":5737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5736,"mutability":"mutable","name":"accessControlManager_","nameLocation":"3502:21:26","nodeType":"VariableDeclaration","scope":5755,"src":"3494:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5735,"name":"address","nodeType":"ElementaryTypeName","src":"3494:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3493:31:26"},"returnParameters":{"id":5740,"nodeType":"ParameterList","parameters":[],"src":"3544:0:26"},"scope":5867,"src":"3461:280:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4136],"body":{"id":5760,"nodeType":"Block","src":"3886:2:26","statements":[]},"documentation":{"id":5756,"nodeType":"StructuredDocumentation","src":"3747:89:26","text":" @notice Empty implementation of renounce ownership to avoid any mishap"},"functionSelector":"715018a6","id":5761,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"3850:17:26","nodeType":"FunctionDefinition","overrides":{"id":5758,"nodeType":"OverrideSpecifier","overrides":[],"src":"3877:8:26"},"parameters":{"id":5757,"nodeType":"ParameterList","parameters":[],"src":"3867:2:26"},"returnParameters":{"id":5759,"nodeType":"ParameterList","parameters":[],"src":"3886:0:26"},"scope":5867,"src":"3841:47:26","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5846,"nodeType":"Block","src":"4141:1461:26","statements":[{"assignments":[5770],"declarations":[{"constant":false,"id":5770,"mutability":"mutable","name":"currentBlockTimestamp","nameLocation":"4212:21:26","nodeType":"VariableDeclaration","scope":5846,"src":"4204:29:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5769,"name":"uint256","nodeType":"ElementaryTypeName","src":"4204:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5773,"initialValue":{"expression":{"id":5771,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4236:5:26","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4242:9:26","memberName":"timestamp","nodeType":"MemberAccess","src":"4236:15:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4204:47:26"},{"assignments":[5775],"declarations":[{"constant":false,"id":5775,"mutability":"mutable","name":"lastDayWindowStart","nameLocation":"4269:18:26","nodeType":"VariableDeclaration","scope":5846,"src":"4261:26:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5774,"name":"uint256","nodeType":"ElementaryTypeName","src":"4261:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5779,"initialValue":{"baseExpression":{"id":5776,"name":"chainIdToLast24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"4290:30:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5778,"indexExpression":{"id":5777,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"4321:11:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4290:43:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4261:72:26"},{"assignments":[5781],"declarations":[{"constant":false,"id":5781,"mutability":"mutable","name":"commandsSentInWindow","nameLocation":"4351:20:26","nodeType":"VariableDeclaration","scope":5846,"src":"4343:28:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5780,"name":"uint256","nodeType":"ElementaryTypeName","src":"4343:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5785,"initialValue":{"baseExpression":{"id":5782,"name":"chainIdToLast24HourCommandsSent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"4374:31:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5784,"indexExpression":{"id":5783,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"4406:11:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4374:44:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4343:75:26"},{"assignments":[5787],"declarations":[{"constant":false,"id":5787,"mutability":"mutable","name":"maxDailyLimit","nameLocation":"4436:13:26","nodeType":"VariableDeclaration","scope":5846,"src":"4428:21:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5786,"name":"uint256","nodeType":"ElementaryTypeName","src":"4428:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5791,"initialValue":{"baseExpression":{"id":5788,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"4452:22:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5790,"indexExpression":{"id":5789,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"4475:11:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4452:35:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4428:59:26"},{"assignments":[5793],"declarations":[{"constant":false,"id":5793,"mutability":"mutable","name":"lastProposalSentTimestamp","nameLocation":"4505:25:26","nodeType":"VariableDeclaration","scope":5846,"src":"4497:33:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5792,"name":"uint256","nodeType":"ElementaryTypeName","src":"4497:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5797,"initialValue":{"baseExpression":{"id":5794,"name":"chainIdToLastProposalSentTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"4533:34:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5796,"indexExpression":{"id":5795,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"4568:11:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4533:47:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4497:83:26"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5798,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5770,"src":"4676:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5799,"name":"lastDayWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5775,"src":"4700:18:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4676:42:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":5801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4721:6:26","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"4676:51:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5818,"nodeType":"Block","src":"4877:62:26","statements":[{"expression":{"id":5816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5814,"name":"commandsSentInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5781,"src":"4891:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5815,"name":"noOfCommands_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"4915:13:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4891:37:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5817,"nodeType":"ExpressionStatement","src":"4891:37:26"}]},"id":5819,"nodeType":"IfStatement","src":"4672:267:26","trueBody":{"id":5813,"nodeType":"Block","src":"4729:142:26","statements":[{"expression":{"id":5805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5803,"name":"commandsSentInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5781,"src":"4743:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5804,"name":"noOfCommands_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"4766:13:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4743:36:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5806,"nodeType":"ExpressionStatement","src":"4743:36:26"},{"expression":{"id":5811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5807,"name":"chainIdToLast24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"4793:30:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5809,"indexExpression":{"id":5808,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"4824:11:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4793:43:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5810,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5770,"src":"4839:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4793:67:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5812,"nodeType":"ExpressionStatement","src":"4793:67:26"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5821,"name":"commandsSentInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5781,"src":"5013:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":5822,"name":"maxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5787,"src":"5037:13:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5013:37:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4461696c79205472616e73616374696f6e204c696d6974204578636565646564","id":5824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5052:34:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b","typeString":"literal_string \"Daily Transaction Limit Exceeded\""},"value":"Daily Transaction Limit Exceeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b","typeString":"literal_string \"Daily Transaction Limit Exceeded\""}],"id":5820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5005:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5005:82:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5826,"nodeType":"ExpressionStatement","src":"5005:82:26"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5828,"name":"lastProposalSentTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5793,"src":"5247:25:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5829,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5770,"src":"5276:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5247:50:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d756c7469706c65206272696467696e6720696e20612070726f706f73616c","id":5831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5299:33:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be","typeString":"literal_string \"Multiple bridging in a proposal\""},"value":"Multiple bridging in a proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be","typeString":"literal_string \"Multiple bridging in a proposal\""}],"id":5827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5239:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5239:94:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5833,"nodeType":"ExpressionStatement","src":"5239:94:26"},{"expression":{"id":5838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5834,"name":"chainIdToLast24HourCommandsSent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"5396:31:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5836,"indexExpression":{"id":5835,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"5428:11:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5396:44:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5837,"name":"commandsSentInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5781,"src":"5443:20:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5396:67:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5839,"nodeType":"ExpressionStatement","src":"5396:67:26"},{"expression":{"id":5844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5840,"name":"chainIdToLastProposalSentTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"5524:34:26","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":5842,"indexExpression":{"id":5841,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"5559:11:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5524:47:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5843,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5770,"src":"5574:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5524:71:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5845,"nodeType":"ExpressionStatement","src":"5524:71:26"}]},"documentation":{"id":5762,"nodeType":"StructuredDocumentation","src":"3894:163:26","text":" @notice Check eligibility to send commands\n @param dstChainId_ Destination chain id\n @param noOfCommands_ Number of commands to send"},"id":5847,"implemented":true,"kind":"function","modifiers":[],"name":"_isEligibleToSend","nameLocation":"4071:17:26","nodeType":"FunctionDefinition","parameters":{"id":5767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5764,"mutability":"mutable","name":"dstChainId_","nameLocation":"4096:11:26","nodeType":"VariableDeclaration","scope":5847,"src":"4089:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5763,"name":"uint16","nodeType":"ElementaryTypeName","src":"4089:6:26","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5766,"mutability":"mutable","name":"noOfCommands_","nameLocation":"4117:13:26","nodeType":"VariableDeclaration","scope":5847,"src":"4109:21:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5765,"name":"uint256","nodeType":"ElementaryTypeName","src":"4109:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4088:43:26"},"returnParameters":{"id":5768,"nodeType":"ParameterList","parameters":[],"src":"4141:0:26"},"scope":5867,"src":"4062:1540:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5865,"nodeType":"Block","src":"5849:164:26","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":5858,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5942:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5946:6:26","memberName":"sender","nodeType":"MemberAccess","src":"5942:10:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5860,"name":"functionSig_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5850,"src":"5954:12:26","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":5855,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5633,"src":"5904:20:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5854,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8389,"src":"5880:23:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlManagerV8_$8389_$","typeString":"type(contract IAccessControlManagerV8)"}},"id":5856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5880:45:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5926:15:26","memberName":"isAllowedToCall","nodeType":"MemberAccess","referencedDeclaration":8377,"src":"5880:61:26","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":5861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5880:87:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6163636573732064656e696564","id":5862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5981:15:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff","typeString":"literal_string \"access denied\""},"value":"access denied"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff","typeString":"literal_string \"access denied\""}],"id":5853,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5859:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5859:147:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5864,"nodeType":"ExpressionStatement","src":"5859:147:26"}]},"documentation":{"id":5848,"nodeType":"StructuredDocumentation","src":"5608:170:26","text":" @notice Ensure that the caller has permission to execute a specific function\n @param functionSig_ Function signature to be checked for permission"},"id":5866,"implemented":true,"kind":"function","modifiers":[],"name":"_ensureAllowed","nameLocation":"5792:14:26","nodeType":"FunctionDefinition","parameters":{"id":5851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5850,"mutability":"mutable","name":"functionSig_","nameLocation":"5821:12:26","nodeType":"VariableDeclaration","scope":5866,"src":"5807:26:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5849,"name":"string","nodeType":"ElementaryTypeName","src":"5807:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5806:28:26"},"returnParameters":{"id":5852,"nodeType":"ParameterList","parameters":[],"src":"5849:0:26"},"scope":5867,"src":"5783:230:26","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":5868,"src":"696:5319:26","usedErrors":[5445],"usedEvents":[4081,4191,4196,5662,5668]}],"src":"42:5974:26"},"id":26},"contracts/Cross-chain/OmnichainExecutorOwner.sol":{"ast":{"absolutePath":"contracts/Cross-chain/OmnichainExecutorOwner.sol","exportedSymbols":{"AccessControlledV8":[8344],"IOmnichainGovernanceExecutor":[7931],"OmnichainExecutorOwner":[6183],"ensureNonzeroAddress":[5466]},"id":6184,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":5869,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:27"},{"absolutePath":"contracts/Governance/AccessControlledV8.sol","file":"../Governance/AccessControlledV8.sol","id":5871,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6184,"sourceUnit":8345,"src":"66:74:27","symbolAliases":[{"foreign":{"id":5870,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8344,"src":"75:18:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol","file":"./interfaces/IOmnichainGovernanceExecutor.sol","id":5873,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6184,"sourceUnit":7932,"src":"141:93:27","symbolAliases":[{"foreign":{"id":5872,"name":"IOmnichainGovernanceExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"150:28:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":5875,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6184,"sourceUnit":5482,"src":"235:98:27","symbolAliases":[{"foreign":{"id":5874,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"244:20:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5877,"name":"AccessControlledV8","nameLocations":["769:18:27"],"nodeType":"IdentifierPath","referencedDeclaration":8344,"src":"769:18:27"},"id":5878,"nodeType":"InheritanceSpecifier","src":"769:18:27"}],"canonicalName":"OmnichainExecutorOwner","contractDependencies":[],"contractKind":"contract","documentation":{"id":5876,"nodeType":"StructuredDocumentation","src":"335:397:27","text":" @title OmnichainExecutorOwner\n @author Venus\n @notice OmnichainProposalSender contract acts as a governance and access control mechanism,\n allowing owner to upsert signature of OmnichainGovernanceExecutor contract,\n also contains function to transfer the ownership of contract as well.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":6183,"linearizedBaseContracts":[6183,8344,3051,3183,3678,3352],"name":"OmnichainExecutorOwner","nameLocation":"743:22:27","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":5879,"nodeType":"StructuredDocumentation","src":"794:77:27","text":"  @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"5f21f75e","id":5882,"mutability":"immutable","name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nameLocation":"922:29:27","nodeType":"VariableDeclaration","scope":6183,"src":"876:75:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"},"typeName":{"id":5881,"nodeType":"UserDefinedTypeName","pathNode":{"id":5880,"name":"IOmnichainGovernanceExecutor","nameLocations":["876:28:27"],"nodeType":"IdentifierPath","referencedDeclaration":7931,"src":"876:28:27"},"referencedDeclaration":7931,"src":"876:28:27","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"}},"visibility":"public"},{"constant":false,"documentation":{"id":5883,"nodeType":"StructuredDocumentation","src":"958:94:27","text":" @notice Stores function signature corresponding to their 4 bytes hash value"},"functionSelector":"180d295c","id":5887,"mutability":"mutable","name":"functionRegistry","nameLocation":"1090:16:27","nodeType":"VariableDeclaration","scope":6183,"src":"1057:49:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string)"},"typeName":{"id":5886,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5884,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1065:6:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1057:25:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5885,"name":"string","nodeType":"ElementaryTypeName","src":"1075:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":5888,"nodeType":"StructuredDocumentation","src":"1113:71:27","text":" @notice Event emitted when function registry updated"},"eventSelector":"9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa","id":5894,"name":"FunctionRegistryChanged","nameLocation":"1195:23:27","nodeType":"EventDefinition","parameters":{"id":5893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5890,"indexed":true,"mutability":"mutable","name":"signature","nameLocation":"1234:9:27","nodeType":"VariableDeclaration","scope":5894,"src":"1219:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5889,"name":"string","nodeType":"ElementaryTypeName","src":"1219:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5892,"indexed":false,"mutability":"mutable","name":"active","nameLocation":"1250:6:27","nodeType":"VariableDeclaration","scope":5894,"src":"1245:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5891,"name":"bool","nodeType":"ElementaryTypeName","src":"1245:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1218:39:27"},"src":"1189:69:27"},{"body":{"id":5919,"nodeType":"Block","src":"1367:228:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5901,"name":"omnichainGovernanceExecutor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"1385:28:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1425:1:27","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":5903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1417:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5902,"name":"address","nodeType":"ElementaryTypeName","src":"1417:7:27","typeDescriptions":{}}},"id":5905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1417:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1385:42:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","id":5907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1429:26:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""},"value":"Address must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""}],"id":5900,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1377:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1377:79:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5909,"nodeType":"ExpressionStatement","src":"1377:79:27"},{"expression":{"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5910,"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"1466:29:27","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5912,"name":"omnichainGovernanceExecutor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"1527:28:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5911,"name":"IOmnichainGovernanceExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"1498:28:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOmnichainGovernanceExecutor_$7931_$","typeString":"type(contract IOmnichainGovernanceExecutor)"}},"id":5913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"}},"src":"1466:90:27","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"}},"id":5915,"nodeType":"ExpressionStatement","src":"1466:90:27"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5916,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"1566:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1566:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5918,"nodeType":"ExpressionStatement","src":"1566:22:27"}]},"documentation":{"id":5895,"nodeType":"StructuredDocumentation","src":"1264:48:27","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":5920,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5897,"mutability":"mutable","name":"omnichainGovernanceExecutor_","nameLocation":"1337:28:27","nodeType":"VariableDeclaration","scope":5920,"src":"1329:36:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5896,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1328:38:27"},"returnParameters":{"id":5899,"nodeType":"ParameterList","parameters":[],"src":"1367:0:27"},"scope":6183,"src":"1317:278:27","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5942,"nodeType":"Block","src":"1799:145:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5929,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5923,"src":"1817:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1850:1:27","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":5931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1842:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5930,"name":"address","nodeType":"ElementaryTypeName","src":"1842:7:27","typeDescriptions":{}}},"id":5933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1817:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","id":5935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1854:26:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""},"value":"Address must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""}],"id":5928,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1809:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:72:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5937,"nodeType":"ExpressionStatement","src":"1809:72:27"},{"expression":{"arguments":[{"id":5939,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5923,"src":"1915:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5938,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8240,"src":"1891:23:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1891:46:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5941,"nodeType":"ExpressionStatement","src":"1891:46:27"}]},"documentation":{"id":5921,"nodeType":"StructuredDocumentation","src":"1601:121:27","text":" @notice Initialize the contract\n @param accessControlManager_  Address of access control manager"},"functionSelector":"c4d66de8","id":5943,"implemented":true,"kind":"function","modifiers":[{"id":5926,"kind":"modifierInvocation","modifierName":{"id":5925,"name":"initializer","nameLocations":["1787:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":3254,"src":"1787:11:27"},"nodeType":"ModifierInvocation","src":"1787:11:27"}],"name":"initialize","nameLocation":"1736:10:27","nodeType":"FunctionDefinition","parameters":{"id":5924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5923,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1755:21:27","nodeType":"VariableDeclaration","scope":5943,"src":"1747:29:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5922,"name":"address","nodeType":"ElementaryTypeName","src":"1747:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1746:31:27"},"returnParameters":{"id":5927,"nodeType":"ParameterList","parameters":[],"src":"1799:0:27"},"scope":6183,"src":"1727:217:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5990,"nodeType":"Block","src":"2393:382:27","statements":[{"expression":{"arguments":[{"hexValue":"7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329","id":5952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2423:39:27","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":5951,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8343,"src":"2403:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":5953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2403:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5954,"nodeType":"ExpressionStatement","src":"2403:60:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":5958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5956,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"2481:11:27","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":5957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2496:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2481:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436861696e4964206d757374206e6f74206265207a65726f","id":5959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2499:26:27","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":5955,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2473:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5961,"nodeType":"ExpressionStatement","src":"2473:53:27"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":5969,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"2581:11:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2573:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":5967,"name":"bytes20","nodeType":"ElementaryTypeName","src":"2573:7:27","typeDescriptions":{}}},"id":5970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":5966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2565:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":5965,"name":"uint160","nodeType":"ElementaryTypeName","src":"2565:7:27","typeDescriptions":{}}},"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2565:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":5964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2557:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5963,"name":"address","nodeType":"ElementaryTypeName","src":"2557:7:27","typeDescriptions":{}}},"id":5972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2557:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5962,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"2536:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":5973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5974,"nodeType":"ExpressionStatement","src":"2536:60:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5976,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"2614:11:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":5977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2626:6:27","memberName":"length","nodeType":"MemberAccess","src":"2614:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3230","id":5978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2636:2:27","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"2614:24:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536f757263652061646472657373206d757374206265203230206279746573206c6f6e67","id":5980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2640:38:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3","typeString":"literal_string \"Source address must be 20 bytes long\""},"value":"Source address must be 20 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3","typeString":"literal_string \"Source address must be 20 bytes long\""}],"id":5975,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2606:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2606:73:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5982,"nodeType":"ExpressionStatement","src":"2606:73:27"},{"expression":{"arguments":[{"id":5986,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"2743:11:27","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":5987,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"2756:11:27","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":5983,"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"2689:29:27","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"}},"id":5985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2719:23:27","memberName":"setTrustedRemoteAddress","nodeType":"MemberAccess","referencedDeclaration":7930,"src":"2689:53:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory) external"}},"id":5988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2689:79:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5989,"nodeType":"ExpressionStatement","src":"2689:79:27"}]},"documentation":{"id":5944,"nodeType":"StructuredDocumentation","src":"1950:348:27","text":" @notice Sets the source message sender address\n @param srcChainId_ The LayerZero id of a source chain\n @param srcAddress_ The address of the contract on the source chain\n @custom:access Controlled by AccessControlManager\n @custom:event Emits SetTrustedRemoteAddress with source chain Id and source address"},"functionSelector":"a6c3d165","id":5991,"implemented":true,"kind":"function","modifiers":[],"name":"setTrustedRemoteAddress","nameLocation":"2312:23:27","nodeType":"FunctionDefinition","parameters":{"id":5949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5946,"mutability":"mutable","name":"srcChainId_","nameLocation":"2343:11:27","nodeType":"VariableDeclaration","scope":5991,"src":"2336:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5945,"name":"uint16","nodeType":"ElementaryTypeName","src":"2336:6:27","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":5948,"mutability":"mutable","name":"srcAddress_","nameLocation":"2371:11:27","nodeType":"VariableDeclaration","scope":5991,"src":"2356:26:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5947,"name":"bytes","nodeType":"ElementaryTypeName","src":"2356:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2335:48:27"},"returnParameters":{"id":5950,"nodeType":"ParameterList","parameters":[],"src":"2393:0:27"},"scope":6183,"src":"2303:472:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6040,"nodeType":"Block","src":"3099:305:27","statements":[{"assignments":[6000],"declarations":[{"constant":false,"id":6000,"mutability":"mutable","name":"fun","nameLocation":"3123:3:27","nodeType":"VariableDeclaration","scope":6040,"src":"3109:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5999,"name":"string","nodeType":"ElementaryTypeName","src":"3109:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":6005,"initialValue":{"baseExpression":{"id":6001,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"3129:16:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":6004,"indexExpression":{"expression":{"id":6002,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3146:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3150:3:27","memberName":"sig","nodeType":"MemberAccess","src":"3146:7:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3129:25:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3109:45:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6009,"name":"fun","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6000,"src":"3178:3:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3172:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6007,"name":"bytes","nodeType":"ElementaryTypeName","src":"3172:5:27","typeDescriptions":{}}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3172:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3183:6:27","memberName":"length","nodeType":"MemberAccess","src":"3172:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3193:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3172:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46756e6374696f6e206e6f7420666f756e64","id":6014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3196:20:27","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":6006,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3164:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6016,"nodeType":"ExpressionStatement","src":"3164:53:27"},{"expression":{"arguments":[{"id":6018,"name":"fun","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6000,"src":"3247:3:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6017,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8343,"src":"3227:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":6019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3227:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6020,"nodeType":"ExpressionStatement","src":"3227:24:27"},{"assignments":[6022,6024],"declarations":[{"constant":false,"id":6022,"mutability":"mutable","name":"ok","nameLocation":"3267:2:27","nodeType":"VariableDeclaration","scope":6040,"src":"3262:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6021,"name":"bool","nodeType":"ElementaryTypeName","src":"3262:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6024,"mutability":"mutable","name":"res","nameLocation":"3284:3:27","nodeType":"VariableDeclaration","scope":6040,"src":"3271:16:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6023,"name":"bytes","nodeType":"ElementaryTypeName","src":"3271:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6032,"initialValue":{"arguments":[{"id":6030,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5994,"src":"3335:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":6027,"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"3299:29:27","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"}],"id":6026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3291:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6025,"name":"address","nodeType":"ElementaryTypeName","src":"3291:7:27","typeDescriptions":{}}},"id":6028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3291:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3330:4:27","memberName":"call","nodeType":"MemberAccess","src":"3291:43: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":6031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3291:50:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3261:80:27"},{"expression":{"arguments":[{"id":6034,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6022,"src":"3359:2:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c206661696c6564","id":6035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3363:13:27","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":6033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3351:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3351:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6037,"nodeType":"ExpressionStatement","src":"3351:26:27"},{"expression":{"id":6038,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6024,"src":"3394:3:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5998,"id":6039,"nodeType":"Return","src":"3387:10:27"}]},"documentation":{"id":5992,"nodeType":"StructuredDocumentation","src":"2781:250:27","text":" @notice Invoked when called function does not exist in the contract\n @param data_ Calldata containing the encoded function call\n @return Result of function call\n @custom:access Controlled by Access Control Manager"},"id":6041,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5994,"mutability":"mutable","name":"data_","nameLocation":"3060:5:27","nodeType":"VariableDeclaration","scope":6041,"src":"3045:20:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5993,"name":"bytes","nodeType":"ElementaryTypeName","src":"3045:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3044:22:27"},"returnParameters":{"id":5998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6041,"src":"3085:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5996,"name":"bytes","nodeType":"ElementaryTypeName","src":"3085:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3084:14:27"},"scope":6183,"src":"3036:368:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6148,"nodeType":"Block","src":"3779:738:27","statements":[{"assignments":[6054],"declarations":[{"constant":false,"id":6054,"mutability":"mutable","name":"signatureLength","nameLocation":"3797:15:27","nodeType":"VariableDeclaration","scope":6148,"src":"3789:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6053,"name":"uint256","nodeType":"ElementaryTypeName","src":"3789:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6057,"initialValue":{"expression":{"id":6055,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6045,"src":"3815:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":6056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3827:6:27","memberName":"length","nodeType":"MemberAccess","src":"3815:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3789:44:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6059,"name":"signatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6054,"src":"3851:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6060,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6048,"src":"3870:7:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":6061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3878:6:27","memberName":"length","nodeType":"MemberAccess","src":"3870:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3851:33:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e70757420617272617973206d7573742068617665207468652073616d65206c656e677468","id":6063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3886:40:27","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":6058,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3843:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:84:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6065,"nodeType":"ExpressionStatement","src":"3843:84:27"},{"body":{"id":6146,"nodeType":"Block","src":"3979:532:27","statements":[{"assignments":[6076],"declarations":[{"constant":false,"id":6076,"mutability":"mutable","name":"sigHash","nameLocation":"4000:7:27","nodeType":"VariableDeclaration","scope":6146,"src":"3993:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6075,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3993:6:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":6088,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"id":6082,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6045,"src":"4033:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":6084,"indexExpression":{"id":6083,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"4045:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4033:14:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":6081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4027:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6080,"name":"bytes","nodeType":"ElementaryTypeName","src":"4027:5:27","typeDescriptions":{}}},"id":6085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4027:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":6079,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4017:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4017:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4010:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":6077,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4010:6:27","typeDescriptions":{}}},"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4010:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3993:57:27"},{"assignments":[6090],"declarations":[{"constant":false,"id":6090,"mutability":"mutable","name":"signature","nameLocation":"4077:9:27","nodeType":"VariableDeclaration","scope":6146,"src":"4064:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6089,"name":"bytes","nodeType":"ElementaryTypeName","src":"4064:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6097,"initialValue":{"arguments":[{"baseExpression":{"id":6093,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"4095:16:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":6095,"indexExpression":{"id":6094,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"4112:7:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4095:25:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":6092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4089:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6091,"name":"bytes","nodeType":"ElementaryTypeName","src":"4089:5:27","typeDescriptions":{}}},"id":6096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4089:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4064:57:27"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6098,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6048,"src":"4139:7:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":6100,"indexExpression":{"id":6099,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"4147:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4139:10:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6101,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"4153:9:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4163:6:27","memberName":"length","nodeType":"MemberAccess","src":"4153:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4173:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4153:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4139:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4329:11:27","subExpression":{"baseExpression":{"id":6122,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6048,"src":"4330:7:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":6124,"indexExpression":{"id":6123,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"4338:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4330:10:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6126,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"4344:9:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4354:6:27","memberName":"length","nodeType":"MemberAccess","src":"4344:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4364:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4344:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4329:36:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6144,"nodeType":"IfStatement","src":"4325:176:27","trueBody":{"id":6143,"nodeType":"Block","src":"4367:134:27","statements":[{"expression":{"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4385:32:27","subExpression":{"baseExpression":{"id":6131,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"4392:16:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":6133,"indexExpression":{"id":6132,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"4409:7:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4392:25:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6135,"nodeType":"ExpressionStatement","src":"4385:32:27"},{"eventCall":{"arguments":[{"baseExpression":{"id":6137,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6045,"src":"4464:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":6139,"indexExpression":{"id":6138,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"4476:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4464:14:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"hexValue":"66616c7365","id":6140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4480:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6136,"name":"FunctionRegistryChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"4440:23:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool)"}},"id":6141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4440:46:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6142,"nodeType":"EmitStatement","src":"4435:51:27"}]}},"id":6145,"nodeType":"IfStatement","src":"4135:366:27","trueBody":{"id":6121,"nodeType":"Block","src":"4176:143:27","statements":[{"expression":{"id":6112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6106,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"4194:16:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":6108,"indexExpression":{"id":6107,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"4211:7:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4194:25:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":6109,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6045,"src":"4222:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":6111,"indexExpression":{"id":6110,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"4234:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4222:14:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"4194:42:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6113,"nodeType":"ExpressionStatement","src":"4194:42:27"},{"eventCall":{"arguments":[{"baseExpression":{"id":6115,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6045,"src":"4283:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":6117,"indexExpression":{"id":6116,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"4295:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4283:14:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"hexValue":"74727565","id":6118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4299:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6114,"name":"FunctionRegistryChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"4259:23:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool)"}},"id":6119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4259:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6120,"nodeType":"EmitStatement","src":"4254:50:27"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6069,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"3953:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6070,"name":"signatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6054,"src":"3957:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3953:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6147,"initializationExpression":{"assignments":[6067],"declarations":[{"constant":false,"id":6067,"mutability":"mutable","name":"i","nameLocation":"3950:1:27","nodeType":"VariableDeclaration","scope":6147,"src":"3942:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6066,"name":"uint256","nodeType":"ElementaryTypeName","src":"3942:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6068,"nodeType":"VariableDeclarationStatement","src":"3942:9:27"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3974:3:27","subExpression":{"id":6072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"3976:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6074,"nodeType":"ExpressionStatement","src":"3974:3:27"},"nodeType":"ForStatement","src":"3937:574:27"}]},"documentation":{"id":6042,"nodeType":"StructuredDocumentation","src":"3410:264:27","text":" @notice A 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"},"functionSelector":"4bb7453e","id":6149,"implemented":true,"kind":"function","modifiers":[{"id":6051,"kind":"modifierInvocation","modifierName":{"id":6050,"name":"onlyOwner","nameLocations":["3769:9:27"],"nodeType":"IdentifierPath","referencedDeclaration":3097,"src":"3769:9:27"},"nodeType":"ModifierInvocation","src":"3769:9:27"}],"name":"upsertSignature","nameLocation":"3688:15:27","nodeType":"FunctionDefinition","parameters":{"id":6049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6045,"mutability":"mutable","name":"signatures_","nameLocation":"3722:11:27","nodeType":"VariableDeclaration","scope":6149,"src":"3704:29:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6043,"name":"string","nodeType":"ElementaryTypeName","src":"3704:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6044,"nodeType":"ArrayTypeName","src":"3704:8:27","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":6048,"mutability":"mutable","name":"active_","nameLocation":"3751:7:27","nodeType":"VariableDeclaration","scope":6149,"src":"3735:23:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":6046,"name":"bool","nodeType":"ElementaryTypeName","src":"3735:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6047,"nodeType":"ArrayTypeName","src":"3735:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3703:56:27"},"returnParameters":{"id":6052,"nodeType":"ParameterList","parameters":[],"src":"3779:0:27"},"scope":6183,"src":"3679:838:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6175,"nodeType":"Block","src":"4818:210:27","statements":[{"expression":{"arguments":[{"hexValue":"7472616e736665724272696467654f776e657273686970286164647265737329","id":6156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4848:34:27","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":6155,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8343,"src":"4828:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":6157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4828:55:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6158,"nodeType":"ExpressionStatement","src":"4828:55:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6160,"name":"newOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"4901:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4922:1:27","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":6162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4914:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6161,"name":"address","nodeType":"ElementaryTypeName","src":"4914:7:27","typeDescriptions":{}}},"id":6164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4914:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4901:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","id":6166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4926:26:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""},"value":"Address must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0","typeString":"literal_string \"Address must not be zero\""}],"id":6159,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4893:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4893:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6168,"nodeType":"ExpressionStatement","src":"4893:60:27"},{"expression":{"arguments":[{"id":6172,"name":"newOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"5011:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6169,"name":"OMNICHAIN_GOVERNANCE_EXECUTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"4963:29:27","typeDescriptions":{"typeIdentifier":"t_contract$_IOmnichainGovernanceExecutor_$7931","typeString":"contract IOmnichainGovernanceExecutor"}},"id":6171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4993:17:27","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":7922,"src":"4963:47:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":6173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4963:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6174,"nodeType":"ExpressionStatement","src":"4963:58:27"}]},"documentation":{"id":6150,"nodeType":"StructuredDocumentation","src":"4523:228:27","text":" @notice This function transfer the ownership of the executor from this contract to new owner\n @param newOwner_ New owner of the governanceExecutor\n @custom:access Controlled by AccessControlManager"},"functionSelector":"3f90b540","id":6176,"implemented":true,"kind":"function","modifiers":[],"name":"transferBridgeOwnership","nameLocation":"4766:23:27","nodeType":"FunctionDefinition","parameters":{"id":6153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6152,"mutability":"mutable","name":"newOwner_","nameLocation":"4798:9:27","nodeType":"VariableDeclaration","scope":6176,"src":"4790:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6151,"name":"address","nodeType":"ElementaryTypeName","src":"4790:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4789:19:27"},"returnParameters":{"id":6154,"nodeType":"ParameterList","parameters":[],"src":"4818:0:27"},"scope":6183,"src":"4757:271:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3134],"body":{"id":6181,"nodeType":"Block","src":"5188:2:27","statements":[]},"documentation":{"id":6177,"nodeType":"StructuredDocumentation","src":"5034:96:27","text":"  @notice Empty implementation of renounce ownership to avoid any mishappening"},"functionSelector":"715018a6","id":6182,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"5144:17:27","nodeType":"FunctionDefinition","overrides":{"id":6179,"nodeType":"OverrideSpecifier","overrides":[],"src":"5179:8:27"},"parameters":{"id":6178,"nodeType":"ParameterList","parameters":[],"src":"5161:2:27"},"returnParameters":{"id":6180,"nodeType":"ParameterList","parameters":[],"src":"5188:0:27"},"scope":6183,"src":"5135:55:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":6184,"src":"734:4458:27","usedErrors":[5445,8225],"usedEvents":[2977,3068,3198,5894,8216]}],"src":"41:5152:27"},"id":27},"contracts/Cross-chain/OmnichainGovernanceExecutor.sol":{"ast":{"absolutePath":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol","exportedSymbols":{"BaseOmnichainControllerDest":[5615],"BytesLib":[332],"ExcessivelySafeCall":[429],"ITimelock":[8011],"OmnichainGovernanceExecutor":[7192],"ReentrancyGuard":[4342],"ensureNonzeroAddress":[5466]},"id":7193,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6185,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"32:23:28"},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":6187,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7193,"sourceUnit":4343,"src":"57:87:28","symbolAliases":[{"foreign":{"id":6186,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4342,"src":"66:15:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol","file":"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol","id":6189,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7193,"sourceUnit":333,"src":"145:93:28","symbolAliases":[{"foreign":{"id":6188,"name":"BytesLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"154:8:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","file":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","id":6191,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7193,"sourceUnit":430,"src":"239:115:28","symbolAliases":[{"foreign":{"id":6190,"name":"ExcessivelySafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"248:19:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":6193,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7193,"sourceUnit":5482,"src":"355:98:28","symbolAliases":[{"foreign":{"id":6192,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"364:20:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Cross-chain/BaseOmnichainControllerDest.sol","file":"./BaseOmnichainControllerDest.sol","id":6195,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7193,"sourceUnit":5616,"src":"454:80:28","symbolAliases":[{"foreign":{"id":6194,"name":"BaseOmnichainControllerDest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5615,"src":"463:27:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Cross-chain/interfaces/ITimelock.sol","file":"./interfaces/ITimelock.sol","id":6197,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7193,"sourceUnit":8012,"src":"535:55:28","symbolAliases":[{"foreign":{"id":6196,"name":"ITimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8011,"src":"544:9:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6199,"name":"ReentrancyGuard","nameLocations":["1153:15:28"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"1153:15:28"},"id":6200,"nodeType":"InheritanceSpecifier","src":"1153:15:28"},{"baseName":{"id":6201,"name":"BaseOmnichainControllerDest","nameLocations":["1170:27:28"],"nodeType":"IdentifierPath","referencedDeclaration":5615,"src":"1170:27:28"},"id":6202,"nodeType":"InheritanceSpecifier","src":"1170:27:28"}],"canonicalName":"OmnichainGovernanceExecutor","contractDependencies":[],"contractKind":"contract","documentation":{"id":6198,"nodeType":"StructuredDocumentation","src":"592:520:28","text":" @title OmnichainGovernanceExecutor\n @notice Executes the proposal transactions sent from the main chain\n @dev The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor\n This implementation is non-blocking, meaning the failed messages will not block the future messages from the source.\n For the blocking behavior, derive the contract from LzApp.\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":7192,"linearizedBaseContracts":[7192,5615,4288,1212,971,1402,1371,4180,4364,4342],"name":"OmnichainGovernanceExecutor","nameLocation":"1122:27:28","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6205,"libraryName":{"id":6203,"name":"BytesLib","nameLocations":["1210:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":332,"src":"1210:8:28"},"nodeType":"UsingForDirective","src":"1204:25:28","typeName":{"id":6204,"name":"bytes","nodeType":"ElementaryTypeName","src":"1223:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":6208,"libraryName":{"id":6206,"name":"ExcessivelySafeCall","nameLocations":["1240:19:28"],"nodeType":"IdentifierPath","referencedDeclaration":429,"src":"1240:19:28"},"nodeType":"UsingForDirective","src":"1234:38:28","typeName":{"id":6207,"name":"address","nodeType":"ElementaryTypeName","src":"1264:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"OmnichainGovernanceExecutor.ProposalType","id":6212,"members":[{"id":6209,"name":"NORMAL","nameLocation":"1306:6:28","nodeType":"EnumValue","src":"1306:6:28"},{"id":6210,"name":"FASTTRACK","nameLocation":"1322:9:28","nodeType":"EnumValue","src":"1322:9:28"},{"id":6211,"name":"CRITICAL","nameLocation":"1341:8:28","nodeType":"EnumValue","src":"1341:8:28"}],"name":"ProposalType","nameLocation":"1283:12:28","nodeType":"EnumDefinition","src":"1278:77:28"},{"canonicalName":"OmnichainGovernanceExecutor.Proposal","id":6244,"members":[{"constant":false,"id":6215,"mutability":"mutable","name":"id","nameLocation":"1446:2:28","nodeType":"VariableDeclaration","scope":6244,"src":"1438:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6214,"name":"uint256","nodeType":"ElementaryTypeName","src":"1438:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6218,"mutability":"mutable","name":"eta","nameLocation":"1573:3:28","nodeType":"VariableDeclaration","scope":6244,"src":"1565:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6217,"name":"uint256","nodeType":"ElementaryTypeName","src":"1565:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6222,"mutability":"mutable","name":"targets","nameLocation":"1669:7:28","nodeType":"VariableDeclaration","scope":6244,"src":"1659:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6220,"name":"address","nodeType":"ElementaryTypeName","src":"1659:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6221,"nodeType":"ArrayTypeName","src":"1659:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6226,"mutability":"mutable","name":"values","nameLocation":"1792:6:28","nodeType":"VariableDeclaration","scope":6244,"src":"1782:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6224,"name":"uint256","nodeType":"ElementaryTypeName","src":"1782:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6225,"nodeType":"ArrayTypeName","src":"1782:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6230,"mutability":"mutable","name":"signatures","nameLocation":"1885:10:28","nodeType":"VariableDeclaration","scope":6244,"src":"1876:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6228,"name":"string","nodeType":"ElementaryTypeName","src":"1876:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6229,"nodeType":"ArrayTypeName","src":"1876:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":6234,"mutability":"mutable","name":"calldatas","nameLocation":"1983:9:28","nodeType":"VariableDeclaration","scope":6244,"src":"1975:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6232,"name":"bytes","nodeType":"ElementaryTypeName","src":"1975:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6233,"nodeType":"ArrayTypeName","src":"1975:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6237,"mutability":"mutable","name":"canceled","nameLocation":"2074:8:28","nodeType":"VariableDeclaration","scope":6244,"src":"2069:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6236,"name":"bool","nodeType":"ElementaryTypeName","src":"2069:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6240,"mutability":"mutable","name":"executed","nameLocation":"2164:8:28","nodeType":"VariableDeclaration","scope":6244,"src":"2159:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6239,"name":"bool","nodeType":"ElementaryTypeName","src":"2159:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6243,"mutability":"mutable","name":"proposalType","nameLocation":"2228:12:28","nodeType":"VariableDeclaration","scope":6244,"src":"2222:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6242,"name":"uint8","nodeType":"ElementaryTypeName","src":"2222:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1368:8:28","nodeType":"StructDefinition","scope":7192,"src":"1361:886:28","visibility":"public"},{"canonicalName":"OmnichainGovernanceExecutor.ProposalState","id":6248,"members":[{"id":6245,"name":"Canceled","nameLocation":"2353:8:28","nodeType":"EnumValue","src":"2353:8:28"},{"id":6246,"name":"Queued","nameLocation":"2371:6:28","nodeType":"EnumValue","src":"2371:6:28"},{"id":6247,"name":"Executed","nameLocation":"2387:8:28","nodeType":"EnumValue","src":"2387:8:28"}],"name":"ProposalState","nameLocation":"2329:13:28","nodeType":"EnumDefinition","src":"2324:77:28"},{"constant":false,"documentation":{"id":6249,"nodeType":"StructuredDocumentation","src":"2407:73:28","text":" @notice A privileged role that can cancel any proposal"},"functionSelector":"452a9320","id":6251,"mutability":"mutable","name":"guardian","nameLocation":"2500:8:28","nodeType":"VariableDeclaration","scope":7192,"src":"2485:23:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6250,"name":"address","nodeType":"ElementaryTypeName","src":"2485:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":6252,"nodeType":"StructuredDocumentation","src":"2515:65:28","text":" @notice Stores BNB chain layerzero endpoint id"},"functionSelector":"49d12605","id":6254,"mutability":"mutable","name":"srcChainId","nameLocation":"2599:10:28","nodeType":"VariableDeclaration","scope":7192,"src":"2585:24:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6253,"name":"uint16","nodeType":"ElementaryTypeName","src":"2585:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"public"},{"constant":false,"documentation":{"id":6255,"nodeType":"StructuredDocumentation","src":"2616:55:28","text":" @notice Last proposal count received"},"functionSelector":"4406baaf","id":6257,"mutability":"mutable","name":"lastProposalReceived","nameLocation":"2691:20:28","nodeType":"VariableDeclaration","scope":7192,"src":"2676:35:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6256,"name":"uint256","nodeType":"ElementaryTypeName","src":"2676:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":6258,"nodeType":"StructuredDocumentation","src":"2718:77:28","text":" @notice The official record of all proposals ever proposed"},"functionSelector":"013cf08b","id":6263,"mutability":"mutable","name":"proposals","nameLocation":"2836:9:28","nodeType":"VariableDeclaration","scope":7192,"src":"2800:45:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$6244_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal)"},"typeName":{"id":6262,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6259,"name":"uint256","nodeType":"ElementaryTypeName","src":"2808:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2800:28:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$6244_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6261,"nodeType":"UserDefinedTypeName","pathNode":{"id":6260,"name":"Proposal","nameLocations":["2819:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":6244,"src":"2819:8:28"},"referencedDeclaration":6244,"src":"2819:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}}},"visibility":"public"},{"constant":false,"documentation":{"id":6264,"nodeType":"StructuredDocumentation","src":"2852:87:28","text":" @notice Mapping containing Timelock addresses for each proposal type"},"functionSelector":"ee9799ee","id":6269,"mutability":"mutable","name":"proposalTimelocks","nameLocation":"2981:17:28","nodeType":"VariableDeclaration","scope":7192,"src":"2944:54:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"},"typeName":{"id":6268,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6265,"name":"uint256","nodeType":"ElementaryTypeName","src":"2952:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2944:29:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6267,"nodeType":"UserDefinedTypeName","pathNode":{"id":6266,"name":"ITimelock","nameLocations":["2963:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":8011,"src":"2963:9:28"},"referencedDeclaration":8011,"src":"2963:9:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}}},"visibility":"public"},{"constant":false,"documentation":{"id":6270,"nodeType":"StructuredDocumentation","src":"3005:61:28","text":" @notice Represents queue state of proposal"},"functionSelector":"9f0c3101","id":6274,"mutability":"mutable","name":"queued","nameLocation":"3103:6:28","nodeType":"VariableDeclaration","scope":7192,"src":"3071:38:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":6273,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6271,"name":"uint256","nodeType":"ElementaryTypeName","src":"3079:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3071:24:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6272,"name":"bool","nodeType":"ElementaryTypeName","src":"3090:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":6275,"nodeType":"StructuredDocumentation","src":"3116:60:28","text":" @notice Emitted when proposal is received"},"eventSelector":"c37d19c9a6a9a568b5071658f9b5082ff8f142df3cf090385c5621ab11938065","id":6293,"name":"ProposalReceived","nameLocation":"3187:16:28","nodeType":"EventDefinition","parameters":{"id":6292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6277,"indexed":true,"mutability":"mutable","name":"proposalId","nameLocation":"3229:10:28","nodeType":"VariableDeclaration","scope":6293,"src":"3213:26:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6276,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6280,"indexed":false,"mutability":"mutable","name":"targets","nameLocation":"3259:7:28","nodeType":"VariableDeclaration","scope":6293,"src":"3249:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6278,"name":"address","nodeType":"ElementaryTypeName","src":"3249:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6279,"nodeType":"ArrayTypeName","src":"3249:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6283,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"3286:6:28","nodeType":"VariableDeclaration","scope":6293,"src":"3276:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6281,"name":"uint256","nodeType":"ElementaryTypeName","src":"3276:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6282,"nodeType":"ArrayTypeName","src":"3276:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6286,"indexed":false,"mutability":"mutable","name":"signatures","nameLocation":"3311:10:28","nodeType":"VariableDeclaration","scope":6293,"src":"3302:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6284,"name":"string","nodeType":"ElementaryTypeName","src":"3302:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6285,"nodeType":"ArrayTypeName","src":"3302:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":6289,"indexed":false,"mutability":"mutable","name":"calldatas","nameLocation":"3339:9:28","nodeType":"VariableDeclaration","scope":6293,"src":"3331:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6287,"name":"bytes","nodeType":"ElementaryTypeName","src":"3331:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6288,"nodeType":"ArrayTypeName","src":"3331:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6291,"indexed":false,"mutability":"mutable","name":"proposalType","nameLocation":"3364:12:28","nodeType":"VariableDeclaration","scope":6293,"src":"3358:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6290,"name":"uint8","nodeType":"ElementaryTypeName","src":"3358:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3203:179:28"},"src":"3181:202:28"},{"anonymous":false,"documentation":{"id":6294,"nodeType":"StructuredDocumentation","src":"3389:58:28","text":" @notice Emitted when proposal is queued"},"eventSelector":"9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892","id":6300,"name":"ProposalQueued","nameLocation":"3458:14:28","nodeType":"EventDefinition","parameters":{"id":6299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6296,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3489:2:28","nodeType":"VariableDeclaration","scope":6300,"src":"3473:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6295,"name":"uint256","nodeType":"ElementaryTypeName","src":"3473:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6298,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"3501:3:28","nodeType":"VariableDeclaration","scope":6300,"src":"3493:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6297,"name":"uint256","nodeType":"ElementaryTypeName","src":"3493:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3472:33:28"},"src":"3452:54:28"},{"anonymous":false,"documentation":{"id":6301,"nodeType":"StructuredDocumentation","src":"3512:49:28","text":" Emitted when proposal executed"},"eventSelector":"712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f","id":6305,"name":"ProposalExecuted","nameLocation":"3572:16:28","nodeType":"EventDefinition","parameters":{"id":6304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6303,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3605:2:28","nodeType":"VariableDeclaration","scope":6305,"src":"3589:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6302,"name":"uint256","nodeType":"ElementaryTypeName","src":"3589:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3588:20:28"},"src":"3566:43:28"},{"anonymous":false,"documentation":{"id":6306,"nodeType":"StructuredDocumentation","src":"3615:55:28","text":" @notice Emitted when proposal failed"},"eventSelector":"41d73ce7be31a588d59fe9013cdcfe583bc0aab25093d042b64cade0df730656","id":6316,"name":"ReceivePayloadFailed","nameLocation":"3681:20:28","nodeType":"EventDefinition","parameters":{"id":6315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6308,"indexed":true,"mutability":"mutable","name":"srcChainId","nameLocation":"3717:10:28","nodeType":"VariableDeclaration","scope":6316,"src":"3702:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6307,"name":"uint16","nodeType":"ElementaryTypeName","src":"3702:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":6310,"indexed":true,"mutability":"mutable","name":"srcAddress","nameLocation":"3743:10:28","nodeType":"VariableDeclaration","scope":6316,"src":"3729:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6309,"name":"bytes","nodeType":"ElementaryTypeName","src":"3729:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6312,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3762:5:28","nodeType":"VariableDeclaration","scope":6316,"src":"3755:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6311,"name":"uint64","nodeType":"ElementaryTypeName","src":"3755:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":6314,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"3775:6:28","nodeType":"VariableDeclaration","scope":6316,"src":"3769:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6313,"name":"bytes","nodeType":"ElementaryTypeName","src":"3769:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3701:81:28"},"src":"3675:108:28"},{"anonymous":false,"documentation":{"id":6317,"nodeType":"StructuredDocumentation","src":"3789:60:28","text":" @notice Emitted when proposal is canceled"},"eventSelector":"789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c","id":6321,"name":"ProposalCanceled","nameLocation":"3860:16:28","nodeType":"EventDefinition","parameters":{"id":6320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6319,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3893:2:28","nodeType":"VariableDeclaration","scope":6321,"src":"3877:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6318,"name":"uint256","nodeType":"ElementaryTypeName","src":"3877:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3876:20:28"},"src":"3854:43:28"},{"anonymous":false,"documentation":{"id":6322,"nodeType":"StructuredDocumentation","src":"3903:54:28","text":" @notice Emitted when timelock added"},"eventSelector":"fc45ae51ac4893a3f843d030fbfd4037c0c196109c9e667645b8f144c83c16ea","id":6330,"name":"TimelockAdded","nameLocation":"3968:13:28","nodeType":"EventDefinition","parameters":{"id":6329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6324,"indexed":false,"mutability":"mutable","name":"routeType","nameLocation":"3988:9:28","nodeType":"VariableDeclaration","scope":6330,"src":"3982:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6323,"name":"uint8","nodeType":"ElementaryTypeName","src":"3982:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6326,"indexed":true,"mutability":"mutable","name":"oldTimelock","nameLocation":"4015:11:28","nodeType":"VariableDeclaration","scope":6330,"src":"3999:27:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6325,"name":"address","nodeType":"ElementaryTypeName","src":"3999:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6328,"indexed":true,"mutability":"mutable","name":"newTimelock","nameLocation":"4044:11:28","nodeType":"VariableDeclaration","scope":6330,"src":"4028:27:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6327,"name":"address","nodeType":"ElementaryTypeName","src":"4028:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3981:75:28"},"src":"3962:95:28"},{"anonymous":false,"documentation":{"id":6331,"nodeType":"StructuredDocumentation","src":"4063:79:28","text":" @notice Emitted when source layerzero endpoint id is updated"},"eventSelector":"b17c58d5977290696b6eea77c81c725f3dc83e426252bd9ece6287c1b8d0e968","id":6337,"name":"SetSrcChainId","nameLocation":"4153:13:28","nodeType":"EventDefinition","parameters":{"id":6336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6333,"indexed":true,"mutability":"mutable","name":"oldSrcChainId","nameLocation":"4182:13:28","nodeType":"VariableDeclaration","scope":6337,"src":"4167:28:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6332,"name":"uint16","nodeType":"ElementaryTypeName","src":"4167:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":6335,"indexed":true,"mutability":"mutable","name":"newSrcChainId","nameLocation":"4212:13:28","nodeType":"VariableDeclaration","scope":6337,"src":"4197:28:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6334,"name":"uint16","nodeType":"ElementaryTypeName","src":"4197:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4166:60:28"},"src":"4147:80:28"},{"anonymous":false,"documentation":{"id":6338,"nodeType":"StructuredDocumentation","src":"4233:67:28","text":" @notice Emitted when new guardian address is set"},"eventSelector":"08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e3","id":6344,"name":"NewGuardian","nameLocation":"4311:11:28","nodeType":"EventDefinition","parameters":{"id":6343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6340,"indexed":true,"mutability":"mutable","name":"oldGuardian","nameLocation":"4339:11:28","nodeType":"VariableDeclaration","scope":6344,"src":"4323:27:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6339,"name":"address","nodeType":"ElementaryTypeName","src":"4323:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6342,"indexed":true,"mutability":"mutable","name":"newGuardian","nameLocation":"4368:11:28","nodeType":"VariableDeclaration","scope":6344,"src":"4352:27:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6341,"name":"address","nodeType":"ElementaryTypeName","src":"4352:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4322:58:28"},"src":"4305:76:28"},{"anonymous":false,"documentation":{"id":6345,"nodeType":"StructuredDocumentation","src":"4387:76:28","text":" @notice Emitted when pending admin of Timelock is updated"},"eventSelector":"6ac0b2c896b49975f12891f83c573bdf05490fe6b707cbaa2ba84c36094cbaec","id":6351,"name":"SetTimelockPendingAdmin","nameLocation":"4474:23:28","nodeType":"EventDefinition","parameters":{"id":6350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6347,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6351,"src":"4498:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6346,"name":"address","nodeType":"ElementaryTypeName","src":"4498:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6349,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6351,"src":"4507:5:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6348,"name":"uint8","nodeType":"ElementaryTypeName","src":"4507:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4497:16:28"},"src":"4468:46:28"},{"documentation":{"id":6352,"nodeType":"StructuredDocumentation","src":"4520:61:28","text":" @notice Thrown when proposal ID is invalid"},"errorSelector":"0992f7ad","id":6354,"name":"InvalidProposalId","nameLocation":"4592:17:28","nodeType":"ErrorDefinition","parameters":{"id":6353,"nodeType":"ParameterList","parameters":[],"src":"4609:2:28"},"src":"4586:26:28"},{"body":{"id":6378,"nodeType":"Block","src":"4727:112:28","statements":[{"expression":{"arguments":[{"id":6367,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6358,"src":"4758:9:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6366,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"4737:20:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4737:31:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6369,"nodeType":"ExpressionStatement","src":"4737:31:28"},{"expression":{"id":6372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6370,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"4778:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6371,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6358,"src":"4789:9:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4778:20:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6373,"nodeType":"ExpressionStatement","src":"4778:20:28"},{"expression":{"id":6376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6374,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6254,"src":"4808:10:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6375,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6360,"src":"4821:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4808:24:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":6377,"nodeType":"ExpressionStatement","src":"4808:24:28"}]},"id":6379,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":6363,"name":"endpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6356,"src":"4716:9:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":6364,"kind":"baseConstructorSpecifier","modifierName":{"id":6362,"name":"BaseOmnichainControllerDest","nameLocations":["4688:27:28"],"nodeType":"IdentifierPath","referencedDeclaration":5615,"src":"4688:27:28"},"nodeType":"ModifierInvocation","src":"4688:38:28"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6356,"mutability":"mutable","name":"endpoint_","nameLocation":"4638:9:28","nodeType":"VariableDeclaration","scope":6379,"src":"4630:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6355,"name":"address","nodeType":"ElementaryTypeName","src":"4630:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6358,"mutability":"mutable","name":"guardian_","nameLocation":"4657:9:28","nodeType":"VariableDeclaration","scope":6379,"src":"4649:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6357,"name":"address","nodeType":"ElementaryTypeName","src":"4649:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6360,"mutability":"mutable","name":"srcChainId_","nameLocation":"4675:11:28","nodeType":"VariableDeclaration","scope":6379,"src":"4668:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6359,"name":"uint16","nodeType":"ElementaryTypeName","src":"4668:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4629:58:28"},"returnParameters":{"id":6365,"nodeType":"ParameterList","parameters":[],"src":"4727:0:28"},"scope":7192,"src":"4618:221:28","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6396,"nodeType":"Block","src":"5134:94:28","statements":[{"eventCall":{"arguments":[{"id":6388,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6254,"src":"5163:10:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":6389,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6382,"src":"5175:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":6387,"name":"SetSrcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6337,"src":"5149:13:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint16_$returns$__$","typeString":"function (uint16,uint16)"}},"id":6390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5149:38:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6391,"nodeType":"EmitStatement","src":"5144:43:28"},{"expression":{"id":6394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6392,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6254,"src":"5197:10:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6393,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6382,"src":"5210:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5197:24:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":6395,"nodeType":"ExpressionStatement","src":"5197:24:28"}]},"documentation":{"id":6380,"nodeType":"StructuredDocumentation","src":"4845:222:28","text":" @notice Update source layerzero endpoint id\n @param srcChainId_ The new source chain id to be set\n @custom:event Emit SetSrcChainId with old and new source id\n @custom:access Only owner"},"functionSelector":"c8b42e5b","id":6397,"implemented":true,"kind":"function","modifiers":[{"id":6385,"kind":"modifierInvocation","modifierName":{"id":6384,"name":"onlyOwner","nameLocations":["5124:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"5124:9:28"},"nodeType":"ModifierInvocation","src":"5124:9:28"}],"name":"setSrcChainId","nameLocation":"5081:13:28","nodeType":"FunctionDefinition","parameters":{"id":6383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6382,"mutability":"mutable","name":"srcChainId_","nameLocation":"5102:11:28","nodeType":"VariableDeclaration","scope":6397,"src":"5095:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6381,"name":"uint16","nodeType":"ElementaryTypeName","src":"5095:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5094:20:28"},"returnParameters":{"id":6386,"nodeType":"ParameterList","parameters":[],"src":"5134:0:28"},"scope":7192,"src":"5072:156:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6430,"nodeType":"Block","src":"5533:299:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6404,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5564:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5568:6:28","memberName":"sender","nodeType":"MemberAccess","src":"5564:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6406,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"5578:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5564:22:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6408,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5590:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5594:6:28","memberName":"sender","nodeType":"MemberAccess","src":"5590:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6410,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4108,"src":"5604:5:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5604:7:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5590:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5564:47:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a736574477561726469616e3a206f776e6572206f7220677561726469616e206f6e6c79","id":6414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5625:66:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9","typeString":"literal_string \"OmnichainGovernanceExecutor::setGuardian: owner or guardian only\""},"value":"OmnichainGovernanceExecutor::setGuardian: owner or guardian only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9","typeString":"literal_string \"OmnichainGovernanceExecutor::setGuardian: owner or guardian only\""}],"id":6403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5543:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5543:158:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6416,"nodeType":"ExpressionStatement","src":"5543:158:28"},{"expression":{"arguments":[{"id":6418,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6400,"src":"5732:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6417,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"5711:20:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5711:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6420,"nodeType":"ExpressionStatement","src":"5711:33:28"},{"eventCall":{"arguments":[{"id":6422,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"5771:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6423,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6400,"src":"5781:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6421,"name":"NewGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6344,"src":"5759:11:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5759:34:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6425,"nodeType":"EmitStatement","src":"5754:39:28"},{"expression":{"id":6428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6426,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"5803:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6427,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6400,"src":"5814:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5803:22:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6429,"nodeType":"ExpressionStatement","src":"5803:22:28"}]},"documentation":{"id":6398,"nodeType":"StructuredDocumentation","src":"5234:243:28","text":" @notice Sets the new executor guardian\n @param newGuardian The address of the new guardian\n @custom:access Must be call by guardian or owner\n @custom:event Emit NewGuardian with old and new guardian address"},"functionSelector":"8a0dac4a","id":6431,"implemented":true,"kind":"function","modifiers":[],"name":"setGuardian","nameLocation":"5491:11:28","nodeType":"FunctionDefinition","parameters":{"id":6401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6400,"mutability":"mutable","name":"newGuardian","nameLocation":"5511:11:28","nodeType":"VariableDeclaration","scope":6431,"src":"5503:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6399,"name":"address","nodeType":"ElementaryTypeName","src":"5503:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5502:21:28"},"returnParameters":{"id":6402,"nodeType":"ParameterList","parameters":[],"src":"5533:0:28"},"scope":7192,"src":"5482:350:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6505,"nodeType":"Block","src":"6166:504:28","statements":[{"assignments":[6442],"declarations":[{"constant":false,"id":6442,"mutability":"mutable","name":"length","nameLocation":"6182:6:28","nodeType":"VariableDeclaration","scope":6505,"src":"6176:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6441,"name":"uint8","nodeType":"ElementaryTypeName","src":"6176:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":6452,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":6446,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"6202:12:28","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$6212_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_enum$_ProposalType_$6212_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}],"id":6445,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6197:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6197:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_enum$_ProposalType_$6212","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}},"id":6448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6216:3:28","memberName":"max","nodeType":"MemberAccess","src":"6197:22:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$6212","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$6212","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}],"id":6444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6191:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6443,"name":"uint8","nodeType":"ElementaryTypeName","src":"6191:5:28","typeDescriptions":{}}},"id":6449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6191:29:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":6450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6223:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6191:33:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"6176:48:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6454,"name":"timelocks_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6436,"src":"6255:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$8011_$dyn_memory_ptr","typeString":"contract ITimelock[] memory"}},"id":6455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6266:6:28","memberName":"length","nodeType":"MemberAccess","src":"6255:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6456,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6442,"src":"6276:6:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6255:27:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a61646454696d656c6f636b733a6e756d626572206f662074696d656c6f636b732073686f756c64206d6174636820746865206e756d626572206f6620676f7665726e616e636520726f75746573","id":6458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6296:108:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4","typeString":"literal_string \"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes\""},"value":"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4","typeString":"literal_string \"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes\""}],"id":6453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6234:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6234:180:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6460,"nodeType":"ExpressionStatement","src":"6234:180:28"},{"body":{"id":6503,"nodeType":"Block","src":"6455:209:28","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":6473,"name":"timelocks_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6436,"src":"6498:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$8011_$dyn_memory_ptr","typeString":"contract ITimelock[] memory"}},"id":6475,"indexExpression":{"id":6474,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"6509:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6498:13:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}],"id":6472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6490:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6471,"name":"address","nodeType":"ElementaryTypeName","src":"6490:7:28","typeDescriptions":{}}},"id":6476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6490:22:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6470,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"6469:20:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":6477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6469:44:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6478,"nodeType":"ExpressionStatement","src":"6469:44:28"},{"eventCall":{"arguments":[{"id":6480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"6546:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"baseExpression":{"id":6483,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"6557:17:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":6485,"indexExpression":{"id":6484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"6575:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6557:20:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}],"id":6482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6549:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6481,"name":"address","nodeType":"ElementaryTypeName","src":"6549:7:28","typeDescriptions":{}}},"id":6486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6549:29:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"baseExpression":{"id":6489,"name":"timelocks_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6436,"src":"6588:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$8011_$dyn_memory_ptr","typeString":"contract ITimelock[] memory"}},"id":6491,"indexExpression":{"id":6490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"6599:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6588:13:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}],"id":6488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6580:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6487,"name":"address","nodeType":"ElementaryTypeName","src":"6580:7:28","typeDescriptions":{}}},"id":6492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6580:22:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6479,"name":"TimelockAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6330,"src":"6532:13:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$_t_address_$_t_address_$returns$__$","typeString":"function (uint8,address,address)"}},"id":6493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6532:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6494,"nodeType":"EmitStatement","src":"6527:76:28"},{"expression":{"id":6501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6495,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"6617:17:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":6497,"indexExpression":{"id":6496,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"6635:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6617:20:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":6498,"name":"timelocks_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6436,"src":"6640:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$8011_$dyn_memory_ptr","typeString":"contract ITimelock[] memory"}},"id":6500,"indexExpression":{"id":6499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"6651:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6640:13:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"src":"6617:36:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"id":6502,"nodeType":"ExpressionStatement","src":"6617:36:28"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"6438:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6465,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6442,"src":"6442:6:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6438:10:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6504,"initializationExpression":{"assignments":[6462],"declarations":[{"constant":false,"id":6462,"mutability":"mutable","name":"i","nameLocation":"6435:1:28","nodeType":"VariableDeclaration","scope":6504,"src":"6429:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6461,"name":"uint8","nodeType":"ElementaryTypeName","src":"6429:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":6463,"nodeType":"VariableDeclarationStatement","src":"6429:7:28"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6450:3:28","subExpression":{"id":6467,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6462,"src":"6452:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6469,"nodeType":"ExpressionStatement","src":"6450:3:28"},"nodeType":"ForStatement","src":"6424:240:28"}]},"documentation":{"id":6432,"nodeType":"StructuredDocumentation","src":"5838:251:28","text":" @notice Add timelocks to the ProposalTimelocks mapping\n @param timelocks_ Array of addresses of all 3 timelocks\n @custom:access Only owner\n @custom:event Emits TimelockAdded with old and new timelock and route type"},"functionSelector":"ed66039b","id":6506,"implemented":true,"kind":"function","modifiers":[{"id":6439,"kind":"modifierInvocation","modifierName":{"id":6438,"name":"onlyOwner","nameLocations":["6156:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"6156:9:28"},"nodeType":"ModifierInvocation","src":"6156:9:28"}],"name":"addTimelocks","nameLocation":"6103:12:28","nodeType":"FunctionDefinition","parameters":{"id":6437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6436,"mutability":"mutable","name":"timelocks_","nameLocation":"6135:10:28","nodeType":"VariableDeclaration","scope":6506,"src":"6116:29:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$8011_$dyn_memory_ptr","typeString":"contract ITimelock[]"},"typeName":{"baseType":{"id":6434,"nodeType":"UserDefinedTypeName","pathNode":{"id":6433,"name":"ITimelock","nameLocations":["6116:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":8011,"src":"6116:9:28"},"referencedDeclaration":8011,"src":"6116:9:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"id":6435,"nodeType":"ArrayTypeName","src":"6116:11:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ITimelock_$8011_$dyn_storage_ptr","typeString":"contract ITimelock[]"}},"visibility":"internal"}],"src":"6115:31:28"},"returnParameters":{"id":6440,"nodeType":"ParameterList","parameters":[],"src":"6166:0:28"},"scope":7192,"src":"6094:576:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6598,"nodeType":"Block","src":"6958:804:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"},"id":6520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6516,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"6995:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6515,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6823,"src":"6989:5:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6248_$","typeString":"function (uint256) view returns (enum OmnichainGovernanceExecutor.ProposalState)"}},"id":6517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6989:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6518,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7011:13:28","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6248_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":6519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7025:6:28","memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":6246,"src":"7011:20:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"src":"6989:42:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564","id":6521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7045:85:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35","typeString":"literal_string \"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued\""},"value":"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35","typeString":"literal_string \"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued\""}],"id":6514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6968:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6968:172:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6523,"nodeType":"ExpressionStatement","src":"6968:172:28"},{"assignments":[6526],"declarations":[{"constant":false,"id":6526,"mutability":"mutable","name":"proposal","nameLocation":"7168:8:28","nodeType":"VariableDeclaration","scope":6598,"src":"7151:25:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":6525,"nodeType":"UserDefinedTypeName","pathNode":{"id":6524,"name":"Proposal","nameLocations":["7151:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":6244,"src":"7151:8:28"},"referencedDeclaration":6244,"src":"7151:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":6530,"initialValue":{"baseExpression":{"id":6527,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"7179:9:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$6244_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":6529,"indexExpression":{"id":6528,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"7189:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7179:22:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7151:50:28"},{"expression":{"id":6535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6531,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"7211:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7220:8:28","memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":6240,"src":"7211:17:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7231:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7211:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6536,"nodeType":"ExpressionStatement","src":"7211:24:28"},{"assignments":[6539],"declarations":[{"constant":false,"id":6539,"mutability":"mutable","name":"timelock","nameLocation":"7255:8:28","nodeType":"VariableDeclaration","scope":6598,"src":"7245:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"},"typeName":{"id":6538,"nodeType":"UserDefinedTypeName","pathNode":{"id":6537,"name":"ITimelock","nameLocations":["7245:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":8011,"src":"7245:9:28"},"referencedDeclaration":8011,"src":"7245:9:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"visibility":"internal"}],"id":6544,"initialValue":{"baseExpression":{"id":6540,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"7266:17:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":6543,"indexExpression":{"expression":{"id":6541,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"7284:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7293:12:28","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":6243,"src":"7284:21:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7266:40:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"nodeType":"VariableDeclarationStatement","src":"7245:61:28"},{"assignments":[6546],"declarations":[{"constant":false,"id":6546,"mutability":"mutable","name":"eta","nameLocation":"7324:3:28","nodeType":"VariableDeclaration","scope":6598,"src":"7316:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6545,"name":"uint256","nodeType":"ElementaryTypeName","src":"7316:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6549,"initialValue":{"expression":{"id":6547,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"7330:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7339:3:28","memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":6218,"src":"7330:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7316:26:28"},{"assignments":[6551],"declarations":[{"constant":false,"id":6551,"mutability":"mutable","name":"length","nameLocation":"7360:6:28","nodeType":"VariableDeclaration","scope":6598,"src":"7352:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6550,"name":"uint256","nodeType":"ElementaryTypeName","src":"7352:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6555,"initialValue":{"expression":{"expression":{"id":6552,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"7369:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7378:7:28","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":6222,"src":"7369:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":6554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7386:6:28","memberName":"length","nodeType":"MemberAccess","src":"7369:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7352:40:28"},{"eventCall":{"arguments":[{"id":6557,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"7425:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6556,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6305,"src":"7408:16:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7408:29:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6559,"nodeType":"EmitStatement","src":"7403:34:28"},{"body":{"id":6591,"nodeType":"Block","src":"7481:239:28","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":6572,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"7540:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7549:7:28","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":6222,"src":"7540:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":6575,"indexExpression":{"id":6574,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"7557:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7540:19:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":6576,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"7577:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7586:6:28","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":6226,"src":"7577:15:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":6579,"indexExpression":{"id":6578,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"7593:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7577:18:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":6580,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"7613:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7622:10:28","memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":6230,"src":"7613:19:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":6583,"indexExpression":{"id":6582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"7633:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7613:22:28","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"baseExpression":{"expression":{"id":6584,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6526,"src":"7653:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7662:9:28","memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":6234,"src":"7653:18:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":6587,"indexExpression":{"id":6586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"7672:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7653:21:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"id":6588,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6546,"src":"7692:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6569,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6539,"src":"7495:8:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"id":6571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7504:18:28","memberName":"executeTransaction","nodeType":"MemberAccess","referencedDeclaration":8010,"src":"7495:27:28","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"}},"id":6589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7495:214:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6590,"nodeType":"ExpressionStatement","src":"7495:214:28"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6563,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"7464:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6564,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6551,"src":"7468:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7464:10:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6592,"initializationExpression":{"assignments":[6561],"declarations":[{"constant":false,"id":6561,"mutability":"mutable","name":"i","nameLocation":"7461:1:28","nodeType":"VariableDeclaration","scope":6592,"src":"7453:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6560,"name":"uint256","nodeType":"ElementaryTypeName","src":"7453:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6562,"nodeType":"VariableDeclarationStatement","src":"7453:9:28"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7476:3:28","subExpression":{"id":6566,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"7478:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6568,"nodeType":"ExpressionStatement","src":"7476:3:28"},"nodeType":"ForStatement","src":"7448:272:28"},{"expression":{"id":6596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7729:26:28","subExpression":{"baseExpression":{"id":6593,"name":"queued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6274,"src":"7736:6:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":6595,"indexExpression":{"id":6594,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"7743:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7736:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6597,"nodeType":"ExpressionStatement","src":"7729:26:28"}]},"documentation":{"id":6507,"nodeType":"StructuredDocumentation","src":"6676:217:28","text":" @notice Executes a queued proposal if eta has passed\n @param proposalId_ Id of proposal that is to be executed\n @custom:event Emits ProposalExecuted with proposal id of executed proposal"},"functionSelector":"fe0d94c1","id":6599,"implemented":true,"kind":"function","modifiers":[{"id":6512,"kind":"modifierInvocation","modifierName":{"id":6511,"name":"nonReentrant","nameLocations":["6945:12:28"],"nodeType":"IdentifierPath","referencedDeclaration":4318,"src":"6945:12:28"},"nodeType":"ModifierInvocation","src":"6945:12:28"}],"name":"execute","nameLocation":"6907:7:28","nodeType":"FunctionDefinition","parameters":{"id":6510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6509,"mutability":"mutable","name":"proposalId_","nameLocation":"6923:11:28","nodeType":"VariableDeclaration","scope":6599,"src":"6915:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6508,"name":"uint256","nodeType":"ElementaryTypeName","src":"6915:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6914:21:28"},"returnParameters":{"id":6513,"nodeType":"ParameterList","parameters":[],"src":"6958:0:28"},"scope":7192,"src":"6898:864:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6697,"nodeType":"Block","src":"8124:904:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"},"id":6611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6607,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"8161:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6606,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6823,"src":"8155:5:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6248_$","typeString":"function (uint256) view returns (enum OmnichainGovernanceExecutor.ProposalState)"}},"id":6608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8155:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6609,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"8177:13:28","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6248_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":6610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8191:6:28","memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":6246,"src":"8177:20:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"src":"8155:42:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e63656c3a2070726f706f73616c2073686f756c642062652071756575656420616e64206e6f74206578656375746564","id":6612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8211:81:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe","typeString":"literal_string \"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed\""},"value":"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe","typeString":"literal_string \"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed\""}],"id":6605,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8134:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8134:168:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6614,"nodeType":"ExpressionStatement","src":"8134:168:28"},{"assignments":[6617],"declarations":[{"constant":false,"id":6617,"mutability":"mutable","name":"proposal","nameLocation":"8329:8:28","nodeType":"VariableDeclaration","scope":6697,"src":"8312:25:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":6616,"nodeType":"UserDefinedTypeName","pathNode":{"id":6615,"name":"Proposal","nameLocations":["8312:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":6244,"src":"8312:8:28"},"referencedDeclaration":6244,"src":"8312:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":6621,"initialValue":{"baseExpression":{"id":6618,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"8340:9:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$6244_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":6620,"indexExpression":{"id":6619,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"8350:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8340:22:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8312:50:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6623,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8380:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8384:6:28","memberName":"sender","nodeType":"MemberAccess","src":"8380:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6625,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6251,"src":"8394:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8380:22:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e63656c3a2073656e646572206d75737420626520677561726469616e","id":6627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8404:62:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621","typeString":"literal_string \"OmnichainGovernanceExecutor::cancel: sender must be guardian\""},"value":"OmnichainGovernanceExecutor::cancel: sender must be guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621","typeString":"literal_string \"OmnichainGovernanceExecutor::cancel: sender must be guardian\""}],"id":6622,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8372:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8372:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6629,"nodeType":"ExpressionStatement","src":"8372:95:28"},{"expression":{"id":6634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6630,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"8478:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8487:8:28","memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":6237,"src":"8478:17:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8498:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8478:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6635,"nodeType":"ExpressionStatement","src":"8478:24:28"},{"assignments":[6638],"declarations":[{"constant":false,"id":6638,"mutability":"mutable","name":"timelock","nameLocation":"8522:8:28","nodeType":"VariableDeclaration","scope":6697,"src":"8512:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"},"typeName":{"id":6637,"nodeType":"UserDefinedTypeName","pathNode":{"id":6636,"name":"ITimelock","nameLocations":["8512:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":8011,"src":"8512:9:28"},"referencedDeclaration":8011,"src":"8512:9:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"visibility":"internal"}],"id":6643,"initialValue":{"baseExpression":{"id":6639,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"8533:17:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":6642,"indexExpression":{"expression":{"id":6640,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"8551:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8560:12:28","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":6243,"src":"8551:21:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8533:40:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"nodeType":"VariableDeclarationStatement","src":"8512:61:28"},{"assignments":[6645],"declarations":[{"constant":false,"id":6645,"mutability":"mutable","name":"eta","nameLocation":"8591:3:28","nodeType":"VariableDeclaration","scope":6697,"src":"8583:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6644,"name":"uint256","nodeType":"ElementaryTypeName","src":"8583:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6648,"initialValue":{"expression":{"id":6646,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"8597:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8606:3:28","memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":6218,"src":"8597:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8583:26:28"},{"assignments":[6650],"declarations":[{"constant":false,"id":6650,"mutability":"mutable","name":"length","nameLocation":"8627:6:28","nodeType":"VariableDeclaration","scope":6697,"src":"8619:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6649,"name":"uint256","nodeType":"ElementaryTypeName","src":"8619:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6654,"initialValue":{"expression":{"expression":{"id":6651,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"8636:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8645:7:28","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":6222,"src":"8636:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":6653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8653:6:28","memberName":"length","nodeType":"MemberAccess","src":"8636:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8619:40:28"},{"eventCall":{"arguments":[{"id":6656,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"8692:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6655,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6321,"src":"8675:16:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8675:29:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6658,"nodeType":"EmitStatement","src":"8670:34:28"},{"body":{"id":6690,"nodeType":"Block","src":"8748:238:28","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":6671,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"8806:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8815:7:28","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":6222,"src":"8806:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":6674,"indexExpression":{"id":6673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6660,"src":"8823:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8806:19:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":6675,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"8843:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8852:6:28","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":6226,"src":"8843:15:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":6678,"indexExpression":{"id":6677,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6660,"src":"8859:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8843:18:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":6679,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"8879:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8888:10:28","memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":6230,"src":"8879:19:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":6682,"indexExpression":{"id":6681,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6660,"src":"8899:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8879:22:28","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"baseExpression":{"expression":{"id":6683,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"8919:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8928:9:28","memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":6234,"src":"8919:18:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":6686,"indexExpression":{"id":6685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6660,"src":"8938:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8919:21:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"id":6687,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6645,"src":"8958:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6668,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6638,"src":"8762:8:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"id":6670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8771:17:28","memberName":"cancelTransaction","nodeType":"MemberAccess","referencedDeclaration":7994,"src":"8762:26:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint256) external"}},"id":6688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8762:213:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6689,"nodeType":"ExpressionStatement","src":"8762:213:28"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6662,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6660,"src":"8731:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6663,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6650,"src":"8735:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8731:10:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6691,"initializationExpression":{"assignments":[6660],"declarations":[{"constant":false,"id":6660,"mutability":"mutable","name":"i","nameLocation":"8728:1:28","nodeType":"VariableDeclaration","scope":6691,"src":"8720:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6659,"name":"uint256","nodeType":"ElementaryTypeName","src":"8720:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6661,"nodeType":"VariableDeclarationStatement","src":"8720:9:28"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8743:3:28","subExpression":{"id":6665,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6660,"src":"8745:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6667,"nodeType":"ExpressionStatement","src":"8743:3:28"},"nodeType":"ForStatement","src":"8715:271:28"},{"expression":{"id":6695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8995:26:28","subExpression":{"baseExpression":{"id":6692,"name":"queued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6274,"src":"9002:6:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":6694,"indexExpression":{"id":6693,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6602,"src":"9009:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9002:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6696,"nodeType":"ExpressionStatement","src":"8995:26:28"}]},"documentation":{"id":6600,"nodeType":"StructuredDocumentation","src":"7768:305:28","text":" @notice Cancels a proposal only if sender is the guardian and proposal is not executed\n @param proposalId_ Id of proposal that is to be canceled\n @custom:access Sender must be the guardian\n @custom:event Emits ProposalCanceled with proposal id of the canceled proposal"},"functionSelector":"40e58ee5","id":6698,"implemented":true,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"8087:6:28","nodeType":"FunctionDefinition","parameters":{"id":6603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6602,"mutability":"mutable","name":"proposalId_","nameLocation":"8102:11:28","nodeType":"VariableDeclaration","scope":6698,"src":"8094:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6601,"name":"uint256","nodeType":"ElementaryTypeName","src":"8094:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8093:21:28"},"returnParameters":{"id":6604,"nodeType":"ParameterList","parameters":[],"src":"8124:0:28"},"scope":7192,"src":"8078:950:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6739,"nodeType":"Block","src":"9431:385:28","statements":[{"assignments":[6709],"declarations":[{"constant":false,"id":6709,"mutability":"mutable","name":"proposalTypeLength","nameLocation":"9447:18:28","nodeType":"VariableDeclaration","scope":6739,"src":"9441:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6708,"name":"uint8","nodeType":"ElementaryTypeName","src":"9441:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":6719,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":6713,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"9479:12:28","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$6212_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_enum$_ProposalType_$6212_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}],"id":6712,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9474:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9474:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_enum$_ProposalType_$6212","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}},"id":6715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9493:3:28","memberName":"max","nodeType":"MemberAccess","src":"9474:22:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$6212","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$6212","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}],"id":6711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9468:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6710,"name":"uint8","nodeType":"ElementaryTypeName","src":"9468:5:28","typeDescriptions":{}}},"id":6716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9468:29:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":6717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9500:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9468:33:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"9441:60:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6721,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6703,"src":"9532:13:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6722,"name":"proposalTypeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6709,"src":"9548:18:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9532:34:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657454696d656c6f636b50656e64696e6741646d696e3a20696e76616c69642070726f706f73616c2074797065","id":6724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9580:77:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627","typeString":"literal_string \"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type\""},"value":"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627","typeString":"literal_string \"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type\""}],"id":6720,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9511:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9511:156:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6726,"nodeType":"ExpressionStatement","src":"9511:156:28"},{"expression":{"arguments":[{"id":6731,"name":"pendingAdmin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6701,"src":"9727:13:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6727,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"9678:17:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":6729,"indexExpression":{"id":6728,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6703,"src":"9696:13:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9678:32:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"id":6730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9711:15:28","memberName":"setPendingAdmin","nodeType":"MemberAccess","referencedDeclaration":7956,"src":"9678:48:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":6732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9678:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6733,"nodeType":"ExpressionStatement","src":"9678:63:28"},{"eventCall":{"arguments":[{"id":6735,"name":"pendingAdmin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6701,"src":"9780:13:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6736,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6703,"src":"9795:13:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6734,"name":"SetTimelockPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6351,"src":"9756:23:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8)"}},"id":6737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9756:53:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6738,"nodeType":"EmitStatement","src":"9751:58:28"}]},"documentation":{"id":6699,"nodeType":"StructuredDocumentation","src":"9034:296:28","text":" @notice Sets the new pending admin of the Timelock\n @param pendingAdmin_ Address of new pending admin\n @param proposalType_ Type of proposal\n @custom:access Only owner\n @custom:event Emits SetTimelockPendingAdmin with new pending admin and proposal type"},"functionSelector":"f4fcfcca","id":6740,"implemented":true,"kind":"function","modifiers":[{"id":6706,"kind":"modifierInvocation","modifierName":{"id":6705,"name":"onlyOwner","nameLocations":["9421:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"9421:9:28"},"nodeType":"ModifierInvocation","src":"9421:9:28"}],"name":"setTimelockPendingAdmin","nameLocation":"9344:23:28","nodeType":"FunctionDefinition","parameters":{"id":6704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6701,"mutability":"mutable","name":"pendingAdmin_","nameLocation":"9376:13:28","nodeType":"VariableDeclaration","scope":6740,"src":"9368:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6700,"name":"address","nodeType":"ElementaryTypeName","src":"9368:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6703,"mutability":"mutable","name":"proposalType_","nameLocation":"9397:13:28","nodeType":"VariableDeclaration","scope":6740,"src":"9391:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6702,"name":"uint8","nodeType":"ElementaryTypeName","src":"9391:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9367:44:28"},"returnParameters":{"id":6707,"nodeType":"ParameterList","parameters":[],"src":"9431:0:28"},"scope":7192,"src":"9335:481:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1211],"body":{"id":6779,"nodeType":"Block","src":"10360:268:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":6759,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"10401:19:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":6761,"indexExpression":{"id":6760,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6743,"src":"10421:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10401:32:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":6758,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10391:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10391:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":6764,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6745,"src":"10448:11:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":6763,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10438:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10438:22:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10391:69:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a72657472794d6573736167653a206e6f74206120747275737465642072656d6f7465","id":6767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10474:65:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756","typeString":"literal_string \"OmnichainGovernanceExecutor::retryMessage: not a trusted remote\""},"value":"OmnichainGovernanceExecutor::retryMessage: not a trusted remote"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756","typeString":"literal_string \"OmnichainGovernanceExecutor::retryMessage: not a trusted remote\""}],"id":6757,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10370:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10370:179:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6769,"nodeType":"ExpressionStatement","src":"10370:179:28"},{"expression":{"arguments":[{"id":6773,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6743,"src":"10578:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":6774,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6745,"src":"10591:11:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":6775,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"10604:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":6776,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6749,"src":"10612:8:28","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":6770,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"10559:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OmnichainGovernanceExecutor_$7192_$","typeString":"type(contract super OmnichainGovernanceExecutor)"}},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10565:12:28","memberName":"retryMessage","nodeType":"MemberAccess","referencedDeclaration":1211,"src":"10559:18:28","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":6777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6778,"nodeType":"ExpressionStatement","src":"10559:62:28"}]},"documentation":{"id":6741,"nodeType":"StructuredDocumentation","src":"9822:338:28","text":" @notice Resends a previously failed message\n @param srcChainId_ Source chain Id\n @param srcAddress_ Source address => local app address + remote app address\n @param nonce_ Nonce to identify failed message\n @param payload_ The payload of the message to be retried\n @custom:access Only owner"},"functionSelector":"d1deba1f","id":6780,"implemented":true,"kind":"function","modifiers":[{"id":6753,"kind":"modifierInvocation","modifierName":{"id":6752,"name":"onlyOwner","nameLocations":["10337:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"10337:9:28"},"nodeType":"ModifierInvocation","src":"10337:9:28"},{"id":6755,"kind":"modifierInvocation","modifierName":{"id":6754,"name":"nonReentrant","nameLocations":["10347:12:28"],"nodeType":"IdentifierPath","referencedDeclaration":4318,"src":"10347:12:28"},"nodeType":"ModifierInvocation","src":"10347:12:28"}],"name":"retryMessage","nameLocation":"10174:12:28","nodeType":"FunctionDefinition","overrides":{"id":6751,"nodeType":"OverrideSpecifier","overrides":[],"src":"10328:8:28"},"parameters":{"id":6750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6743,"mutability":"mutable","name":"srcChainId_","nameLocation":"10203:11:28","nodeType":"VariableDeclaration","scope":6780,"src":"10196:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6742,"name":"uint16","nodeType":"ElementaryTypeName","src":"10196:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":6745,"mutability":"mutable","name":"srcAddress_","nameLocation":"10239:11:28","nodeType":"VariableDeclaration","scope":6780,"src":"10224:26:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6744,"name":"bytes","nodeType":"ElementaryTypeName","src":"10224:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6747,"mutability":"mutable","name":"nonce_","nameLocation":"10267:6:28","nodeType":"VariableDeclaration","scope":6780,"src":"10260:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6746,"name":"uint64","nodeType":"ElementaryTypeName","src":"10260:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":6749,"mutability":"mutable","name":"payload_","nameLocation":"10298:8:28","nodeType":"VariableDeclaration","scope":6780,"src":"10283:23:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6748,"name":"bytes","nodeType":"ElementaryTypeName","src":"10283:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10186:126:28"},"returnParameters":{"id":6756,"nodeType":"ParameterList","parameters":[],"src":"10360:0:28"},"scope":7192,"src":"10165:463:28","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":6822,"nodeType":"Block","src":"10845:429:28","statements":[{"assignments":[6791],"declarations":[{"constant":false,"id":6791,"mutability":"mutable","name":"proposal","nameLocation":"10872:8:28","nodeType":"VariableDeclaration","scope":6822,"src":"10855:25:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":6790,"nodeType":"UserDefinedTypeName","pathNode":{"id":6789,"name":"Proposal","nameLocations":["10855:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":6244,"src":"10855:8:28"},"referencedDeclaration":6244,"src":"10855:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":6795,"initialValue":{"baseExpression":{"id":6792,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"10883:9:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$6244_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":6794,"indexExpression":{"id":6793,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6783,"src":"10893:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10883:22:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10855:50:28"},{"condition":{"expression":{"id":6796,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6791,"src":"10919:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10928:8:28","memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":6237,"src":"10919:17:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"expression":{"id":6802,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6791,"src":"11002:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":6803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11011:8:28","memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":6240,"src":"11002:17:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"baseExpression":{"id":6808,"name":"queued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6274,"src":"11085:6:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":6810,"indexExpression":{"id":6809,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6783,"src":"11092:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11085:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6818,"nodeType":"Block","src":"11217:51:28","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6815,"name":"InvalidProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6354,"src":"11238:17:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11238:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6817,"nodeType":"RevertStatement","src":"11231:26:28"}]},"id":6819,"nodeType":"IfStatement","src":"11081:187:28","trueBody":{"id":6814,"nodeType":"Block","src":"11106:105:28","statements":[{"expression":{"expression":{"id":6811,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"11180:13:28","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6248_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":6812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11194:6:28","memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":6246,"src":"11180:20:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"functionReturnParameters":6788,"id":6813,"nodeType":"Return","src":"11173:27:28"}]}},"id":6820,"nodeType":"IfStatement","src":"10998:270:28","trueBody":{"id":6807,"nodeType":"Block","src":"11021:54:28","statements":[{"expression":{"expression":{"id":6804,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"11042:13:28","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6248_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":6805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11056:8:28","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":6247,"src":"11042:22:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"functionReturnParameters":6788,"id":6806,"nodeType":"Return","src":"11035:29:28"}]}},"id":6821,"nodeType":"IfStatement","src":"10915:353:28","trueBody":{"id":6801,"nodeType":"Block","src":"10938:54:28","statements":[{"expression":{"expression":{"id":6798,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"10959:13:28","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6248_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalState)"}},"id":6799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10973:8:28","memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":6245,"src":"10959:22:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"functionReturnParameters":6788,"id":6800,"nodeType":"Return","src":"10952:29:28"}]}}]},"documentation":{"id":6781,"nodeType":"StructuredDocumentation","src":"10634:134:28","text":" @notice Gets the state of a proposal\n @param proposalId_ The id of the proposal\n @return Proposal state"},"functionSelector":"3e4f49e6","id":6823,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"10782:5:28","nodeType":"FunctionDefinition","parameters":{"id":6784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6783,"mutability":"mutable","name":"proposalId_","nameLocation":"10796:11:28","nodeType":"VariableDeclaration","scope":6823,"src":"10788:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6782,"name":"uint256","nodeType":"ElementaryTypeName","src":"10788:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10787:21:28"},"returnParameters":{"id":6788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6823,"src":"10830:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"},"typeName":{"id":6786,"nodeType":"UserDefinedTypeName","pathNode":{"id":6785,"name":"ProposalState","nameLocations":["10830:13:28"],"nodeType":"IdentifierPath","referencedDeclaration":6248,"src":"10830:13:28"},"referencedDeclaration":6248,"src":"10830:13:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6248","typeString":"enum OmnichainGovernanceExecutor.ProposalState"}},"visibility":"internal"}],"src":"10829:15:28"},"scope":7192,"src":"10773:501:28","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[1068],"body":{"id":6900,"nodeType":"Block","src":"11857:713:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":6839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6837,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6826,"src":"11875:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6838,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6254,"src":"11890:10:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11875:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f626c6f636b696e674c7a526563656976653a20696e76616c696420736f7572636520636861696e206964","id":6840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11902:74:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7","typeString":"literal_string \"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id\""},"value":"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7","typeString":"literal_string \"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id\""}],"id":6836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11867:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11867:110:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6842,"nodeType":"ExpressionStatement","src":"11867:110:28"},{"assignments":[6844],"declarations":[{"constant":false,"id":6844,"mutability":"mutable","name":"hashedPayload","nameLocation":"11995:13:28","nodeType":"VariableDeclaration","scope":6900,"src":"11987:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11987:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6848,"initialValue":{"arguments":[{"id":6846,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"12021:8:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6845,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12011:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12011:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11987:43:28"},{"assignments":[6850],"declarations":[{"constant":false,"id":6850,"mutability":"mutable","name":"callData","nameLocation":"12053:8:28","nodeType":"VariableDeclaration","scope":6900,"src":"12040:21:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6849,"name":"bytes","nodeType":"ElementaryTypeName","src":"12040:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6861,"initialValue":{"arguments":[{"expression":{"id":6853,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12079:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainGovernanceExecutor_$7192","typeString":"contract OmnichainGovernanceExecutor"}},"id":6854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12084:20:28","memberName":"nonblockingLzReceive","nodeType":"MemberAccess","referencedDeclaration":1132,"src":"12079:25:28","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"}},{"components":[{"id":6855,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6826,"src":"12107:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":6856,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6828,"src":"12120:11:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6857,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6830,"src":"12133:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":6858,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"12141:8:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":6859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12106:44:28","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$","typeString":"tuple(uint16,bytes memory,uint64,bytes memory)"}}],"expression":{"argumentTypes":[{"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"},{"typeIdentifier":"t_tuple$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$","typeString":"tuple(uint16,bytes memory,uint64,bytes memory)"}],"expression":{"id":6851,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12064:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12068:10:28","memberName":"encodeCall","nodeType":"MemberAccess","src":"12064:14:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12064:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12040:111:28"},{"assignments":[6863,6865],"declarations":[{"constant":false,"id":6863,"mutability":"mutable","name":"success","nameLocation":"12168:7:28","nodeType":"VariableDeclaration","scope":6900,"src":"12163:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6862,"name":"bool","nodeType":"ElementaryTypeName","src":"12163:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6865,"mutability":"mutable","name":"reason","nameLocation":"12190:6:28","nodeType":"VariableDeclaration","scope":6900,"src":"12177:19:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6864,"name":"bytes","nodeType":"ElementaryTypeName","src":"12177:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6878,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6871,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"12234:7:28","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12234:9:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3330303030","id":6873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12246:5:28","typeDescriptions":{"typeIdentifier":"t_rational_30000_by_1","typeString":"int_const 30000"},"value":"30000"},"src":"12234:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313530","id":6875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12253:3:28","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},{"id":6876,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"12258:8:28","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":6868,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12208:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainGovernanceExecutor_$7192","typeString":"contract OmnichainGovernanceExecutor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmnichainGovernanceExecutor_$7192","typeString":"contract OmnichainGovernanceExecutor"}],"id":6867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12200:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6866,"name":"address","nodeType":"ElementaryTypeName","src":"12200:7:28","typeDescriptions":{}}},"id":6869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12200:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12214:19:28","memberName":"excessivelySafeCall","nodeType":"MemberAccess","referencedDeclaration":372,"src":"12200:33:28","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":6877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12200:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12162:105:28"},{"condition":{"id":6880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12324:8:28","subExpression":{"id":6879,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6863,"src":"12325:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6899,"nodeType":"IfStatement","src":"12320:244:28","trueBody":{"id":6898,"nodeType":"Block","src":"12334:230:28","statements":[{"expression":{"id":6889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":6881,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"12348:14:28","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":6885,"indexExpression":{"id":6882,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6826,"src":"12363:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12348:27:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":6886,"indexExpression":{"id":6883,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6828,"src":"12376:11:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12348:40:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":6887,"indexExpression":{"id":6884,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6830,"src":"12389:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12348:48:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6888,"name":"hashedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6844,"src":"12399:13:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12348:64:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6890,"nodeType":"ExpressionStatement","src":"12348:64:28"},{"eventCall":{"arguments":[{"id":6892,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6826,"src":"12452:11:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":6893,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6828,"src":"12465:11:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6894,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6830,"src":"12478:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":6895,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6865,"src":"12486:6:28","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":6891,"name":"ReceivePayloadFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"12431:20:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":6896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12431:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6897,"nodeType":"EmitStatement","src":"12426:67:28"}]}}]},"documentation":{"id":6824,"nodeType":"StructuredDocumentation","src":"11280:396:28","text":" @notice Process blocking LayerZero receive request\n @param srcChainId_ Source chain Id\n @param srcAddress_ Source address from which payload is received\n @param nonce_ Nonce associated with the payload to prevent replay attacks\n @param payload_ Encoded payload containing proposal information\n @custom:event Emit ReceivePayloadFailed if call fails"},"id":6901,"implemented":true,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"11690:18:28","nodeType":"FunctionDefinition","overrides":{"id":6834,"nodeType":"OverrideSpecifier","overrides":[],"src":"11848:8:28"},"parameters":{"id":6833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6826,"mutability":"mutable","name":"srcChainId_","nameLocation":"11725:11:28","nodeType":"VariableDeclaration","scope":6901,"src":"11718:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6825,"name":"uint16","nodeType":"ElementaryTypeName","src":"11718:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":6828,"mutability":"mutable","name":"srcAddress_","nameLocation":"11759:11:28","nodeType":"VariableDeclaration","scope":6901,"src":"11746:24:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6827,"name":"bytes","nodeType":"ElementaryTypeName","src":"11746:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6830,"mutability":"mutable","name":"nonce_","nameLocation":"11787:6:28","nodeType":"VariableDeclaration","scope":6901,"src":"11780:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6829,"name":"uint64","nodeType":"ElementaryTypeName","src":"11780:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":6832,"mutability":"mutable","name":"payload_","nameLocation":"11816:8:28","nodeType":"VariableDeclaration","scope":6901,"src":"11803:21:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6831,"name":"bytes","nodeType":"ElementaryTypeName","src":"11803:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11708:122:28"},"returnParameters":{"id":6835,"nodeType":"ParameterList","parameters":[],"src":"11857:0:28"},"scope":7192,"src":"11681:889:28","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1143],"body":{"id":7056,"nodeType":"Block","src":"12930:1500:28","statements":[{"assignments":[6917,6919],"declarations":[{"constant":false,"id":6917,"mutability":"mutable","name":"payload","nameLocation":"12954:7:28","nodeType":"VariableDeclaration","scope":7056,"src":"12941:20:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6916,"name":"bytes","nodeType":"ElementaryTypeName","src":"12941:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6919,"mutability":"mutable","name":"pId","nameLocation":"12971:3:28","nodeType":"VariableDeclaration","scope":7056,"src":"12963:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6918,"name":"uint256","nodeType":"ElementaryTypeName","src":"12963:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6929,"initialValue":{"arguments":[{"id":6922,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6910,"src":"12989:8:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13000:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6923,"name":"bytes","nodeType":"ElementaryTypeName","src":"13000:5:28","typeDescriptions":{}}},{"id":6926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13007:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6925,"name":"uint256","nodeType":"ElementaryTypeName","src":"13007:7:28","typeDescriptions":{}}}],"id":6927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12999:16:28","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":6920,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12978:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12982:6:28","memberName":"decode","nodeType":"MemberAccess","src":"12978:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12978:38:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12940:76:28"},{"assignments":[6934,6937,6940,6943,6945],"declarations":[{"constant":false,"id":6934,"mutability":"mutable","name":"targets","nameLocation":"13057:7:28","nodeType":"VariableDeclaration","scope":7056,"src":"13040:24:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6932,"name":"address","nodeType":"ElementaryTypeName","src":"13040:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6933,"nodeType":"ArrayTypeName","src":"13040:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6937,"mutability":"mutable","name":"values","nameLocation":"13095:6:28","nodeType":"VariableDeclaration","scope":7056,"src":"13078:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6935,"name":"uint256","nodeType":"ElementaryTypeName","src":"13078:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6936,"nodeType":"ArrayTypeName","src":"13078:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6940,"mutability":"mutable","name":"signatures","nameLocation":"13131:10:28","nodeType":"VariableDeclaration","scope":7056,"src":"13115:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6938,"name":"string","nodeType":"ElementaryTypeName","src":"13115:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6939,"nodeType":"ArrayTypeName","src":"13115:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":6943,"mutability":"mutable","name":"calldatas","nameLocation":"13170:9:28","nodeType":"VariableDeclaration","scope":7056,"src":"13155:24:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6941,"name":"bytes","nodeType":"ElementaryTypeName","src":"13155:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6942,"nodeType":"ArrayTypeName","src":"13155:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6945,"mutability":"mutable","name":"pType","nameLocation":"13199:5:28","nodeType":"VariableDeclaration","scope":7056,"src":"13193:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6944,"name":"uint8","nodeType":"ElementaryTypeName","src":"13193:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":6965,"initialValue":{"arguments":[{"id":6948,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"13228:7:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":6950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13238:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6949,"name":"address","nodeType":"ElementaryTypeName","src":"13238:7:28","typeDescriptions":{}}},"id":6951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13238:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}},{"baseExpression":{"id":6953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13249:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6952,"name":"uint256","nodeType":"ElementaryTypeName","src":"13249:7:28","typeDescriptions":{}}},"id":6954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13249:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}},{"baseExpression":{"id":6956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13260:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":6955,"name":"string","nodeType":"ElementaryTypeName","src":"13260:6:28","typeDescriptions":{}}},"id":6957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13260:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"type(string memory[] memory)"}},{"baseExpression":{"id":6959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13270:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6958,"name":"bytes","nodeType":"ElementaryTypeName","src":"13270:5:28","typeDescriptions":{}}},"id":6960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13270:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"type(bytes memory[] memory)"}},{"id":6962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13279:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6961,"name":"uint8","nodeType":"ElementaryTypeName","src":"13279:5:28","typeDescriptions":{}}}],"id":6963,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13237:48:28","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$","typeString":"tuple(type(address[] memory),type(uint256[] memory),type(string memory[] memory),type(bytes memory[] memory),type(uint8))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$","typeString":"tuple(type(address[] memory),type(uint256[] memory),type(string memory[] memory),type(bytes memory[] memory),type(uint8))"}],"expression":{"id":6946,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13217:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13221:6:28","memberName":"decode","nodeType":"MemberAccess","src":"13217:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13217:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$","typeString":"tuple(address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint8)"}},"nodeType":"VariableDeclarationStatement","src":"13026:260:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":6967,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"13304:9:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$6244_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":6969,"indexExpression":{"id":6968,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"13314:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13304:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"id":6970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13319:2:28","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6215,"src":"13304:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13325:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13304:22:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f6e626c6f636b696e674c7a526563656976653a206475706c69636174652070726f706f73616c","id":6973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13328:72:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal\""},"value":"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal\""}],"id":6966,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13296:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13296:105:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6975,"nodeType":"ExpressionStatement","src":"13296:105:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6977,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6934,"src":"13432:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13440:6:28","memberName":"length","nodeType":"MemberAccess","src":"13432:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6979,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6937,"src":"13450:6:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13457:6:28","memberName":"length","nodeType":"MemberAccess","src":"13450:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13432:31:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6982,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6934,"src":"13483:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13491:6:28","memberName":"length","nodeType":"MemberAccess","src":"13483:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6984,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6940,"src":"13501:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":6985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13512:6:28","memberName":"length","nodeType":"MemberAccess","src":"13501:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13483:35:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13432:86:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6988,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6934,"src":"13538:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13546:6:28","memberName":"length","nodeType":"MemberAccess","src":"13538:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6990,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6943,"src":"13556:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":6991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13566:6:28","memberName":"length","nodeType":"MemberAccess","src":"13556:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13538:34:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13432:140:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f6e626c6f636b696e674c7a526563656976653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","id":6994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13586:98:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch\""},"value":"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch\""}],"id":6976,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13411:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13411:283:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6996,"nodeType":"ExpressionStatement","src":"13411:283:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6998,"name":"pType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6945,"src":"13725:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":7002,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"13744:12:28","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$6212_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_enum$_ProposalType_$6212_$","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}],"id":7001,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13739:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13739:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_enum$_ProposalType_$6212","typeString":"type(enum OmnichainGovernanceExecutor.ProposalType)"}},"id":7004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13758:3:28","memberName":"max","nodeType":"MemberAccess","src":"13739:22:28","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$6212","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$6212","typeString":"enum OmnichainGovernanceExecutor.ProposalType"}],"id":7000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13733:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6999,"name":"uint8","nodeType":"ElementaryTypeName","src":"13733:5:28","typeDescriptions":{}}},"id":7005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13733:29:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13765:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13733:33:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13725:41:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f6e626c6f636b696e674c7a526563656976653a20696e76616c69642070726f706f73616c2074797065","id":7009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13780:75:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type\""},"value":"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb","typeString":"literal_string \"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type\""}],"id":6997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13704:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:161:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7011,"nodeType":"ExpressionStatement","src":"13704:161:28"},{"expression":{"arguments":[{"expression":{"id":7013,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6934,"src":"13896:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13904:6:28","memberName":"length","nodeType":"MemberAccess","src":"13896:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7012,"name":"_isEligibleToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5614,"src":"13875:20:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13875:36:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7016,"nodeType":"ExpressionStatement","src":"13875:36:28"},{"assignments":[7019],"declarations":[{"constant":false,"id":7019,"mutability":"mutable","name":"newProposal","nameLocation":"13938:11:28","nodeType":"VariableDeclaration","scope":7056,"src":"13922:27:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_memory_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":7018,"nodeType":"UserDefinedTypeName","pathNode":{"id":7017,"name":"Proposal","nameLocations":["13922:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":6244,"src":"13922:8:28"},"referencedDeclaration":6244,"src":"13922:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":7031,"initialValue":{"arguments":[{"id":7021,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"13979:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":7022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14001:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":7023,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6934,"src":"14025:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":7024,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6937,"src":"14054:6:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":7025,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6940,"src":"14086:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":7026,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6943,"src":"14121:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"hexValue":"66616c7365","id":7027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14154:5:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":7028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14183:5:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":7029,"name":"pType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6945,"src":"14216:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7020,"name":"Proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6244,"src":"13952:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Proposal_$6244_storage_ptr_$","typeString":"type(struct OmnichainGovernanceExecutor.Proposal storage pointer)"}},"id":7030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13975:2:28","13996:3:28","14016:7:28","14046:6:28","14074:10:28","14110:9:28","14144:8:28","14173:8:28","14202:12:28"],"names":["id","eta","targets","values","signatures","calldatas","canceled","executed","proposalType"],"nodeType":"FunctionCall","src":"13952:280:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_memory_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal memory"}},"nodeType":"VariableDeclarationStatement","src":"13922:310:28"},{"expression":{"id":7036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7032,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"14243:9:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$6244_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":7034,"indexExpression":{"id":7033,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"14253:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14243:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7035,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"14260:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_memory_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal memory"}},"src":"14243:28:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"id":7037,"nodeType":"ExpressionStatement","src":"14243:28:28"},{"expression":{"id":7040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7038,"name":"lastProposalReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6257,"src":"14281:20:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7039,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"14304:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14281:26:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7041,"nodeType":"ExpressionStatement","src":"14281:26:28"},{"eventCall":{"arguments":[{"expression":{"id":7043,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"14340:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_memory_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal memory"}},"id":7044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14352:2:28","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6215,"src":"14340:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7045,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6934,"src":"14356:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":7046,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6937,"src":"14365:6:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":7047,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6940,"src":"14373:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":7048,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6943,"src":"14385:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":7049,"name":"pType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6945,"src":"14396:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7042,"name":"ProposalReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"14323:16:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint8)"}},"id":7050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14323:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7051,"nodeType":"EmitStatement","src":"14318:84:28"},{"expression":{"arguments":[{"id":7053,"name":"pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"14419:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7052,"name":"_queue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"14412:6:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14412:11:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7055,"nodeType":"ExpressionStatement","src":"14412:11:28"}]},"documentation":{"id":6902,"nodeType":"StructuredDocumentation","src":"12576:187:28","text":" @notice Process non blocking LayerZero receive request\n @param payload_ Encoded payload containing proposal information\n @custom:event Emit ProposalReceived"},"id":7057,"implemented":true,"kind":"function","modifiers":[{"id":6914,"kind":"modifierInvocation","modifierName":{"id":6913,"name":"whenNotPaused","nameLocations":["12916:13:28"],"nodeType":"IdentifierPath","referencedDeclaration":4215,"src":"12916:13:28"},"nodeType":"ModifierInvocation","src":"12916:13:28"}],"name":"_nonblockingLzReceive","nameLocation":"12777:21:28","nodeType":"FunctionDefinition","overrides":{"id":6912,"nodeType":"OverrideSpecifier","overrides":[],"src":"12907:8:28"},"parameters":{"id":6911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7057,"src":"12808:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6903,"name":"uint16","nodeType":"ElementaryTypeName","src":"12808:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":6906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7057,"src":"12824:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6905,"name":"bytes","nodeType":"ElementaryTypeName","src":"12824:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7057,"src":"12846:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6907,"name":"uint64","nodeType":"ElementaryTypeName","src":"12846:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":6910,"mutability":"mutable","name":"payload_","nameLocation":"12875:8:28","nodeType":"VariableDeclaration","scope":7057,"src":"12862:21:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6909,"name":"bytes","nodeType":"ElementaryTypeName","src":"12862:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12798:91:28"},"returnParameters":{"id":6915,"nodeType":"ParameterList","parameters":[],"src":"12930:0:28"},"scope":7192,"src":"12768:1662:28","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7142,"nodeType":"Block","src":"14656:678:28","statements":[{"assignments":[7065],"declarations":[{"constant":false,"id":7065,"mutability":"mutable","name":"proposal","nameLocation":"14683:8:28","nodeType":"VariableDeclaration","scope":7142,"src":"14666:25:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"},"typeName":{"id":7064,"nodeType":"UserDefinedTypeName","pathNode":{"id":7063,"name":"Proposal","nameLocations":["14666:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":6244,"src":"14666:8:28"},"referencedDeclaration":6244,"src":"14666:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal"}},"visibility":"internal"}],"id":7069,"initialValue":{"baseExpression":{"id":7066,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"14694:9:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$6244_storage_$","typeString":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal storage ref)"}},"id":7068,"indexExpression":{"id":7067,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7060,"src":"14704:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14694:22:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage","typeString":"struct OmnichainGovernanceExecutor.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14666:50:28"},{"assignments":[7071],"declarations":[{"constant":false,"id":7071,"mutability":"mutable","name":"eta","nameLocation":"14734:3:28","nodeType":"VariableDeclaration","scope":7142,"src":"14726:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7070,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7081,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7072,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14740:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14746:9:28","memberName":"timestamp","nodeType":"MemberAccess","src":"14740:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":7074,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"14758:17:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":7077,"indexExpression":{"expression":{"id":7075,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"14776:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":7076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14785:12:28","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":6243,"src":"14776:21:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14758:40:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"id":7078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14799:5:28","memberName":"delay","nodeType":"MemberAccess","referencedDeclaration":7940,"src":"14758:46:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":7079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14758:48:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14740:66:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14726:80:28"},{"expression":{"id":7086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":7082,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"14817:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":7084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14826:3:28","memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":6218,"src":"14817:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7085,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7071,"src":"14832:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:18:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7087,"nodeType":"ExpressionStatement","src":"14817:18:28"},{"expression":{"id":7092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7088,"name":"queued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6274,"src":"14845:6:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":7090,"indexExpression":{"id":7089,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7060,"src":"14852:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14845:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14867:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14845:26:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7093,"nodeType":"ExpressionStatement","src":"14845:26:28"},{"assignments":[7095],"declarations":[{"constant":false,"id":7095,"mutability":"mutable","name":"proposalType","nameLocation":"14887:12:28","nodeType":"VariableDeclaration","scope":7142,"src":"14881:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7094,"name":"uint8","nodeType":"ElementaryTypeName","src":"14881:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":7098,"initialValue":{"expression":{"id":7096,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"14902:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":7097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14911:12:28","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":6243,"src":"14902:21:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"14881:42:28"},{"assignments":[7100],"declarations":[{"constant":false,"id":7100,"mutability":"mutable","name":"length","nameLocation":"14941:6:28","nodeType":"VariableDeclaration","scope":7142,"src":"14933:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7099,"name":"uint256","nodeType":"ElementaryTypeName","src":"14933:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7104,"initialValue":{"expression":{"expression":{"id":7101,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"14950:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":7102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14959:7:28","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":6222,"src":"14950:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":7103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14967:6:28","memberName":"length","nodeType":"MemberAccess","src":"14950:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14933:40:28"},{"eventCall":{"arguments":[{"id":7106,"name":"proposalId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7060,"src":"15003:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7107,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7071,"src":"15016:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7105,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6300,"src":"14988:14:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":7108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14988:32:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7109,"nodeType":"EmitStatement","src":"14983:37:28"},{"body":{"id":7140,"nodeType":"Block","src":"15064:264:28","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":7120,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"15118:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":7121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15127:7:28","memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":6222,"src":"15118:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":7123,"indexExpression":{"id":7122,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"15135:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15118:19:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":7124,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"15155:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":7125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15164:6:28","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":6226,"src":"15155:15:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":7127,"indexExpression":{"id":7126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"15171:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15155:18:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":7128,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"15191:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":7129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15200:10:28","memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":6230,"src":"15191:19:28","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":7131,"indexExpression":{"id":7130,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"15211:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15191:22:28","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"baseExpression":{"expression":{"id":7132,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"15231:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$6244_storage_ptr","typeString":"struct OmnichainGovernanceExecutor.Proposal storage pointer"}},"id":7133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15240:9:28","memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":6234,"src":"15231:18:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":7135,"indexExpression":{"id":7134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"15250:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15231:21:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"id":7136,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7071,"src":"15270:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7137,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7095,"src":"15291:12:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7119,"name":"_queueOrRevertInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"15078:22:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint256,uint8)"}},"id":7138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15078:239:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7139,"nodeType":"ExpressionStatement","src":"15078:239:28"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7113,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"15047:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7114,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7100,"src":"15051:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15047:10:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7141,"initializationExpression":{"assignments":[7111],"declarations":[{"constant":false,"id":7111,"mutability":"mutable","name":"i","nameLocation":"15044:1:28","nodeType":"VariableDeclaration","scope":7141,"src":"15036:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7110,"name":"uint256","nodeType":"ElementaryTypeName","src":"15036:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7112,"nodeType":"VariableDeclarationStatement","src":"15036:9:28"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15059:3:28","subExpression":{"id":7116,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"15061:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7118,"nodeType":"ExpressionStatement","src":"15059:3:28"},"nodeType":"ForStatement","src":"15031:297:28"}]},"documentation":{"id":7058,"nodeType":"StructuredDocumentation","src":"14436:169:28","text":" @notice Queue proposal for execution\n @param proposalId_ Proposal to be queued\n @custom:event Emit ProposalQueued with proposal id and eta"},"id":7143,"implemented":true,"kind":"function","modifiers":[],"name":"_queue","nameLocation":"14619:6:28","nodeType":"FunctionDefinition","parameters":{"id":7061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7060,"mutability":"mutable","name":"proposalId_","nameLocation":"14634:11:28","nodeType":"VariableDeclaration","scope":7143,"src":"14626:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7059,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14625:21:28"},"returnParameters":{"id":7062,"nodeType":"ParameterList","parameters":[],"src":"14656:0:28"},"scope":7192,"src":"14610:724:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7190,"nodeType":"Block","src":"16001:412:28","statements":[{"expression":{"arguments":[{"id":7175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16032:147:28","subExpression":{"arguments":[{"arguments":[{"arguments":[{"id":7167,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7146,"src":"16123:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7168,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7148,"src":"16132:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7169,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7150,"src":"16140:10:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7170,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7152,"src":"16152:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7171,"name":"eta_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7154,"src":"16159:4:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7165,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16112:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16116:6:28","memberName":"encode","nodeType":"MemberAccess","src":"16112:10:28","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16112:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7164,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16102:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16102:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"id":7160,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"16033:17:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":7162,"indexExpression":{"id":7161,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7156,"src":"16051:13:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16033:32:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"id":7163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:18:28","memberName":"queuedTransactions","nodeType":"MemberAccess","referencedDeclaration":7964,"src":"16033:51:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":7174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16033:146:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a71756575654f72526576657274496e7465726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461","id":7176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16193:101:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275","typeString":"literal_string \"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta\""},"value":"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275","typeString":"literal_string \"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta\""}],"id":7159,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16011:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16011:293:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7178,"nodeType":"ExpressionStatement","src":"16011:293:28"},{"expression":{"arguments":[{"id":7183,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7146,"src":"16365:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7184,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7148,"src":"16374:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7185,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7150,"src":"16382:10:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7186,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7152,"src":"16394:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7187,"name":"eta_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7154,"src":"16401:4:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":7179,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"16315:17:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_ITimelock_$8011_$","typeString":"mapping(uint256 => contract ITimelock)"}},"id":7181,"indexExpression":{"id":7180,"name":"proposalType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7156,"src":"16333:13:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16315:32:28","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$8011","typeString":"contract ITimelock"}},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16348:16:28","memberName":"queueTransaction","nodeType":"MemberAccess","referencedDeclaration":7980,"src":"16315:49:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)"}},"id":7188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16315:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7189,"nodeType":"ExpressionStatement","src":"16315:91:28"}]},"documentation":{"id":7144,"nodeType":"StructuredDocumentation","src":"15340:447:28","text":" @notice Check for unique proposal\n @param target_ Address of the contract with the method to be called\n @param value_ Native token amount sent with the transaction\n @param signature_ Signature of the function to be called\n @param data_ Arguments to be passed to the function when called\n @param eta_ Timestamp after which the transaction can be executed\n @param proposalType_ Type of proposal"},"id":7191,"implemented":true,"kind":"function","modifiers":[],"name":"_queueOrRevertInternal","nameLocation":"15801:22:28","nodeType":"FunctionDefinition","parameters":{"id":7157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7146,"mutability":"mutable","name":"target_","nameLocation":"15841:7:28","nodeType":"VariableDeclaration","scope":7191,"src":"15833:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7145,"name":"address","nodeType":"ElementaryTypeName","src":"15833:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7148,"mutability":"mutable","name":"value_","nameLocation":"15866:6:28","nodeType":"VariableDeclaration","scope":7191,"src":"15858:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7147,"name":"uint256","nodeType":"ElementaryTypeName","src":"15858:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7150,"mutability":"mutable","name":"signature_","nameLocation":"15896:10:28","nodeType":"VariableDeclaration","scope":7191,"src":"15882:24:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7149,"name":"string","nodeType":"ElementaryTypeName","src":"15882:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7152,"mutability":"mutable","name":"data_","nameLocation":"15929:5:28","nodeType":"VariableDeclaration","scope":7191,"src":"15916:18:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7151,"name":"bytes","nodeType":"ElementaryTypeName","src":"15916:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7154,"mutability":"mutable","name":"eta_","nameLocation":"15952:4:28","nodeType":"VariableDeclaration","scope":7191,"src":"15944:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7153,"name":"uint256","nodeType":"ElementaryTypeName","src":"15944:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7156,"mutability":"mutable","name":"proposalType_","nameLocation":"15972:13:28","nodeType":"VariableDeclaration","scope":7191,"src":"15966:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7155,"name":"uint8","nodeType":"ElementaryTypeName","src":"15966:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15823:168:28"},"returnParameters":{"id":7158,"nodeType":"ParameterList","parameters":[],"src":"16001:0:28"},"scope":7192,"src":"15792:621:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":7193,"src":"1113:15302:28","usedErrors":[5445,6354],"usedEvents":[471,477,483,491,1009,1019,4081,4191,4196,5510,6293,6300,6305,6316,6321,6330,6337,6344,6351]}],"src":"32:16384:28"},"id":28},"contracts/Cross-chain/OmnichainProposalSender.sol":{"ast":{"absolutePath":"contracts/Cross-chain/OmnichainProposalSender.sol","exportedSymbols":{"BaseOmnichainControllerSrc":[5867],"ILayerZeroEndpoint":[1357],"OmnichainProposalSender":[7914],"ReentrancyGuard":[4342],"ensureNonzeroAddress":[5466]},"id":7915,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7194,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"33:23:29"},{"absolutePath":"@openzeppelin/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","id":7196,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7915,"sourceUnit":4343,"src":"58:87:29","symbolAliases":[{"foreign":{"id":7195,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4342,"src":"67:15:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","id":7198,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7915,"sourceUnit":1358,"src":"146:120:29","symbolAliases":[{"foreign":{"id":7197,"name":"ILayerZeroEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1357,"src":"155:18:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":7200,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7915,"sourceUnit":5482,"src":"267:98:29","symbolAliases":[{"foreign":{"id":7199,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"276:20:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol","file":"./BaseOmnichainControllerSrc.sol","id":7202,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7915,"sourceUnit":5868,"src":"366:78:29","symbolAliases":[{"foreign":{"id":7201,"name":"BaseOmnichainControllerSrc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"375:26:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7204,"name":"ReentrancyGuard","nameLocations":["963:15:29"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"963:15:29"},"id":7205,"nodeType":"InheritanceSpecifier","src":"963:15:29"},{"baseName":{"id":7206,"name":"BaseOmnichainControllerSrc","nameLocations":["980:26:29"],"nodeType":"IdentifierPath","referencedDeclaration":5867,"src":"980:26:29"},"id":7207,"nodeType":"InheritanceSpecifier","src":"980:26:29"}],"canonicalName":"OmnichainProposalSender","contractDependencies":[],"contractKind":"contract","documentation":{"id":7203,"nodeType":"StructuredDocumentation","src":"446:479:29","text":" @title OmnichainProposalSender\n @author Venus\n @notice OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc\n It sends a proposal's data to remote chains for execution after the proposal passes on the main chain\n when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":true,"id":7914,"linearizedBaseContracts":[7914,5867,4288,4180,4364,4342],"name":"OmnichainProposalSender","nameLocation":"936:23:29","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":7208,"nodeType":"StructuredDocumentation","src":"1013:70:29","text":" @notice Stores the total number of remote proposals"},"functionSelector":"da35c664","id":7210,"mutability":"mutable","name":"proposalCount","nameLocation":"1103:13:29","nodeType":"VariableDeclaration","scope":7914,"src":"1088:28:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7209,"name":"uint256","nodeType":"ElementaryTypeName","src":"1088:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":7211,"nodeType":"StructuredDocumentation","src":"1123:106:29","text":" @notice Execution hashes of failed messages\n @dev [proposalId] -> [executionHash]"},"functionSelector":"7dbb533c","id":7215,"mutability":"mutable","name":"storedExecutionHashes","nameLocation":"1269:21:29","nodeType":"VariableDeclaration","scope":7914,"src":"1234:56:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"typeName":{"id":7214,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7212,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1234:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1253:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"constant":false,"documentation":{"id":7216,"nodeType":"StructuredDocumentation","src":"1297:83:29","text":" @notice LayerZero endpoint for sending messages to remote chains"},"functionSelector":"cd4d1c64","id":7219,"mutability":"immutable","name":"LZ_ENDPOINT","nameLocation":"1421:11:29","nodeType":"VariableDeclaration","scope":7914,"src":"1385:47:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":7218,"nodeType":"UserDefinedTypeName","pathNode":{"id":7217,"name":"ILayerZeroEndpoint","nameLocations":["1385:18:29"],"nodeType":"IdentifierPath","referencedDeclaration":1357,"src":"1385:18:29"},"referencedDeclaration":1357,"src":"1385:18:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"visibility":"public"},{"constant":false,"documentation":{"id":7220,"nodeType":"StructuredDocumentation","src":"1439:133:29","text":" @notice Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)"},"functionSelector":"7533d788","id":7224,"mutability":"mutable","name":"trustedRemoteLookup","nameLocation":"1609:19:29","nodeType":"VariableDeclaration","scope":7914,"src":"1577:51:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"typeName":{"id":7223,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7221,"name":"uint16","nodeType":"ElementaryTypeName","src":"1585:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1577:24:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7222,"name":"bytes","nodeType":"ElementaryTypeName","src":"1595:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":7225,"nodeType":"StructuredDocumentation","src":"1635:93:29","text":" @notice Emitted when a remote message receiver is set for the remote chain"},"eventSelector":"e84e609c32d71c678382f7c65cc051810a41dcaf660e55c9f8fcffeba4621a32","id":7233,"name":"SetTrustedRemoteAddress","nameLocation":"1739:23:29","nodeType":"EventDefinition","parameters":{"id":7232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7227,"indexed":true,"mutability":"mutable","name":"remoteChainId","nameLocation":"1778:13:29","nodeType":"VariableDeclaration","scope":7233,"src":"1763:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7226,"name":"uint16","nodeType":"ElementaryTypeName","src":"1763:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7229,"indexed":false,"mutability":"mutable","name":"oldRemoteAddress","nameLocation":"1799:16:29","nodeType":"VariableDeclaration","scope":7233,"src":"1793:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7228,"name":"bytes","nodeType":"ElementaryTypeName","src":"1793:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7231,"indexed":false,"mutability":"mutable","name":"newRemoteAddress","nameLocation":"1823:16:29","nodeType":"VariableDeclaration","scope":7233,"src":"1817:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7230,"name":"bytes","nodeType":"ElementaryTypeName","src":"1817:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1762:78:29"},"src":"1733:108:29"},{"anonymous":false,"documentation":{"id":7234,"nodeType":"StructuredDocumentation","src":"1847:74:29","text":" @notice Event emitted when trusted remote sets to empty"},"eventSelector":"6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd37","id":7238,"name":"TrustedRemoteRemoved","nameLocation":"1932:20:29","nodeType":"EventDefinition","parameters":{"id":7237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7236,"indexed":true,"mutability":"mutable","name":"chainId","nameLocation":"1968:7:29","nodeType":"VariableDeclaration","scope":7238,"src":"1953:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7235,"name":"uint16","nodeType":"ElementaryTypeName","src":"1953:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1952:24:29"},"src":"1926:51:29"},{"anonymous":false,"documentation":{"id":7239,"nodeType":"StructuredDocumentation","src":"1983:96:29","text":" @notice Emitted when a proposal execution request is sent to the remote chain"},"eventSelector":"95a4fcf4eb9be6f5cf2eb6830782870f8907bccc513f765388a9cb2dae2f3259","id":7247,"name":"ExecuteRemoteProposal","nameLocation":"2090:21:29","nodeType":"EventDefinition","parameters":{"id":7246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7241,"indexed":true,"mutability":"mutable","name":"remoteChainId","nameLocation":"2127:13:29","nodeType":"VariableDeclaration","scope":7247,"src":"2112:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7240,"name":"uint16","nodeType":"ElementaryTypeName","src":"2112:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7243,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"2150:10:29","nodeType":"VariableDeclaration","scope":7247,"src":"2142:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7242,"name":"uint256","nodeType":"ElementaryTypeName","src":"2142:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7245,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"2168:7:29","nodeType":"VariableDeclaration","scope":7247,"src":"2162:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7244,"name":"bytes","nodeType":"ElementaryTypeName","src":"2162:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2111:65:29"},"src":"2084:93:29"},{"anonymous":false,"documentation":{"id":7248,"nodeType":"StructuredDocumentation","src":"2183:108:29","text":" @notice Emitted when a previously failed message is successfully sent to the remote chain"},"eventSelector":"2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e","id":7254,"name":"ClearPayload","nameLocation":"2302:12:29","nodeType":"EventDefinition","parameters":{"id":7253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7250,"indexed":true,"mutability":"mutable","name":"proposalId","nameLocation":"2331:10:29","nodeType":"VariableDeclaration","scope":7254,"src":"2315:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7249,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7252,"indexed":false,"mutability":"mutable","name":"executionHash","nameLocation":"2351:13:29","nodeType":"VariableDeclaration","scope":7254,"src":"2343:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2343:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2314:51:29"},"src":"2296:70:29"},{"anonymous":false,"documentation":{"id":7255,"nodeType":"StructuredDocumentation","src":"2372:86:29","text":" @notice Emitted when an execution hash of a failed message is saved"},"eventSelector":"6d16111647e03d7f1cb2b71c02eafe3355b97dfc17af3de1b94ef39c8a9ee4d9","id":7269,"name":"StorePayload","nameLocation":"2469:12:29","nodeType":"EventDefinition","parameters":{"id":7268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7257,"indexed":true,"mutability":"mutable","name":"proposalId","nameLocation":"2507:10:29","nodeType":"VariableDeclaration","scope":7269,"src":"2491:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7256,"name":"uint256","nodeType":"ElementaryTypeName","src":"2491:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7259,"indexed":true,"mutability":"mutable","name":"remoteChainId","nameLocation":"2542:13:29","nodeType":"VariableDeclaration","scope":7269,"src":"2527:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7258,"name":"uint16","nodeType":"ElementaryTypeName","src":"2527:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7261,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"2571:7:29","nodeType":"VariableDeclaration","scope":7269,"src":"2565:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7260,"name":"bytes","nodeType":"ElementaryTypeName","src":"2565:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7263,"indexed":false,"mutability":"mutable","name":"adapterParams","nameLocation":"2594:13:29","nodeType":"VariableDeclaration","scope":7269,"src":"2588:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7262,"name":"bytes","nodeType":"ElementaryTypeName","src":"2588:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7265,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2625:5:29","nodeType":"VariableDeclaration","scope":7269,"src":"2617:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7264,"name":"uint256","nodeType":"ElementaryTypeName","src":"2617:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7267,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"2646:6:29","nodeType":"VariableDeclaration","scope":7269,"src":"2640:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7266,"name":"bytes","nodeType":"ElementaryTypeName","src":"2640:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2481:177:29"},"src":"2463:196:29"},{"anonymous":false,"documentation":{"id":7270,"nodeType":"StructuredDocumentation","src":"2664:58:29","text":" @notice Emitted while fallback withdraw"},"eventSelector":"22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab96","id":7276,"name":"FallbackWithdraw","nameLocation":"2733:16:29","nodeType":"EventDefinition","parameters":{"id":7275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7272,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"2766:8:29","nodeType":"VariableDeclaration","scope":7276,"src":"2750:24:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7271,"name":"address","nodeType":"ElementaryTypeName","src":"2750:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7274,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2784:5:29","nodeType":"VariableDeclaration","scope":7276,"src":"2776:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7273,"name":"uint256","nodeType":"ElementaryTypeName","src":"2776:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2749:41:29"},"src":"2727:64:29"},{"body":{"id":7298,"nodeType":"Block","src":"2944:94:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":7290,"name":"lzEndpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"2983:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}],"id":7289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2975:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7288,"name":"address","nodeType":"ElementaryTypeName","src":"2975:7:29","typeDescriptions":{}}},"id":7291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2975:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7287,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"2954:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":7292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2954:42:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7293,"nodeType":"ExpressionStatement","src":"2954:42:29"},{"expression":{"id":7296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7294,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7219,"src":"3006:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7295,"name":"lzEndpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"3020:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"src":"3006:25:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":7297,"nodeType":"ExpressionStatement","src":"3006:25:29"}]},"id":7299,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7284,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"2921:21:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":7285,"kind":"baseConstructorSpecifier","modifierName":{"id":7283,"name":"BaseOmnichainControllerSrc","nameLocations":["2894:26:29"],"nodeType":"IdentifierPath","referencedDeclaration":5867,"src":"2894:26:29"},"nodeType":"ModifierInvocation","src":"2894:49:29"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7279,"mutability":"mutable","name":"lzEndpoint_","nameLocation":"2837:11:29","nodeType":"VariableDeclaration","scope":7299,"src":"2818:30:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":7278,"nodeType":"UserDefinedTypeName","pathNode":{"id":7277,"name":"ILayerZeroEndpoint","nameLocations":["2818:18:29"],"nodeType":"IdentifierPath","referencedDeclaration":1357,"src":"2818:18:29"},"referencedDeclaration":1357,"src":"2818:18:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"visibility":"internal"},{"constant":false,"id":7281,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2866:21:29","nodeType":"VariableDeclaration","scope":7299,"src":"2858:29:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7280,"name":"address","nodeType":"ElementaryTypeName","src":"2858:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2808:85:29"},"returnParameters":{"id":7286,"nodeType":"ParameterList","parameters":[],"src":"2944:0:29"},"scope":7914,"src":"2797:241:29","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7327,"nodeType":"Block","src":"4100:114:29","statements":[{"expression":{"arguments":[{"id":7317,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7302,"src":"4142:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":7320,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4166:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainProposalSender_$7914","typeString":"contract OmnichainProposalSender"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmnichainProposalSender_$7914","typeString":"contract OmnichainProposalSender"}],"id":7319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4158:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7318,"name":"address","nodeType":"ElementaryTypeName","src":"4158:7:29","typeDescriptions":{}}},"id":7321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7322,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7304,"src":"4173:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7323,"name":"useZro_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7306,"src":"4183:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7324,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7308,"src":"4192:14:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"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_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":7315,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7219,"src":"4117:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":7316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4129:12:29","memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":1282,"src":"4117:24:29","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":7325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4117:90:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":7314,"id":7326,"nodeType":"Return","src":"4110:97:29"}]},"documentation":{"id":7300,"nodeType":"StructuredDocumentation","src":"3044:857:29","text":" @notice Estimates LayerZero fees for cross-chain message delivery to the remote chain\n @dev The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\n @param remoteChainId_ The LayerZero id of a remote chain\n @param payload_ The payload to be sent to the remote chain. It's computed as follows:\n payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n @param useZro_ Bool that indicates whether to pay in ZRO tokens or not\n @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n @return nativeFee The amount of fee in the native gas token (e.g. ETH)\n @return zroFee The amount of fee in ZRO token"},"functionSelector":"21b4eaa1","id":7328,"implemented":true,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"3915:12:29","nodeType":"FunctionDefinition","parameters":{"id":7309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7302,"mutability":"mutable","name":"remoteChainId_","nameLocation":"3944:14:29","nodeType":"VariableDeclaration","scope":7328,"src":"3937:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7301,"name":"uint16","nodeType":"ElementaryTypeName","src":"3937:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7304,"mutability":"mutable","name":"payload_","nameLocation":"3983:8:29","nodeType":"VariableDeclaration","scope":7328,"src":"3968:23:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7303,"name":"bytes","nodeType":"ElementaryTypeName","src":"3968:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7306,"mutability":"mutable","name":"useZro_","nameLocation":"4006:7:29","nodeType":"VariableDeclaration","scope":7328,"src":"4001:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7305,"name":"bool","nodeType":"ElementaryTypeName","src":"4001:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7308,"mutability":"mutable","name":"adapterParams_","nameLocation":"4038:14:29","nodeType":"VariableDeclaration","scope":7328,"src":"4023:29:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7307,"name":"bytes","nodeType":"ElementaryTypeName","src":"4023:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3927:131:29"},"returnParameters":{"id":7314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7328,"src":"4082:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7310,"name":"uint256","nodeType":"ElementaryTypeName","src":"4082:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7313,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7328,"src":"4091:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7312,"name":"uint256","nodeType":"ElementaryTypeName","src":"4091:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4081:18:29"},"scope":7914,"src":"3906:308:29","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":7357,"nodeType":"Block","src":"4569:284:29","statements":[{"expression":{"arguments":[{"hexValue":"72656d6f76655472757374656452656d6f74652875696e74313629","id":7335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4594:29:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dbbec08fb1e5f0b31c703e4dff7e3268ebac9da544f0373d4687a0b82b9223e","typeString":"literal_string \"removeTrustedRemote(uint16)\""},"value":"removeTrustedRemote(uint16)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dbbec08fb1e5f0b31c703e4dff7e3268ebac9da544f0373d4687a0b82b9223e","typeString":"literal_string \"removeTrustedRemote(uint16)\""}],"id":7334,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"4579:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":7336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4579:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7337,"nodeType":"ExpressionStatement","src":"4579:45:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7339,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"4642:19:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":7341,"indexExpression":{"id":7340,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7331,"src":"4662:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4642:35:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":7342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4678:6:29","memberName":"length","nodeType":"MemberAccess","src":"4642:42:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4688:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4642:47:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20747275737465642072656d6f7465206e6f7420666f756e64","id":7345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4691:51:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53","typeString":"literal_string \"OmnichainProposalSender: trusted remote not found\""},"value":"OmnichainProposalSender: trusted remote not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53","typeString":"literal_string \"OmnichainProposalSender: trusted remote not found\""}],"id":7338,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4634:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4634:109:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7347,"nodeType":"ExpressionStatement","src":"4634:109:29"},{"expression":{"id":7351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4753:42:29","subExpression":{"baseExpression":{"id":7348,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"4760:19:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":7350,"indexExpression":{"id":7349,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7331,"src":"4780:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4760:35:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7352,"nodeType":"ExpressionStatement","src":"4753:42:29"},{"eventCall":{"arguments":[{"id":7354,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7331,"src":"4831:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":7353,"name":"TrustedRemoteRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7238,"src":"4810:20:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16)"}},"id":7355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7356,"nodeType":"EmitStatement","src":"4805:41:29"}]},"documentation":{"id":7329,"nodeType":"StructuredDocumentation","src":"4220:283:29","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 Controlled by Access Control Manager\n @custom:event Emit TrustedRemoteRemoved with remote chain id"},"functionSelector":"2dbbec08","id":7358,"implemented":true,"kind":"function","modifiers":[],"name":"removeTrustedRemote","nameLocation":"4517:19:29","nodeType":"FunctionDefinition","parameters":{"id":7332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7331,"mutability":"mutable","name":"remoteChainId_","nameLocation":"4544:14:29","nodeType":"VariableDeclaration","scope":7358,"src":"4537:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7330,"name":"uint16","nodeType":"ElementaryTypeName","src":"4537:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4536:23:29"},"returnParameters":{"id":7333,"nodeType":"ParameterList","parameters":[],"src":"4569:0:29"},"scope":7914,"src":"4508:345:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7479,"nodeType":"Block","src":"6069:1321:29","statements":[{"expression":{"arguments":[{"hexValue":"657865637574652875696e7431362c62797465732c62797465732c6164647265737329","id":7373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6094:37:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fd9d7efa735693e4dd1c041655113c895f924ac98c05803ddef289db151740d","typeString":"literal_string \"execute(uint16,bytes,bytes,address)\""},"value":"execute(uint16,bytes,bytes,address)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3fd9d7efa735693e4dd1c041655113c895f924ac98c05803ddef289db151740d","typeString":"literal_string \"execute(uint16,bytes,bytes,address)\""}],"id":7372,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"6079:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":7374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6079:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7375,"nodeType":"ExpressionStatement","src":"6079:53:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7377,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6284:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6288:5:29","memberName":"value","nodeType":"MemberAccess","src":"6284:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6296:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6284:13:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2076616c75652063616e6e6f74206265207a65726f","id":7381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6299:47:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565","typeString":"literal_string \"OmnichainProposalSender: value cannot be zero\""},"value":"OmnichainProposalSender: value cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565","typeString":"literal_string \"OmnichainProposalSender: value cannot be zero\""}],"id":7376,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6276:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:71:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7383,"nodeType":"ExpressionStatement","src":"6276:71:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7385,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"6365:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":7386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6374:6:29","memberName":"length","nodeType":"MemberAccess","src":"6365:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6384:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6365:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207061796c6f6164","id":7389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6387:40:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""},"value":"OmnichainProposalSender: empty payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""}],"id":7384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6357:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6357:71:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7391,"nodeType":"ExpressionStatement","src":"6357:71:29"},{"assignments":[7393],"declarations":[{"constant":false,"id":7393,"mutability":"mutable","name":"trustedRemote","nameLocation":"6452:13:29","nodeType":"VariableDeclaration","scope":7479,"src":"6439:26:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7392,"name":"bytes","nodeType":"ElementaryTypeName","src":"6439:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7397,"initialValue":{"baseExpression":{"id":7394,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"6468:19:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":7396,"indexExpression":{"id":7395,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"6488:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6468:35:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6439:64:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7399,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"6521:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6535:6:29","memberName":"length","nodeType":"MemberAccess","src":"6521:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6545:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6521:25:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":7403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6548:68:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370","typeString":"literal_string \"OmnichainProposalSender: destination chain is not a trusted source\""},"value":"OmnichainProposalSender: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370","typeString":"literal_string \"OmnichainProposalSender: destination chain is not a trusted source\""}],"id":7398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6513:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6513:104:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7405,"nodeType":"ExpressionStatement","src":"6513:104:29"},{"expression":{"arguments":[{"id":7407,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"6645:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7408,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"6661:8:29","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":7406,"name":"_validateProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7913,"src":"6627:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":7409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6627:43:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7410,"nodeType":"ExpressionStatement","src":"6627:43:29"},{"assignments":[7412],"declarations":[{"constant":false,"id":7412,"mutability":"mutable","name":"_pId","nameLocation":"6688:4:29","nodeType":"VariableDeclaration","scope":7479,"src":"6680:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7411,"name":"uint256","nodeType":"ElementaryTypeName","src":"6680:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7415,"initialValue":{"id":7414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6695:15:29","subExpression":{"id":7413,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"6697:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6680:30:29"},{"assignments":[7417],"declarations":[{"constant":false,"id":7417,"mutability":"mutable","name":"payload","nameLocation":"6733:7:29","nodeType":"VariableDeclaration","scope":7479,"src":"6720:20:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7416,"name":"bytes","nodeType":"ElementaryTypeName","src":"6720:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7423,"initialValue":{"arguments":[{"id":7420,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"6754:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7421,"name":"_pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"6764:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6743:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6747:6:29","memberName":"encode","nodeType":"MemberAccess","src":"6743:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6743:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6720:49:29"},{"clauses":[{"block":{"id":7446,"nodeType":"Block","src":"7048:82:29","statements":[{"eventCall":{"arguments":[{"id":7441,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"7089:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7442,"name":"_pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"7105:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7443,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"7111:7:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7440,"name":"ExecuteRemoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7247,"src":"7067:21:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,uint256,bytes memory)"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7067:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7445,"nodeType":"EmitStatement","src":"7062:57:29"}]},"errorName":"","id":7447,"nodeType":"TryCatchClause","src":"7048:82:29"},{"block":{"id":7476,"nodeType":"Block","src":"7159:225:29","statements":[{"expression":{"id":7464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7451,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"7173:21:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":7453,"indexExpression":{"id":7452,"name":"_pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"7195:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7173:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":7457,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"7224:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7458,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"7240:7:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7459,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7365,"src":"7249:14:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":7460,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7265:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7269:5:29","memberName":"value","nodeType":"MemberAccess","src":"7265:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7213:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7217:6:29","memberName":"encode","nodeType":"MemberAccess","src":"7213:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7213:62:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7454,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7203:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7173:103:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7465,"nodeType":"ExpressionStatement","src":"7173:103:29"},{"eventCall":{"arguments":[{"id":7467,"name":"_pId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"7308:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7468,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"7314:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7469,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"7330:7:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7470,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7365,"src":"7339:14:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":7471,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7355:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7359:5:29","memberName":"value","nodeType":"MemberAccess","src":"7355:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7473,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7449,"src":"7366:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7466,"name":"StorePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7269,"src":"7295:12:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,uint16,bytes memory,bytes memory,uint256,bytes memory)"}},"id":7474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7295:78:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7475,"nodeType":"EmitStatement","src":"7290:83:29"}]},"errorName":"","id":7477,"nodeType":"TryCatchClause","parameters":{"id":7450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7449,"mutability":"mutable","name":"reason","nameLocation":"7151:6:29","nodeType":"VariableDeclaration","scope":7477,"src":"7138:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7448,"name":"bytes","nodeType":"ElementaryTypeName","src":"7138:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7137:21:29"},"src":"7131:253:29"}],"externalCall":{"arguments":[{"id":7429,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"6850:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7430,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"6882:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7431,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"6913:7:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":7434,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6946:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6950:6:29","memberName":"sender","nodeType":"MemberAccess","src":"6946:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6938:8:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":7432,"name":"address","nodeType":"ElementaryTypeName","src":"6938:8:29","stateMutability":"payable","typeDescriptions":{}}},"id":7436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6938:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":7437,"name":"zroPaymentAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7367,"src":"6975:18:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7438,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7365,"src":"7011:14:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"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_calldata_ptr","typeString":"bytes calldata"}],"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_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":7424,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7219,"src":"6796:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":7425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6808:4:29","memberName":"send","nodeType":"MemberAccess","referencedDeclaration":1232,"src":"6796:16:29","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":7428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":7426,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6821:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6825:5:29","memberName":"value","nodeType":"MemberAccess","src":"6821:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6796:36:29","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":7439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6796:243:29","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7478,"nodeType":"TryStatement","src":"6780:604:29"}]},"documentation":{"id":7359,"nodeType":"StructuredDocumentation","src":"4859:1012:29","text":" @notice Sends a message to execute a remote proposal\n @dev Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\n @param remoteChainId_ The LayerZero id of the remote chain\n @param payload_ The payload to be sent to the remote chain\n It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\n @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\n @custom:event Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on success\n @custom:event Emits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\n @custom:access Controlled by Access Control Manager"},"functionSelector":"3fd9d7ef","id":7480,"implemented":true,"kind":"function","modifiers":[{"id":7370,"kind":"modifierInvocation","modifierName":{"id":7369,"name":"whenNotPaused","nameLocations":["6055:13:29"],"nodeType":"IdentifierPath","referencedDeclaration":4215,"src":"6055:13:29"},"nodeType":"ModifierInvocation","src":"6055:13:29"}],"name":"execute","nameLocation":"5885:7:29","nodeType":"FunctionDefinition","parameters":{"id":7368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7361,"mutability":"mutable","name":"remoteChainId_","nameLocation":"5909:14:29","nodeType":"VariableDeclaration","scope":7480,"src":"5902:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7360,"name":"uint16","nodeType":"ElementaryTypeName","src":"5902:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7363,"mutability":"mutable","name":"payload_","nameLocation":"5948:8:29","nodeType":"VariableDeclaration","scope":7480,"src":"5933:23:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7362,"name":"bytes","nodeType":"ElementaryTypeName","src":"5933:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7365,"mutability":"mutable","name":"adapterParams_","nameLocation":"5981:14:29","nodeType":"VariableDeclaration","scope":7480,"src":"5966:29:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7364,"name":"bytes","nodeType":"ElementaryTypeName","src":"5966:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7367,"mutability":"mutable","name":"zroPaymentAddress_","nameLocation":"6013:18:29","nodeType":"VariableDeclaration","scope":7480,"src":"6005:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7366,"name":"address","nodeType":"ElementaryTypeName","src":"6005:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5892:145:29"},"returnParameters":{"id":7371,"nodeType":"ParameterList","parameters":[],"src":"6069:0:29"},"scope":7914,"src":"5876:1514:29","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":7604,"nodeType":"Block","src":"8586:1145:29","statements":[{"expression":{"arguments":[{"hexValue":"7265747279457865637574652875696e743235362c75696e7431362c62797465732c62797465732c616464726573732c75696e7432353629","id":7501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8611:58:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2222b0ec35e4fa576f31f72f2c5a26afdf6b84ac315b7af59d111107a7c89d6","typeString":"literal_string \"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\""},"value":"retryExecute(uint256,uint16,bytes,bytes,address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2222b0ec35e4fa576f31f72f2c5a26afdf6b84ac315b7af59d111107a7c89d6","typeString":"literal_string \"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\""}],"id":7500,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"8596:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":7502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8596:74:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7503,"nodeType":"ExpressionStatement","src":"8596:74:29"},{"assignments":[7505],"declarations":[{"constant":false,"id":7505,"mutability":"mutable","name":"trustedRemote","nameLocation":"8693:13:29","nodeType":"VariableDeclaration","scope":7604,"src":"8680:26:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7504,"name":"bytes","nodeType":"ElementaryTypeName","src":"8680:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7509,"initialValue":{"baseExpression":{"id":7506,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"8709:19:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":7508,"indexExpression":{"id":7507,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"8729:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8709:35:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8680:64:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7511,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7505,"src":"8762:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8776:6:29","memberName":"length","nodeType":"MemberAccess","src":"8762:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8786:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8762:25:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":7515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8789:68:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370","typeString":"literal_string \"OmnichainProposalSender: destination chain is not a trusted source\""},"value":"OmnichainProposalSender: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370","typeString":"literal_string \"OmnichainProposalSender: destination chain is not a trusted source\""}],"id":7510,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8754:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8754:104:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7517,"nodeType":"ExpressionStatement","src":"8754:104:29"},{"assignments":[7519],"declarations":[{"constant":false,"id":7519,"mutability":"mutable","name":"hash","nameLocation":"8876:4:29","nodeType":"VariableDeclaration","scope":7604,"src":"8868:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8868:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7523,"initialValue":{"baseExpression":{"id":7520,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"8883:21:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":7522,"indexExpression":{"id":7521,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"8905:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8883:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8868:42:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7525,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7519,"src":"8928:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8944:1:29","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":7527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8936:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8936:7:29","typeDescriptions":{}}},"id":7529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8936:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8928:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f726564207061796c6f6164","id":7531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8948:44:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d","typeString":"literal_string \"OmnichainProposalSender: no stored payload\""},"value":"OmnichainProposalSender: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d","typeString":"literal_string \"OmnichainProposalSender: no stored payload\""}],"id":7524,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8920:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8920:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7533,"nodeType":"ExpressionStatement","src":"8920:73:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7535,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7487,"src":"9011:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":7536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9020:6:29","memberName":"length","nodeType":"MemberAccess","src":"9011:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9030:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9011:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207061796c6f6164","id":7539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9033:40:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""},"value":"OmnichainProposalSender: empty payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""}],"id":7534,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9003:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:71:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7541,"nodeType":"ExpressionStatement","src":"9003:71:29"},{"assignments":[7543,null],"declarations":[{"constant":false,"id":7543,"mutability":"mutable","name":"payload","nameLocation":"9098:7:29","nodeType":"VariableDeclaration","scope":7604,"src":"9085:20:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7542,"name":"bytes","nodeType":"ElementaryTypeName","src":"9085:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},null],"id":7553,"initialValue":{"arguments":[{"id":7546,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7487,"src":"9122:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":7548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9133:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7547,"name":"bytes","nodeType":"ElementaryTypeName","src":"9133:5:29","typeDescriptions":{}}},{"id":7550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9140:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7549,"name":"uint256","nodeType":"ElementaryTypeName","src":"9140:7:29","typeDescriptions":{}}}],"id":7551,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9132:16:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":7544,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9111:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9115:6:29","memberName":"decode","nodeType":"MemberAccess","src":"9111:10:29","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":7552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9111:38:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"9084:65:29"},{"expression":{"arguments":[{"id":7555,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"9177:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7556,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7543,"src":"9193:7:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7554,"name":"_validateProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7913,"src":"9159:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":7557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9159:42:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7558,"nodeType":"ExpressionStatement","src":"9159:42:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":7563,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"9254:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7564,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7487,"src":"9270:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7565,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7489,"src":"9280:14:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7566,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7493,"src":"9296:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9243:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9247:6:29","memberName":"encode","nodeType":"MemberAccess","src":"9243:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9243:68:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7560,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9233:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9233:79:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7569,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7519,"src":"9316:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9233:87:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696420657865637574696f6e20706172616d73","id":7571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9334:51:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286","typeString":"literal_string \"OmnichainProposalSender: invalid execution params\""},"value":"OmnichainProposalSender: invalid execution params"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286","typeString":"literal_string \"OmnichainProposalSender: invalid execution params\""}],"id":7559,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9212:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9212:183:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7573,"nodeType":"ExpressionStatement","src":"9212:183:29"},{"expression":{"id":7577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9406:34:29","subExpression":{"baseExpression":{"id":7574,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"9413:21:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":7576,"indexExpression":{"id":7575,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"9435:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9413:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7578,"nodeType":"ExpressionStatement","src":"9406:34:29"},{"eventCall":{"arguments":[{"id":7580,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"9469:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7581,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7519,"src":"9475:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7579,"name":"ClearPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7254,"src":"9456:12:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":7582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9456:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7583,"nodeType":"EmitStatement","src":"9451:29:29"},{"expression":{"arguments":[{"id":7592,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"9558:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7593,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7505,"src":"9586:13:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7594,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7487,"src":"9613:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"expression":{"id":7597,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9643:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9647:6:29","memberName":"sender","nodeType":"MemberAccess","src":"9643:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9635:8:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":7595,"name":"address","nodeType":"ElementaryTypeName","src":"9635:8:29","stateMutability":"payable","typeDescriptions":{}}},"id":7599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9635:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":7600,"name":"zroPaymentAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7491,"src":"9668:18:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7601,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7489,"src":"9700:14:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":7584,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7219,"src":"9491:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":7586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9503:4:29","memberName":"send","nodeType":"MemberAccess","referencedDeclaration":1232,"src":"9491:16:29","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":7591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7587,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7493,"src":"9516:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":7588,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9533:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9537:5:29","memberName":"value","nodeType":"MemberAccess","src":"9533:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:26:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"9491:53:29","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":7602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9491:233:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7603,"nodeType":"ExpressionStatement","src":"9491:233:29"}]},"documentation":{"id":7481,"nodeType":"StructuredDocumentation","src":"7396:920:29","text":" @notice Resends a previously failed message\n @dev Allows providing more fees if needed. The extra fees will be refunded to the caller\n @param pId_ The proposal ID to identify a failed message\n @param remoteChainId_ The LayerZero id of the remote chain\n @param payload_ The payload to be sent to the remote chain\n It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction.\n @param originalValue_ The msg.value passed when execute() function was called\n @custom:event Emits ClearPayload with proposal ID and hash\n @custom:access Controlled by Access Control Manager"},"functionSelector":"e2222b0e","id":7605,"implemented":true,"kind":"function","modifiers":[{"id":7496,"kind":"modifierInvocation","modifierName":{"id":7495,"name":"whenNotPaused","nameLocations":["8559:13:29"],"nodeType":"IdentifierPath","referencedDeclaration":4215,"src":"8559:13:29"},"nodeType":"ModifierInvocation","src":"8559:13:29"},{"id":7498,"kind":"modifierInvocation","modifierName":{"id":7497,"name":"nonReentrant","nameLocations":["8573:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":4318,"src":"8573:12:29"},"nodeType":"ModifierInvocation","src":"8573:12:29"}],"name":"retryExecute","nameLocation":"8330:12:29","nodeType":"FunctionDefinition","parameters":{"id":7494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7483,"mutability":"mutable","name":"pId_","nameLocation":"8360:4:29","nodeType":"VariableDeclaration","scope":7605,"src":"8352:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7482,"name":"uint256","nodeType":"ElementaryTypeName","src":"8352:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7485,"mutability":"mutable","name":"remoteChainId_","nameLocation":"8381:14:29","nodeType":"VariableDeclaration","scope":7605,"src":"8374:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7484,"name":"uint16","nodeType":"ElementaryTypeName","src":"8374:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7487,"mutability":"mutable","name":"payload_","nameLocation":"8420:8:29","nodeType":"VariableDeclaration","scope":7605,"src":"8405:23:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7486,"name":"bytes","nodeType":"ElementaryTypeName","src":"8405:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7489,"mutability":"mutable","name":"adapterParams_","nameLocation":"8453:14:29","nodeType":"VariableDeclaration","scope":7605,"src":"8438:29:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7488,"name":"bytes","nodeType":"ElementaryTypeName","src":"8438:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7491,"mutability":"mutable","name":"zroPaymentAddress_","nameLocation":"8485:18:29","nodeType":"VariableDeclaration","scope":7605,"src":"8477:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7490,"name":"address","nodeType":"ElementaryTypeName","src":"8477:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7493,"mutability":"mutable","name":"originalValue_","nameLocation":"8521:14:29","nodeType":"VariableDeclaration","scope":7605,"src":"8513:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7492,"name":"uint256","nodeType":"ElementaryTypeName","src":"8513:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8342:199:29"},"returnParameters":{"id":7499,"nodeType":"ParameterList","parameters":[],"src":"8586:0:29"},"scope":7914,"src":"8321:1410:29","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":7708,"nodeType":"Block","src":"10785:841:29","statements":[{"expression":{"arguments":[{"id":7626,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7608,"src":"10816:3:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7625,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"10795:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":7627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10795:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7628,"nodeType":"ExpressionStatement","src":"10795:25:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7630,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7618,"src":"10838:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10855:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10838:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c6964206e617469766520616d6f756e74","id":7633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10858:48:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d","typeString":"literal_string \"OmnichainProposalSender: invalid native amount\""},"value":"OmnichainProposalSender: invalid native amount"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d","typeString":"literal_string \"OmnichainProposalSender: invalid native amount\""}],"id":7629,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10830:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10830:77:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7635,"nodeType":"ExpressionStatement","src":"10830:77:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7637,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7614,"src":"10925:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":7638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10934:6:29","memberName":"length","nodeType":"MemberAccess","src":"10925:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10944:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10925:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207061796c6f6164","id":7641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10947:40:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""},"value":"OmnichainProposalSender: empty payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55","typeString":"literal_string \"OmnichainProposalSender: empty payload\""}],"id":7636,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10917:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10917:71:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7643,"nodeType":"ExpressionStatement","src":"10917:71:29"},{"assignments":[7645],"declarations":[{"constant":false,"id":7645,"mutability":"mutable","name":"hash","nameLocation":"11007:4:29","nodeType":"VariableDeclaration","scope":7708,"src":"10999:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10999:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7649,"initialValue":{"baseExpression":{"id":7646,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"11014:21:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":7648,"indexExpression":{"id":7647,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7610,"src":"11036:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11014:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10999:42:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7651,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"11059:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11075:1:29","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":7653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11067:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11067:7:29","typeDescriptions":{}}},"id":7655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11067:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11059:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f726564207061796c6f6164","id":7657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11079:44:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d","typeString":"literal_string \"OmnichainProposalSender: no stored payload\""},"value":"OmnichainProposalSender: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d","typeString":"literal_string \"OmnichainProposalSender: no stored payload\""}],"id":7650,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11051:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11051:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7659,"nodeType":"ExpressionStatement","src":"11051:73:29"},{"assignments":[7661],"declarations":[{"constant":false,"id":7661,"mutability":"mutable","name":"execution","nameLocation":"11148:9:29","nodeType":"VariableDeclaration","scope":7708,"src":"11135:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7660,"name":"bytes","nodeType":"ElementaryTypeName","src":"11135:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7669,"initialValue":{"arguments":[{"id":7664,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7612,"src":"11171:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7665,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7614,"src":"11187:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7666,"name":"adapterParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7616,"src":"11197:14:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7667,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7618,"src":"11213:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7662,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11160:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11164:6:29","memberName":"encode","nodeType":"MemberAccess","src":"11160:10:29","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11160:68:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11135:93:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7672,"name":"execution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7661,"src":"11256:9:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7671,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11246:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11246:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7674,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"11270:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11246:28:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696420657865637574696f6e20706172616d73","id":7676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11276:51:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286","typeString":"literal_string \"OmnichainProposalSender: invalid execution params\""},"value":"OmnichainProposalSender: invalid execution params"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286","typeString":"literal_string \"OmnichainProposalSender: invalid execution params\""}],"id":7670,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11238:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11238:90:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7678,"nodeType":"ExpressionStatement","src":"11238:90:29"},{"expression":{"id":7682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11339:34:29","subExpression":{"baseExpression":{"id":7679,"name":"storedExecutionHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"11346:21:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":7681,"indexExpression":{"id":7680,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7610,"src":"11368:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11346:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7683,"nodeType":"ExpressionStatement","src":"11339:34:29"},{"eventCall":{"arguments":[{"id":7685,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7608,"src":"11406:3:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7686,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7618,"src":"11411:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7684,"name":"FallbackWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7276,"src":"11389:16:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11389:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7688,"nodeType":"EmitStatement","src":"11384:42:29"},{"eventCall":{"arguments":[{"id":7690,"name":"pId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7610,"src":"11454:4:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7691,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"11460:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7689,"name":"ClearPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7254,"src":"11441:12:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":7692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11441:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7693,"nodeType":"EmitStatement","src":"11436:29:29"},{"assignments":[7695,null],"declarations":[{"constant":false,"id":7695,"mutability":"mutable","name":"sent","nameLocation":"11534:4:29","nodeType":"VariableDeclaration","scope":7708,"src":"11529:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7694,"name":"bool","nodeType":"ElementaryTypeName","src":"11529:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":7702,"initialValue":{"arguments":[{"hexValue":"","id":7700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11578:2:29","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":7696,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7608,"src":"11544:3:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11548:4:29","memberName":"call","nodeType":"MemberAccess","src":"11544:8:29","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":7699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7698,"name":"originalValue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7618,"src":"11561:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"11544:33:29","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":7701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11544:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"11528:53:29"},{"expression":{"arguments":[{"id":7704,"name":"sent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"11599:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616c6c206661696c6564","id":7705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11605:13:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""},"value":"Call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""}],"id":7703,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11591:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7707,"nodeType":"ExpressionStatement","src":"11591:28:29"}]},"documentation":{"id":7606,"nodeType":"StructuredDocumentation","src":"9737:801:29","text":" @notice Clear previously failed message\n @param to_ Address of the receiver\n @param pId_ The proposal ID to identify a failed message\n @param remoteChainId_ The LayerZero id of the remote chain\n @param payload_ The payload to be sent to the remote chain\n It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\n @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\n @param originalValue_ The msg.value passed when execute() function was called\n @custom:access Only owner\n @custom:event Emits ClearPayload with proposal ID and hash\n @custom:event Emits FallbackWithdraw with receiver and amount"},"functionSelector":"30fd54a0","id":7709,"implemented":true,"kind":"function","modifiers":[{"id":7621,"kind":"modifierInvocation","modifierName":{"id":7620,"name":"onlyOwner","nameLocations":["10762:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"10762:9:29"},"nodeType":"ModifierInvocation","src":"10762:9:29"},{"id":7623,"kind":"modifierInvocation","modifierName":{"id":7622,"name":"nonReentrant","nameLocations":["10772:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":4318,"src":"10772:12:29"},"nodeType":"ModifierInvocation","src":"10772:12:29"}],"name":"fallbackWithdraw","nameLocation":"10552:16:29","nodeType":"FunctionDefinition","parameters":{"id":7619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7608,"mutability":"mutable","name":"to_","nameLocation":"10586:3:29","nodeType":"VariableDeclaration","scope":7709,"src":"10578:11:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7607,"name":"address","nodeType":"ElementaryTypeName","src":"10578:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7610,"mutability":"mutable","name":"pId_","nameLocation":"10607:4:29","nodeType":"VariableDeclaration","scope":7709,"src":"10599:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7609,"name":"uint256","nodeType":"ElementaryTypeName","src":"10599:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7612,"mutability":"mutable","name":"remoteChainId_","nameLocation":"10628:14:29","nodeType":"VariableDeclaration","scope":7709,"src":"10621:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7611,"name":"uint16","nodeType":"ElementaryTypeName","src":"10621:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7614,"mutability":"mutable","name":"payload_","nameLocation":"10667:8:29","nodeType":"VariableDeclaration","scope":7709,"src":"10652:23:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7613,"name":"bytes","nodeType":"ElementaryTypeName","src":"10652:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7616,"mutability":"mutable","name":"adapterParams_","nameLocation":"10700:14:29","nodeType":"VariableDeclaration","scope":7709,"src":"10685:29:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7615,"name":"bytes","nodeType":"ElementaryTypeName","src":"10685:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7618,"mutability":"mutable","name":"originalValue_","nameLocation":"10732:14:29","nodeType":"VariableDeclaration","scope":7709,"src":"10724:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7617,"name":"uint256","nodeType":"ElementaryTypeName","src":"10724:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10568:184:29"},"returnParameters":{"id":7624,"nodeType":"ParameterList","parameters":[],"src":"10785:0:29"},"scope":7914,"src":"10543:1083:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7776,"nodeType":"Block","src":"12137:637:29","statements":[{"expression":{"arguments":[{"hexValue":"7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329","id":7718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12162:39:29","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":7717,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"12147:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":7719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12147:55:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7720,"nodeType":"ExpressionStatement","src":"12147:55:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7722,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"12220:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12238:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12220:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20636861696e4964206d757374206e6f74206265207a65726f","id":7725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12241:51:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc","typeString":"literal_string \"OmnichainProposalSender: chainId must not be zero\""},"value":"OmnichainProposalSender: chainId must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc","typeString":"literal_string \"OmnichainProposalSender: chainId must not be zero\""}],"id":7721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12212:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12212:81:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7727,"nodeType":"ExpressionStatement","src":"12212:81:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":7735,"name":"newRemoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7714,"src":"12348:17:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":7734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12340:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":7733,"name":"bytes20","nodeType":"ElementaryTypeName","src":"12340:7:29","typeDescriptions":{}}},"id":7736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12340:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":7732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12332:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7731,"name":"uint160","nodeType":"ElementaryTypeName","src":"12332:7:29","typeDescriptions":{}}},"id":7737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12332:35:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12324:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7729,"name":"address","nodeType":"ElementaryTypeName","src":"12324:7:29","typeDescriptions":{}}},"id":7738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12324:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7728,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"12303:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":7739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:66:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7740,"nodeType":"ExpressionStatement","src":"12303:66:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7742,"name":"newRemoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7714,"src":"12387:17:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":7743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12405:6:29","memberName":"length","nodeType":"MemberAccess","src":"12387:24:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3230","id":7744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12415:2:29","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"12387:30:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2072656d6f74652061646472657373206d757374206265203230206279746573206c6f6e67","id":7746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12419:63:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62","typeString":"literal_string \"OmnichainProposalSender: remote address must be 20 bytes long\""},"value":"OmnichainProposalSender: remote address must be 20 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62","typeString":"literal_string \"OmnichainProposalSender: remote address must be 20 bytes long\""}],"id":7741,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12379:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12379:104:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7748,"nodeType":"ExpressionStatement","src":"12379:104:29"},{"assignments":[7750],"declarations":[{"constant":false,"id":7750,"mutability":"mutable","name":"oldRemoteAddress","nameLocation":"12506:16:29","nodeType":"VariableDeclaration","scope":7776,"src":"12493:29:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7749,"name":"bytes","nodeType":"ElementaryTypeName","src":"12493:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7754,"initialValue":{"baseExpression":{"id":7751,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"12525:19:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":7753,"indexExpression":{"id":7752,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"12545:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12525:35:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12493:67:29"},{"expression":{"id":7766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7755,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"12570:19:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":7757,"indexExpression":{"id":7756,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"12590:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12570:35:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7760,"name":"newRemoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7714,"src":"12625:17:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"id":7763,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12652:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainProposalSender_$7914","typeString":"contract OmnichainProposalSender"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmnichainProposalSender_$7914","typeString":"contract OmnichainProposalSender"}],"id":7762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12644:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7761,"name":"address","nodeType":"ElementaryTypeName","src":"12644:7:29","typeDescriptions":{}}},"id":7764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12644:13:29","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":7758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12608:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12612:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"12608:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12608:50:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12570:88:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":7767,"nodeType":"ExpressionStatement","src":"12570:88:29"},{"eventCall":{"arguments":[{"id":7769,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"12697:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7770,"name":"oldRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"12713:16:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"baseExpression":{"id":7771,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"12731:19:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":7773,"indexExpression":{"id":7772,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"12751:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12731:35:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":7768,"name":"SetTrustedRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7233,"src":"12673:23:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory)"}},"id":7774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12673:94:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7775,"nodeType":"EmitStatement","src":"12668:99:29"}]},"documentation":{"id":7710,"nodeType":"StructuredDocumentation","src":"11632:401:29","text":" @notice Sets the remote message receiver address\n @param remoteChainId_ The LayerZero id of a remote chain\n @param newRemoteAddress_ The address of the contract on the remote chain to receive messages sent by this contract\n @custom:access Controlled by AccessControlManager\n @custom:event Emits SetTrustedRemoteAddress with remote chain Id and remote address"},"functionSelector":"a6c3d165","id":7777,"implemented":true,"kind":"function","modifiers":[],"name":"setTrustedRemoteAddress","nameLocation":"12047:23:29","nodeType":"FunctionDefinition","parameters":{"id":7715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7712,"mutability":"mutable","name":"remoteChainId_","nameLocation":"12078:14:29","nodeType":"VariableDeclaration","scope":7777,"src":"12071:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7711,"name":"uint16","nodeType":"ElementaryTypeName","src":"12071:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7714,"mutability":"mutable","name":"newRemoteAddress_","nameLocation":"12109:17:29","nodeType":"VariableDeclaration","scope":7777,"src":"12094:32:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7713,"name":"bytes","nodeType":"ElementaryTypeName","src":"12094:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12070:57:29"},"returnParameters":{"id":7716,"nodeType":"ParameterList","parameters":[],"src":"12137:0:29"},"scope":7914,"src":"12038:736:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7802,"nodeType":"Block","src":"13364:146:29","statements":[{"expression":{"arguments":[{"hexValue":"736574436f6e6669672875696e7431362c75696e7431362c75696e743235362c627974657329","id":7790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13389:40:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbed8b9c800c1b7dc5ea46356aeb1ab48cb3e48210b3337f05074dd78ea37409","typeString":"literal_string \"setConfig(uint16,uint16,uint256,bytes)\""},"value":"setConfig(uint16,uint16,uint256,bytes)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cbed8b9c800c1b7dc5ea46356aeb1ab48cb3e48210b3337f05074dd78ea37409","typeString":"literal_string \"setConfig(uint16,uint16,uint256,bytes)\""}],"id":7789,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"13374:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":7791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13374:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7792,"nodeType":"ExpressionStatement","src":"13374:56:29"},{"expression":{"arguments":[{"id":7796,"name":"version_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7780,"src":"13462:8:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7797,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7782,"src":"13472:8:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7798,"name":"configType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"13482:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7799,"name":"config_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7786,"src":"13495:7:29","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":7793,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7219,"src":"13440:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13452:9:29","memberName":"setConfig","nodeType":"MemberAccess","referencedDeclaration":1384,"src":"13440:21:29","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":7800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13440:63:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7801,"nodeType":"ExpressionStatement","src":"13440:63:29"}]},"documentation":{"id":7778,"nodeType":"StructuredDocumentation","src":"12780:472:29","text":" @notice Sets the configuration of the LayerZero messaging library of the specified version\n @param version_ Messaging library version\n @param chainId_ The LayerZero chainId for the pending config change\n @param configType_ The type of configuration. Every messaging library has its own convention\n @param config_ The configuration in bytes. It can encode arbitrary content\n @custom:access Controlled by AccessControlManager"},"functionSelector":"cbed8b9c","id":7803,"implemented":true,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"13266:9:29","nodeType":"FunctionDefinition","parameters":{"id":7787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7780,"mutability":"mutable","name":"version_","nameLocation":"13283:8:29","nodeType":"VariableDeclaration","scope":7803,"src":"13276:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7779,"name":"uint16","nodeType":"ElementaryTypeName","src":"13276:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7782,"mutability":"mutable","name":"chainId_","nameLocation":"13300:8:29","nodeType":"VariableDeclaration","scope":7803,"src":"13293:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7781,"name":"uint16","nodeType":"ElementaryTypeName","src":"13293:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7784,"mutability":"mutable","name":"configType_","nameLocation":"13318:11:29","nodeType":"VariableDeclaration","scope":7803,"src":"13310:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7783,"name":"uint256","nodeType":"ElementaryTypeName","src":"13310:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7786,"mutability":"mutable","name":"config_","nameLocation":"13346:7:29","nodeType":"VariableDeclaration","scope":7803,"src":"13331:22:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7785,"name":"bytes","nodeType":"ElementaryTypeName","src":"13331:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13275:79:29"},"returnParameters":{"id":7788,"nodeType":"ParameterList","parameters":[],"src":"13364:0:29"},"scope":7914,"src":"13257:253:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7819,"nodeType":"Block","src":"13790:103:29","statements":[{"expression":{"arguments":[{"hexValue":"73657453656e6456657273696f6e2875696e74313629","id":7810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13815:24:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_07e0db17904b81981c0c43740d597b22eeb99bef680ad829920a4586dd4b1604","typeString":"literal_string \"setSendVersion(uint16)\""},"value":"setSendVersion(uint16)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07e0db17904b81981c0c43740d597b22eeb99bef680ad829920a4586dd4b1604","typeString":"literal_string \"setSendVersion(uint16)\""}],"id":7809,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5866,"src":"13800:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":7811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13800:40:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7812,"nodeType":"ExpressionStatement","src":"13800:40:29"},{"expression":{"arguments":[{"id":7816,"name":"version_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7806,"src":"13877:8:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":7813,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7219,"src":"13850:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":7815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13862:14:29","memberName":"setSendVersion","nodeType":"MemberAccess","referencedDeclaration":1389,"src":"13850:26:29","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":7817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13850:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7818,"nodeType":"ExpressionStatement","src":"13850:36:29"}]},"documentation":{"id":7804,"nodeType":"StructuredDocumentation","src":"13516:219:29","text":" @notice Sets the configuration of the LayerZero messaging library of the specified version\n @param version_ New messaging library version\n @custom:access Controlled by AccessControlManager"},"functionSelector":"07e0db17","id":7820,"implemented":true,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"13749:14:29","nodeType":"FunctionDefinition","parameters":{"id":7807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7806,"mutability":"mutable","name":"version_","nameLocation":"13771:8:29","nodeType":"VariableDeclaration","scope":7820,"src":"13764:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7805,"name":"uint16","nodeType":"ElementaryTypeName","src":"13764:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"13763:17:29"},"returnParameters":{"id":7808,"nodeType":"ParameterList","parameters":[],"src":"13790:0:29"},"scope":7914,"src":"13740:153:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7843,"nodeType":"Block","src":"14314:93:29","statements":[{"expression":{"arguments":[{"id":7834,"name":"version_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7823,"src":"14353:8:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":7835,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7825,"src":"14363:8:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":7838,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14381:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_OmnichainProposalSender_$7914","typeString":"contract OmnichainProposalSender"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OmnichainProposalSender_$7914","typeString":"contract OmnichainProposalSender"}],"id":7837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14373:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7836,"name":"address","nodeType":"ElementaryTypeName","src":"14373:7:29","typeDescriptions":{}}},"id":7839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14373:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7840,"name":"configType_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7827,"src":"14388:11:29","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":7832,"name":"LZ_ENDPOINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7219,"src":"14331:11:29","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14343:9:29","memberName":"getConfig","nodeType":"MemberAccess","referencedDeclaration":1342,"src":"14331:21:29","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":7841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14331:69:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7831,"id":7842,"nodeType":"Return","src":"14324:76:29"}]},"documentation":{"id":7821,"nodeType":"StructuredDocumentation","src":"13899:299:29","text":" @notice Gets the configuration of the LayerZero messaging library of the specified version\n @param version_ Messaging library version\n @param chainId_ The LayerZero chainId\n @param configType_ Type of configuration. Every messaging library has its own convention"},"functionSelector":"5f6716f7","id":7844,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"14212:9:29","nodeType":"FunctionDefinition","parameters":{"id":7828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7823,"mutability":"mutable","name":"version_","nameLocation":"14229:8:29","nodeType":"VariableDeclaration","scope":7844,"src":"14222:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7822,"name":"uint16","nodeType":"ElementaryTypeName","src":"14222:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7825,"mutability":"mutable","name":"chainId_","nameLocation":"14246:8:29","nodeType":"VariableDeclaration","scope":7844,"src":"14239:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7824,"name":"uint16","nodeType":"ElementaryTypeName","src":"14239:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7827,"mutability":"mutable","name":"configType_","nameLocation":"14264:11:29","nodeType":"VariableDeclaration","scope":7844,"src":"14256:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7826,"name":"uint256","nodeType":"ElementaryTypeName","src":"14256:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14221:55:29"},"returnParameters":{"id":7831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7844,"src":"14300:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7829,"name":"bytes","nodeType":"ElementaryTypeName","src":"14300:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14299:14:29"},"scope":7914,"src":"14203:204:29","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":7912,"nodeType":"Block","src":"14495:577:29","statements":[{"assignments":[7855,7858,7861,7864,null],"declarations":[{"constant":false,"id":7855,"mutability":"mutable","name":"targets","nameLocation":"14536:7:29","nodeType":"VariableDeclaration","scope":7912,"src":"14519:24:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7853,"name":"address","nodeType":"ElementaryTypeName","src":"14519:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7854,"nodeType":"ArrayTypeName","src":"14519:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7858,"mutability":"mutable","name":"values","nameLocation":"14574:6:29","nodeType":"VariableDeclaration","scope":7912,"src":"14557:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7856,"name":"uint256","nodeType":"ElementaryTypeName","src":"14557:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7857,"nodeType":"ArrayTypeName","src":"14557:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7861,"mutability":"mutable","name":"signatures","nameLocation":"14610:10:29","nodeType":"VariableDeclaration","scope":7912,"src":"14594:26:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":7859,"name":"string","nodeType":"ElementaryTypeName","src":"14594:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":7860,"nodeType":"ArrayTypeName","src":"14594:8:29","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":7864,"mutability":"mutable","name":"calldatas","nameLocation":"14649:9:29","nodeType":"VariableDeclaration","scope":7912,"src":"14634:24:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":7862,"name":"bytes","nodeType":"ElementaryTypeName","src":"14634:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":7863,"nodeType":"ArrayTypeName","src":"14634:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},null],"id":7884,"initialValue":{"arguments":[{"id":7867,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7848,"src":"14684:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":7869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14695:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7868,"name":"address","nodeType":"ElementaryTypeName","src":"14695:7:29","typeDescriptions":{}}},"id":7870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14695:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}},{"baseExpression":{"id":7872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14706:4:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7871,"name":"uint","nodeType":"ElementaryTypeName","src":"14706:4:29","typeDescriptions":{}}},"id":7873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14706:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}},{"baseExpression":{"id":7875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14714:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7874,"name":"string","nodeType":"ElementaryTypeName","src":"14714:6:29","typeDescriptions":{}}},"id":7876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14714:8:29","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"type(string memory[] memory)"}},{"baseExpression":{"id":7878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14724:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7877,"name":"bytes","nodeType":"ElementaryTypeName","src":"14724:5:29","typeDescriptions":{}}},"id":7879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14724:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"type(bytes memory[] memory)"}},{"id":7881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14733:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7880,"name":"uint8","nodeType":"ElementaryTypeName","src":"14733:5:29","typeDescriptions":{}}}],"id":7882,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14694:45:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$","typeString":"tuple(type(address[] memory),type(uint256[] memory),type(string memory[] memory),type(bytes memory[] memory),type(uint8))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_uint8_$_$","typeString":"tuple(type(address[] memory),type(uint256[] memory),type(string memory[] memory),type(bytes memory[] memory),type(uint8))"}],"expression":{"id":7865,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14673:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14677:6:29","memberName":"decode","nodeType":"MemberAccess","src":"14673:10:29","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":7883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14673:67:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint8_$","typeString":"tuple(address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint8)"}},"nodeType":"VariableDeclarationStatement","src":"14505:235:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7886,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7855,"src":"14771:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14779:6:29","memberName":"length","nodeType":"MemberAccess","src":"14771:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7888,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7858,"src":"14789:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14796:6:29","memberName":"length","nodeType":"MemberAccess","src":"14789:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14771:31:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7891,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7855,"src":"14822:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14830:6:29","memberName":"length","nodeType":"MemberAccess","src":"14822:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7893,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7861,"src":"14840:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":7894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14851:6:29","memberName":"length","nodeType":"MemberAccess","src":"14840:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14822:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14771:86:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7897,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7855,"src":"14877:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14885:6:29","memberName":"length","nodeType":"MemberAccess","src":"14877:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7899,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7864,"src":"14895:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":7900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14905:6:29","memberName":"length","nodeType":"MemberAccess","src":"14895:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14877:34:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14771:140:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","id":7903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14925:71:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210","typeString":"literal_string \"OmnichainProposalSender: proposal function information arity mismatch\""},"value":"OmnichainProposalSender: proposal function information arity mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210","typeString":"literal_string \"OmnichainProposalSender: proposal function information arity mismatch\""}],"id":7885,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14750:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14750:256:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7905,"nodeType":"ExpressionStatement","src":"14750:256:29"},{"expression":{"arguments":[{"id":7907,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7846,"src":"15034:14:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":7908,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7855,"src":"15050:7:29","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15058:6:29","memberName":"length","nodeType":"MemberAccess","src":"15050:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7906,"name":"_isEligibleToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5847,"src":"15016:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256)"}},"id":7910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15016:49:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7911,"nodeType":"ExpressionStatement","src":"15016:49:29"}]},"id":7913,"implemented":true,"kind":"function","modifiers":[],"name":"_validateProposal","nameLocation":"14422:17:29","nodeType":"FunctionDefinition","parameters":{"id":7849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7846,"mutability":"mutable","name":"remoteChainId_","nameLocation":"14447:14:29","nodeType":"VariableDeclaration","scope":7913,"src":"14440:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7845,"name":"uint16","nodeType":"ElementaryTypeName","src":"14440:6:29","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7848,"mutability":"mutable","name":"payload_","nameLocation":"14476:8:29","nodeType":"VariableDeclaration","scope":7913,"src":"14463:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7847,"name":"bytes","nodeType":"ElementaryTypeName","src":"14463:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14439:46:29"},"returnParameters":{"id":7850,"nodeType":"ParameterList","parameters":[],"src":"14495:0:29"},"scope":7914,"src":"14413:659:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":7915,"src":"927:14147:29","usedErrors":[5445],"usedEvents":[4081,4191,4196,5662,5668,7233,7238,7247,7254,7269,7276]}],"src":"33:15042:29"},"id":29},"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol":{"ast":{"absolutePath":"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol","exportedSymbols":{"IOmnichainGovernanceExecutor":[7931]},"id":7932,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7916,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"32:24:30"},{"abstract":false,"baseContracts":[],"canonicalName":"IOmnichainGovernanceExecutor","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":7931,"linearizedBaseContracts":[7931],"name":"IOmnichainGovernanceExecutor","nameLocation":"68:28:30","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7917,"nodeType":"StructuredDocumentation","src":"103:157:30","text":" @notice Transfers ownership of the contract to the specified address\n @param addr The address to which ownership will be transferred"},"functionSelector":"f2fde38b","id":7922,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"274:17:30","nodeType":"FunctionDefinition","parameters":{"id":7920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7919,"mutability":"mutable","name":"addr","nameLocation":"300:4:30","nodeType":"VariableDeclaration","scope":7922,"src":"292:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7918,"name":"address","nodeType":"ElementaryTypeName","src":"292:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"291:14:30"},"returnParameters":{"id":7921,"nodeType":"ParameterList","parameters":[],"src":"314:0:30"},"scope":7931,"src":"265:50:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7923,"nodeType":"StructuredDocumentation","src":"321:200:30","text":" @notice Sets the source message sender address\n @param srcChainId_ The LayerZero id of a source chain\n @param srcAddress_ The address of the contract on the source chain"},"functionSelector":"a6c3d165","id":7930,"implemented":false,"kind":"function","modifiers":[],"name":"setTrustedRemoteAddress","nameLocation":"535:23:30","nodeType":"FunctionDefinition","parameters":{"id":7928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7925,"mutability":"mutable","name":"srcChainId_","nameLocation":"566:11:30","nodeType":"VariableDeclaration","scope":7930,"src":"559:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7924,"name":"uint16","nodeType":"ElementaryTypeName","src":"559:6:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":7927,"mutability":"mutable","name":"srcAddress_","nameLocation":"594:11:30","nodeType":"VariableDeclaration","scope":7930,"src":"579:26:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7926,"name":"bytes","nodeType":"ElementaryTypeName","src":"579:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"558:48:30"},"returnParameters":{"id":7929,"nodeType":"ParameterList","parameters":[],"src":"615:0:30"},"scope":7931,"src":"526:90:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7932,"src":"58:560:30","usedErrors":[],"usedEvents":[]}],"src":"32:587:30"},"id":30},"contracts/Cross-chain/interfaces/ITimelock.sol":{"ast":{"absolutePath":"contracts/Cross-chain/interfaces/ITimelock.sol","exportedSymbols":{"ITimelock":[8011]},"id":8012,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":7933,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:31"},{"abstract":false,"baseContracts":[],"canonicalName":"ITimelock","contractDependencies":[],"contractKind":"interface","documentation":{"id":7934,"nodeType":"StructuredDocumentation","src":"67:177:31","text":" @title ITimelock\n @author Venus\n @dev Interface for Timelock contract\n @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion"},"fullyImplemented":false,"id":8011,"linearizedBaseContracts":[8011],"name":"ITimelock","nameLocation":"255:9:31","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7935,"nodeType":"StructuredDocumentation","src":"271:65:31","text":" @notice Delay period for the transaction queue"},"functionSelector":"6a42b8f8","id":7940,"implemented":false,"kind":"function","modifiers":[],"name":"delay","nameLocation":"350:5:31","nodeType":"FunctionDefinition","parameters":{"id":7936,"nodeType":"ParameterList","parameters":[],"src":"355:2:31"},"returnParameters":{"id":7939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7940,"src":"381:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7937,"name":"uint256","nodeType":"ElementaryTypeName","src":"381:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"380:9:31"},"scope":8011,"src":"341:49:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7941,"nodeType":"StructuredDocumentation","src":"396:76:31","text":" @notice Required period to execute a proposal transaction"},"functionSelector":"c1a287e2","id":7946,"implemented":false,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nameLocation":"486:12:31","nodeType":"FunctionDefinition","parameters":{"id":7942,"nodeType":"ParameterList","parameters":[],"src":"498:2:31"},"returnParameters":{"id":7945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7946,"src":"524:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7943,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"523:9:31"},"scope":8011,"src":"477:56:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7947,"nodeType":"StructuredDocumentation","src":"539:64:31","text":" @notice Method for accepting a proposed admin"},"functionSelector":"0e18b681","id":7950,"implemented":false,"kind":"function","modifiers":[],"name":"acceptAdmin","nameLocation":"617:11:31","nodeType":"FunctionDefinition","parameters":{"id":7948,"nodeType":"ParameterList","parameters":[],"src":"628:2:31"},"returnParameters":{"id":7949,"nodeType":"ParameterList","parameters":[],"src":"639:0:31"},"scope":8011,"src":"608:32:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7951,"nodeType":"StructuredDocumentation","src":"646:133:31","text":" @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract."},"functionSelector":"4dd18bf5","id":7956,"implemented":false,"kind":"function","modifiers":[],"name":"setPendingAdmin","nameLocation":"793:15:31","nodeType":"FunctionDefinition","parameters":{"id":7954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7953,"mutability":"mutable","name":"pendingAdmin","nameLocation":"817:12:31","nodeType":"VariableDeclaration","scope":7956,"src":"809:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7952,"name":"address","nodeType":"ElementaryTypeName","src":"809:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"808:22:31"},"returnParameters":{"id":7955,"nodeType":"ParameterList","parameters":[],"src":"839:0:31"},"scope":8011,"src":"784:56:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7957,"nodeType":"StructuredDocumentation","src":"846:98:31","text":" @notice Show mapping of queued transactions\n @param hash Transaction hash"},"functionSelector":"f2b06537","id":7964,"implemented":false,"kind":"function","modifiers":[],"name":"queuedTransactions","nameLocation":"958:18:31","nodeType":"FunctionDefinition","parameters":{"id":7960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7959,"mutability":"mutable","name":"hash","nameLocation":"985:4:31","nodeType":"VariableDeclaration","scope":7964,"src":"977:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7958,"name":"bytes32","nodeType":"ElementaryTypeName","src":"977:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"976:14:31"},"returnParameters":{"id":7963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7964,"src":"1014:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7961,"name":"bool","nodeType":"ElementaryTypeName","src":"1014:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1013:6:31"},"scope":8011,"src":"949:71:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7965,"nodeType":"StructuredDocumentation","src":"1026:464:31","text":" @notice Called for each action when queuing a proposal\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @return Hash of the queued transaction"},"functionSelector":"3a66f901","id":7980,"implemented":false,"kind":"function","modifiers":[],"name":"queueTransaction","nameLocation":"1504:16:31","nodeType":"FunctionDefinition","parameters":{"id":7976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7967,"mutability":"mutable","name":"target","nameLocation":"1538:6:31","nodeType":"VariableDeclaration","scope":7980,"src":"1530:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7966,"name":"address","nodeType":"ElementaryTypeName","src":"1530:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7969,"mutability":"mutable","name":"value","nameLocation":"1562:5:31","nodeType":"VariableDeclaration","scope":7980,"src":"1554:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1554:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7971,"mutability":"mutable","name":"signature","nameLocation":"1593:9:31","nodeType":"VariableDeclaration","scope":7980,"src":"1577:25:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":7970,"name":"string","nodeType":"ElementaryTypeName","src":"1577:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7973,"mutability":"mutable","name":"data","nameLocation":"1627:4:31","nodeType":"VariableDeclaration","scope":7980,"src":"1612:19:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7972,"name":"bytes","nodeType":"ElementaryTypeName","src":"1612:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7975,"mutability":"mutable","name":"eta","nameLocation":"1649:3:31","nodeType":"VariableDeclaration","scope":7980,"src":"1641:11:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1641:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1520:138:31"},"returnParameters":{"id":7979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7980,"src":"1677:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1677:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1676:9:31"},"scope":8011,"src":"1495:191:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7981,"nodeType":"StructuredDocumentation","src":"1692:409:31","text":" @notice Called to cancel a queued transaction\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed"},"functionSelector":"591fcdfe","id":7994,"implemented":false,"kind":"function","modifiers":[],"name":"cancelTransaction","nameLocation":"2115:17:31","nodeType":"FunctionDefinition","parameters":{"id":7992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7983,"mutability":"mutable","name":"target","nameLocation":"2150:6:31","nodeType":"VariableDeclaration","scope":7994,"src":"2142:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7982,"name":"address","nodeType":"ElementaryTypeName","src":"2142:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7985,"mutability":"mutable","name":"value","nameLocation":"2174:5:31","nodeType":"VariableDeclaration","scope":7994,"src":"2166:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7984,"name":"uint256","nodeType":"ElementaryTypeName","src":"2166:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7987,"mutability":"mutable","name":"signature","nameLocation":"2205:9:31","nodeType":"VariableDeclaration","scope":7994,"src":"2189:25:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":7986,"name":"string","nodeType":"ElementaryTypeName","src":"2189:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7989,"mutability":"mutable","name":"data","nameLocation":"2239:4:31","nodeType":"VariableDeclaration","scope":7994,"src":"2224:19:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7988,"name":"bytes","nodeType":"ElementaryTypeName","src":"2224:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7991,"mutability":"mutable","name":"eta","nameLocation":"2261:3:31","nodeType":"VariableDeclaration","scope":7994,"src":"2253:11:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7990,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2132:138:31"},"returnParameters":{"id":7993,"nodeType":"ParameterList","parameters":[],"src":"2279:0:31"},"scope":8011,"src":"2106:174:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7995,"nodeType":"StructuredDocumentation","src":"2286:449:31","text":" @notice Called to execute a queued transaction\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @return Result of function call"},"functionSelector":"0825f38f","id":8010,"implemented":false,"kind":"function","modifiers":[],"name":"executeTransaction","nameLocation":"2749:18:31","nodeType":"FunctionDefinition","parameters":{"id":8006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7997,"mutability":"mutable","name":"target","nameLocation":"2785:6:31","nodeType":"VariableDeclaration","scope":8010,"src":"2777:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7996,"name":"address","nodeType":"ElementaryTypeName","src":"2777:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7999,"mutability":"mutable","name":"value","nameLocation":"2809:5:31","nodeType":"VariableDeclaration","scope":8010,"src":"2801:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7998,"name":"uint256","nodeType":"ElementaryTypeName","src":"2801:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8001,"mutability":"mutable","name":"signature","nameLocation":"2840:9:31","nodeType":"VariableDeclaration","scope":8010,"src":"2824:25:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8000,"name":"string","nodeType":"ElementaryTypeName","src":"2824:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8003,"mutability":"mutable","name":"data","nameLocation":"2874:4:31","nodeType":"VariableDeclaration","scope":8010,"src":"2859:19:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8002,"name":"bytes","nodeType":"ElementaryTypeName","src":"2859:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8005,"mutability":"mutable","name":"eta","nameLocation":"2896:3:31","nodeType":"VariableDeclaration","scope":8010,"src":"2888:11:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8004,"name":"uint256","nodeType":"ElementaryTypeName","src":"2888:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2767:138:31"},"returnParameters":{"id":8009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8010,"src":"2932:12:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8007,"name":"bytes","nodeType":"ElementaryTypeName","src":"2932:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2931:14:31"},"scope":8011,"src":"2740:206:31","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":8012,"src":"245:2703:31","usedErrors":[],"usedEvents":[]}],"src":"41:2908:31"},"id":31},"contracts/Governance/AccessControlManager.sol":{"ast":{"absolutePath":"contracts/Governance/AccessControlManager.sol","exportedSymbols":{"AccessControl":[3994],"AccessControlManager":[8190],"Context":[4364],"ERC165":[4563],"IAccessControl":[4067],"IAccessControlManagerV8":[8389],"IERC165":[4575],"Math":[5440],"Strings":[4539]},"id":8191,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8013,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:32"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":8014,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8191,"sourceUnit":3995,"src":"65:58:32","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","file":"./IAccessControlManagerV8.sol","id":8015,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8191,"sourceUnit":8390,"src":"124:39:32","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8017,"name":"AccessControl","nameLocations":["2848:13:32"],"nodeType":"IdentifierPath","referencedDeclaration":3994,"src":"2848:13:32"},"id":8018,"nodeType":"InheritanceSpecifier","src":"2848:13:32"},{"baseName":{"id":8019,"name":"IAccessControlManagerV8","nameLocations":["2863:23:32"],"nodeType":"IdentifierPath","referencedDeclaration":8389,"src":"2863:23:32"},"id":8020,"nodeType":"InheritanceSpecifier","src":"2863:23:32"}],"canonicalName":"AccessControlManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":8016,"nodeType":"StructuredDocumentation","src":"165:2649:32","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":8190,"linearizedBaseContracts":[8190,8389,3994,4563,4575,4067,4364],"name":"AccessControlManager","nameLocation":"2824:20:32","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8021,"nodeType":"StructuredDocumentation","src":"2893:260:32","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":8029,"name":"PermissionGranted","nameLocation":"3164:17:32","nodeType":"EventDefinition","parameters":{"id":8028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8023,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"3190:7:32","nodeType":"VariableDeclaration","scope":8029,"src":"3182:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8022,"name":"address","nodeType":"ElementaryTypeName","src":"3182:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8025,"indexed":false,"mutability":"mutable","name":"contractAddress","nameLocation":"3207:15:32","nodeType":"VariableDeclaration","scope":8029,"src":"3199:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8024,"name":"address","nodeType":"ElementaryTypeName","src":"3199:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8027,"indexed":false,"mutability":"mutable","name":"functionSig","nameLocation":"3231:11:32","nodeType":"VariableDeclaration","scope":8029,"src":"3224:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8026,"name":"string","nodeType":"ElementaryTypeName","src":"3224:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3181:62:32"},"src":"3158:86:32"},{"anonymous":false,"documentation":{"id":8030,"nodeType":"StructuredDocumentation","src":"3250:90:32","text":"@notice Emitted when an account is revoked a permission to a certain contract function"},"eventSelector":"55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2","id":8038,"name":"PermissionRevoked","nameLocation":"3351:17:32","nodeType":"EventDefinition","parameters":{"id":8037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8032,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"3377:7:32","nodeType":"VariableDeclaration","scope":8038,"src":"3369:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8031,"name":"address","nodeType":"ElementaryTypeName","src":"3369:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8034,"indexed":false,"mutability":"mutable","name":"contractAddress","nameLocation":"3394:15:32","nodeType":"VariableDeclaration","scope":8038,"src":"3386:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8033,"name":"address","nodeType":"ElementaryTypeName","src":"3386:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8036,"indexed":false,"mutability":"mutable","name":"functionSig","nameLocation":"3418:11:32","nodeType":"VariableDeclaration","scope":8038,"src":"3411:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8035,"name":"string","nodeType":"ElementaryTypeName","src":"3411:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3368:62:32"},"src":"3345:86:32"},{"body":{"id":8047,"nodeType":"Block","src":"3451:179:32","statements":[{"expression":{"arguments":[{"id":8042,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"3592:18:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":8043,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3612:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3616:6:32","memberName":"sender","nodeType":"MemberAccess","src":"3612:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8041,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"3581:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3581:42:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8046,"nodeType":"ExpressionStatement","src":"3581:42:32"}]},"id":8048,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8039,"nodeType":"ParameterList","parameters":[],"src":"3448:2:32"},"returnParameters":{"id":8040,"nodeType":"ParameterList","parameters":[],"src":"3451:0:32"},"scope":8190,"src":"3437:193:32","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8359],"body":{"id":8079,"nodeType":"Block","src":"4392:210:32","statements":[{"assignments":[8059],"declarations":[{"constant":false,"id":8059,"mutability":"mutable","name":"role","nameLocation":"4410:4:32","nodeType":"VariableDeclaration","scope":8079,"src":"4402:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4402:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8067,"initialValue":{"arguments":[{"arguments":[{"id":8063,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"4444:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8064,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8053,"src":"4461:11:32","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":8061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4427:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4431:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"4427:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4427:46:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8060,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4417:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4417:57:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4402:72:32"},{"expression":{"arguments":[{"id":8069,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8059,"src":"4494:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8070,"name":"accountToPermit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8055,"src":"4500:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8068,"name":"grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"4484:9:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4484:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8072,"nodeType":"ExpressionStatement","src":"4484:32:32"},{"eventCall":{"arguments":[{"id":8074,"name":"accountToPermit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8055,"src":"4549:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8075,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"4566:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8076,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8053,"src":"4583:11:32","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":8073,"name":"PermissionGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"4531:17:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory)"}},"id":8077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:64:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8078,"nodeType":"EmitStatement","src":"4526:69:32"}]},"documentation":{"id":8049,"nodeType":"StructuredDocumentation","src":"3636:637:32","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":8080,"implemented":true,"kind":"function","modifiers":[],"name":"giveCallPermission","nameLocation":"4287:18:32","nodeType":"FunctionDefinition","parameters":{"id":8056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8051,"mutability":"mutable","name":"contractAddress","nameLocation":"4314:15:32","nodeType":"VariableDeclaration","scope":8080,"src":"4306:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8050,"name":"address","nodeType":"ElementaryTypeName","src":"4306:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8053,"mutability":"mutable","name":"functionSig","nameLocation":"4347:11:32","nodeType":"VariableDeclaration","scope":8080,"src":"4331:27:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8052,"name":"string","nodeType":"ElementaryTypeName","src":"4331:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8055,"mutability":"mutable","name":"accountToPermit","nameLocation":"4368:15:32","nodeType":"VariableDeclaration","scope":8080,"src":"4360:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8054,"name":"address","nodeType":"ElementaryTypeName","src":"4360:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4305:79:32"},"returnParameters":{"id":8057,"nodeType":"ParameterList","parameters":[],"src":"4392:0:32"},"scope":8190,"src":"4278:324:32","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8368],"body":{"id":8111,"nodeType":"Block","src":"5207:211:32","statements":[{"assignments":[8091],"declarations":[{"constant":false,"id":8091,"mutability":"mutable","name":"role","nameLocation":"5225:4:32","nodeType":"VariableDeclaration","scope":8111,"src":"5217:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5217:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8099,"initialValue":{"arguments":[{"arguments":[{"id":8095,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8083,"src":"5259:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8096,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8085,"src":"5276:11:32","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":8093,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5242:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5246:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"5242:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5242:46:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8092,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5232:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5232:57:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5217:72:32"},{"expression":{"arguments":[{"id":8101,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8091,"src":"5310:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8102,"name":"accountToRevoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8087,"src":"5316:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8100,"name":"revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3865,"src":"5299:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5299:33:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8104,"nodeType":"ExpressionStatement","src":"5299:33:32"},{"eventCall":{"arguments":[{"id":8106,"name":"accountToRevoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8087,"src":"5365:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8107,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8083,"src":"5382:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8108,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8085,"src":"5399:11:32","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":8105,"name":"PermissionRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8038,"src":"5347:17:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory)"}},"id":8109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5347:64:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8110,"nodeType":"EmitStatement","src":"5342:69:32"}]},"documentation":{"id":8081,"nodeType":"StructuredDocumentation","src":"4608:448:32","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":8112,"implemented":true,"kind":"function","modifiers":[],"name":"revokeCallPermission","nameLocation":"5070:20:32","nodeType":"FunctionDefinition","parameters":{"id":8088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8083,"mutability":"mutable","name":"contractAddress","nameLocation":"5108:15:32","nodeType":"VariableDeclaration","scope":8112,"src":"5100:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8082,"name":"address","nodeType":"ElementaryTypeName","src":"5100:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8085,"mutability":"mutable","name":"functionSig","nameLocation":"5149:11:32","nodeType":"VariableDeclaration","scope":8112,"src":"5133:27:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8084,"name":"string","nodeType":"ElementaryTypeName","src":"5133:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8087,"mutability":"mutable","name":"accountToRevoke","nameLocation":"5178:15:32","nodeType":"VariableDeclaration","scope":8112,"src":"5170:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8086,"name":"address","nodeType":"ElementaryTypeName","src":"5170:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5090:109:32"},"returnParameters":{"id":8089,"nodeType":"ParameterList","parameters":[],"src":"5207:0:32"},"scope":8190,"src":"5061:357:32","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8377],"body":{"id":8160,"nodeType":"Block","src":"5996:291:32","statements":[{"assignments":[8123],"declarations":[{"constant":false,"id":8123,"mutability":"mutable","name":"role","nameLocation":"6014:4:32","nodeType":"VariableDeclaration","scope":8160,"src":"6006:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6006:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8132,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":8127,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6048:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6052:6:32","memberName":"sender","nodeType":"MemberAccess","src":"6048:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8129,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8117,"src":"6060:11:32","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":8125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6031:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6035:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"6031:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6031:41:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8124,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6021:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:52:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6006:67:32"},{"condition":{"arguments":[{"id":8134,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"6096:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8135,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"6102:7:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8133,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3758,"src":"6088:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":8136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6088:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8158,"nodeType":"Block","src":"6154:127:32","statements":[{"expression":{"id":8151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8140,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"6168:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":8146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6210:1:32","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":8145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6202:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8144,"name":"address","nodeType":"ElementaryTypeName","src":"6202:7:32","typeDescriptions":{}}},"id":8147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6202:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8148,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8117,"src":"6214:11:32","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":8142,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6185:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6189:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"6185:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6185:41:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8141,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6175:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6175:52:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6168:59:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8152,"nodeType":"ExpressionStatement","src":"6168:59:32"},{"expression":{"arguments":[{"id":8154,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"6256:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8155,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"6262:7:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8153,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3758,"src":"6248:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":8156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6248:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8121,"id":8157,"nodeType":"Return","src":"6241:29:32"}]},"id":8159,"nodeType":"IfStatement","src":"6084:197:32","trueBody":{"id":8139,"nodeType":"Block","src":"6112:36:32","statements":[{"expression":{"hexValue":"74727565","id":8137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6133:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8121,"id":8138,"nodeType":"Return","src":"6126:11:32"}]}}]},"documentation":{"id":8113,"nodeType":"StructuredDocumentation","src":"5424:469:32","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":8161,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowedToCall","nameLocation":"5907:15:32","nodeType":"FunctionDefinition","parameters":{"id":8118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8115,"mutability":"mutable","name":"account","nameLocation":"5931:7:32","nodeType":"VariableDeclaration","scope":8161,"src":"5923:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8114,"name":"address","nodeType":"ElementaryTypeName","src":"5923:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8117,"mutability":"mutable","name":"functionSig","nameLocation":"5956:11:32","nodeType":"VariableDeclaration","scope":8161,"src":"5940:27:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8116,"name":"string","nodeType":"ElementaryTypeName","src":"5940:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5922:46:32"},"returnParameters":{"id":8121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8161,"src":"5990:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8119,"name":"bool","nodeType":"ElementaryTypeName","src":"5990:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5989:6:32"},"scope":8190,"src":"5898:389:32","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[8388],"body":{"id":8188,"nodeType":"Block","src":"6995:128:32","statements":[{"assignments":[8174],"declarations":[{"constant":false,"id":8174,"mutability":"mutable","name":"role","nameLocation":"7013:4:32","nodeType":"VariableDeclaration","scope":8188,"src":"7005:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7005:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8182,"initialValue":{"arguments":[{"arguments":[{"id":8178,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8166,"src":"7047:15:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8179,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8168,"src":"7064:11:32","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":8176,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7030:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7034:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"7030:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7030:46:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8175,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7020:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7020:57:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7005:72:32"},{"expression":{"arguments":[{"id":8184,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8174,"src":"7102:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8185,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8164,"src":"7108:7:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8183,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3758,"src":"7094:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":8186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7094:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8172,"id":8187,"nodeType":"Return","src":"7087:29:32"}]},"documentation":{"id":8162,"nodeType":"StructuredDocumentation","src":"6293:546:32","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":8189,"implemented":true,"kind":"function","modifiers":[],"name":"hasPermission","nameLocation":"6853:13:32","nodeType":"FunctionDefinition","parameters":{"id":8169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8164,"mutability":"mutable","name":"account","nameLocation":"6884:7:32","nodeType":"VariableDeclaration","scope":8189,"src":"6876:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8163,"name":"address","nodeType":"ElementaryTypeName","src":"6876:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8166,"mutability":"mutable","name":"contractAddress","nameLocation":"6909:15:32","nodeType":"VariableDeclaration","scope":8189,"src":"6901:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8165,"name":"address","nodeType":"ElementaryTypeName","src":"6901:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8168,"mutability":"mutable","name":"functionSig","nameLocation":"6950:11:32","nodeType":"VariableDeclaration","scope":8189,"src":"6934:27:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8167,"name":"string","nodeType":"ElementaryTypeName","src":"6934:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6866:101:32"},"returnParameters":{"id":8172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8189,"src":"6989:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8170,"name":"bool","nodeType":"ElementaryTypeName","src":"6989:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6988:6:32"},"scope":8190,"src":"6844:279:32","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":8191,"src":"2815:4310:32","usedErrors":[],"usedEvents":[4006,4015,4024,8029,8038]}],"src":"41:7085:32"},"id":32},"contracts/Governance/AccessControlledV8.sol":{"ast":{"absolutePath":"contracts/Governance/AccessControlledV8.sol","exportedSymbols":{"AccessControlledV8":[8344],"AddressUpgradeable":[3636],"ContextUpgradeable":[3678],"IAccessControl":[4067],"IAccessControlManagerV8":[8389],"Initializable":[3352],"Ownable2StepUpgradeable":[3051],"OwnableUpgradeable":[3183]},"id":8345,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8192,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:33"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":8193,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8345,"sourceUnit":3353,"src":"66:75:33","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":8194,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8345,"sourceUnit":3052,"src":"142:80:33","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","file":"./IAccessControlManagerV8.sol","id":8195,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8345,"sourceUnit":8390,"src":"224:39:33","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8197,"name":"Initializable","nameLocations":["626:13:33"],"nodeType":"IdentifierPath","referencedDeclaration":3352,"src":"626:13:33"},"id":8198,"nodeType":"InheritanceSpecifier","src":"626:13:33"},{"baseName":{"id":8199,"name":"Ownable2StepUpgradeable","nameLocations":["641:23:33"],"nodeType":"IdentifierPath","referencedDeclaration":3051,"src":"641:23:33"},"id":8200,"nodeType":"InheritanceSpecifier","src":"641:23:33"}],"canonicalName":"AccessControlledV8","contractDependencies":[],"contractKind":"contract","documentation":{"id":8196,"nodeType":"StructuredDocumentation","src":"265:320:33","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":8344,"linearizedBaseContracts":[8344,3051,3183,3678,3352],"name":"AccessControlledV8","nameLocation":"604:18:33","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":8201,"nodeType":"StructuredDocumentation","src":"671:43:33","text":"@notice Access control manager contract"},"id":8204,"mutability":"mutable","name":"_accessControlManager","nameLocation":"752:21:33","nodeType":"VariableDeclaration","scope":8344,"src":"719:54:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":8203,"nodeType":"UserDefinedTypeName","pathNode":{"id":8202,"name":"IAccessControlManagerV8","nameLocations":["719:23:33"],"nodeType":"IdentifierPath","referencedDeclaration":8389,"src":"719:23:33"},"referencedDeclaration":8389,"src":"719:23:33","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"},{"constant":false,"documentation":{"id":8205,"nodeType":"StructuredDocumentation","src":"780:254:33","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":8209,"mutability":"mutable","name":"__gap","nameLocation":"1059:5:33","nodeType":"VariableDeclaration","scope":8344,"src":"1039:25:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":8206,"name":"uint256","nodeType":"ElementaryTypeName","src":"1039:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8208,"length":{"hexValue":"3439","id":8207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1047:2:33","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1039:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":8210,"nodeType":"StructuredDocumentation","src":"1071:75:33","text":"@notice Emitted when access control manager contract address is changed"},"eventSelector":"66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0","id":8216,"name":"NewAccessControlManager","nameLocation":"1157:23:33","nodeType":"EventDefinition","parameters":{"id":8215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8212,"indexed":false,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"1189:23:33","nodeType":"VariableDeclaration","scope":8216,"src":"1181:31:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8211,"name":"address","nodeType":"ElementaryTypeName","src":"1181:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8214,"indexed":false,"mutability":"mutable","name":"newAccessControlManager","nameLocation":"1222:23:33","nodeType":"VariableDeclaration","scope":8216,"src":"1214:31:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8213,"name":"address","nodeType":"ElementaryTypeName","src":"1214:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1180:66:33"},"src":"1151:96:33"},{"documentation":{"id":8217,"nodeType":"StructuredDocumentation","src":"1253:72:33","text":"@notice Thrown when the action is prohibited by AccessControlManager"},"errorSelector":"4a3fa293","id":8225,"name":"Unauthorized","nameLocation":"1336:12:33","nodeType":"ErrorDefinition","parameters":{"id":8224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8219,"mutability":"mutable","name":"sender","nameLocation":"1357:6:33","nodeType":"VariableDeclaration","scope":8225,"src":"1349:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8218,"name":"address","nodeType":"ElementaryTypeName","src":"1349:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8221,"mutability":"mutable","name":"calledContract","nameLocation":"1373:14:33","nodeType":"VariableDeclaration","scope":8225,"src":"1365:22:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8220,"name":"address","nodeType":"ElementaryTypeName","src":"1365:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8223,"mutability":"mutable","name":"methodSignature","nameLocation":"1396:15:33","nodeType":"VariableDeclaration","scope":8225,"src":"1389:22:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8222,"name":"string","nodeType":"ElementaryTypeName","src":"1389:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1348:64:33"},"src":"1330:83:33"},{"body":{"id":8239,"nodeType":"Block","src":"1509:104:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8232,"name":"__Ownable2Step_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2963,"src":"1519:19:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":8233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:21:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8234,"nodeType":"ExpressionStatement","src":"1519:21:33"},{"expression":{"arguments":[{"id":8236,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8227,"src":"1584:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8235,"name":"__AccessControlled_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8252,"src":"1550:33:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1550:56:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8238,"nodeType":"ExpressionStatement","src":"1550:56:33"}]},"id":8240,"implemented":true,"kind":"function","modifiers":[{"id":8230,"kind":"modifierInvocation","modifierName":{"id":8229,"name":"onlyInitializing","nameLocations":["1492:16:33"],"nodeType":"IdentifierPath","referencedDeclaration":3297,"src":"1492:16:33"},"nodeType":"ModifierInvocation","src":"1492:16:33"}],"name":"__AccessControlled_init","nameLocation":"1428:23:33","nodeType":"FunctionDefinition","parameters":{"id":8228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8227,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1460:21:33","nodeType":"VariableDeclaration","scope":8240,"src":"1452:29:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8226,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1451:31:33"},"returnParameters":{"id":8231,"nodeType":"ParameterList","parameters":[],"src":"1509:0:33"},"scope":8344,"src":"1419:194:33","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8251,"nodeType":"Block","src":"1719:64:33","statements":[{"expression":{"arguments":[{"id":8248,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8242,"src":"1754:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8247,"name":"_setAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8313,"src":"1729:24:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1729:47:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8250,"nodeType":"ExpressionStatement","src":"1729:47:33"}]},"id":8252,"implemented":true,"kind":"function","modifiers":[{"id":8245,"kind":"modifierInvocation","modifierName":{"id":8244,"name":"onlyInitializing","nameLocations":["1702:16:33"],"nodeType":"IdentifierPath","referencedDeclaration":3297,"src":"1702:16:33"},"nodeType":"ModifierInvocation","src":"1702:16:33"}],"name":"__AccessControlled_init_unchained","nameLocation":"1628:33:33","nodeType":"FunctionDefinition","parameters":{"id":8243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8242,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1670:21:33","nodeType":"VariableDeclaration","scope":8252,"src":"1662:29:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8241,"name":"address","nodeType":"ElementaryTypeName","src":"1662:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1661:31:33"},"returnParameters":{"id":8246,"nodeType":"ParameterList","parameters":[],"src":"1719:0:33"},"scope":8344,"src":"1619:164:33","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8264,"nodeType":"Block","src":"2185:64:33","statements":[{"expression":{"arguments":[{"id":8261,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8255,"src":"2220:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8260,"name":"_setAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8313,"src":"2195:24:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2195:47:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8263,"nodeType":"ExpressionStatement","src":"2195:47:33"}]},"documentation":{"id":8253,"nodeType":"StructuredDocumentation","src":"1789:308:33","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":8265,"implemented":true,"kind":"function","modifiers":[{"id":8258,"kind":"modifierInvocation","modifierName":{"id":8257,"name":"onlyOwner","nameLocations":["2175:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":3097,"src":"2175:9:33"},"nodeType":"ModifierInvocation","src":"2175:9:33"}],"name":"setAccessControlManager","nameLocation":"2111:23:33","nodeType":"FunctionDefinition","parameters":{"id":8256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8255,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2143:21:33","nodeType":"VariableDeclaration","scope":8265,"src":"2135:29:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8254,"name":"address","nodeType":"ElementaryTypeName","src":"2135:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2134:31:33"},"returnParameters":{"id":8259,"nodeType":"ParameterList","parameters":[],"src":"2185:0:33"},"scope":8344,"src":"2102:147:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8274,"nodeType":"Block","src":"2425:45:33","statements":[{"expression":{"id":8272,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8204,"src":"2442:21:33","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"functionReturnParameters":8271,"id":8273,"nodeType":"Return","src":"2435:28:33"}]},"documentation":{"id":8266,"nodeType":"StructuredDocumentation","src":"2255:85:33","text":" @notice Returns the address of the access control manager contract"},"functionSelector":"b4a0bdf3","id":8275,"implemented":true,"kind":"function","modifiers":[],"name":"accessControlManager","nameLocation":"2354:20:33","nodeType":"FunctionDefinition","parameters":{"id":8267,"nodeType":"ParameterList","parameters":[],"src":"2374:2:33"},"returnParameters":{"id":8271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8275,"src":"2400:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":8269,"nodeType":"UserDefinedTypeName","pathNode":{"id":8268,"name":"IAccessControlManagerV8","nameLocations":["2400:23:33"],"nodeType":"IdentifierPath","referencedDeclaration":8389,"src":"2400:23:33"},"referencedDeclaration":8389,"src":"2400:23:33","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"}],"src":"2399:25:33"},"scope":8344,"src":"2345:125:33","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":8312,"nodeType":"Block","src":"2715:351:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8284,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8278,"src":"2741:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2733:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8282,"name":"address","nodeType":"ElementaryTypeName","src":"2733:7:33","typeDescriptions":{}}},"id":8285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2733:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2775:1:33","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":8287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2767:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8286,"name":"address","nodeType":"ElementaryTypeName","src":"2767:7:33","typeDescriptions":{}}},"id":8289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2767:10:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2733:44:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e616765722061646472657373","id":8291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2779:39:33","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":8281,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2725:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2725:94:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8293,"nodeType":"ExpressionStatement","src":"2725:94:33"},{"assignments":[8295],"declarations":[{"constant":false,"id":8295,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"2837:23:33","nodeType":"VariableDeclaration","scope":8312,"src":"2829:31:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8294,"name":"address","nodeType":"ElementaryTypeName","src":"2829:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8300,"initialValue":{"arguments":[{"id":8298,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8204,"src":"2871:21:33","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}],"id":8297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2863:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8296,"name":"address","nodeType":"ElementaryTypeName","src":"2863:7:33","typeDescriptions":{}}},"id":8299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2863:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2829:64:33"},{"expression":{"id":8305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8301,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8204,"src":"2903:21:33","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8303,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8278,"src":"2951:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8302,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8389,"src":"2927:23:33","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlManagerV8_$8389_$","typeString":"type(contract IAccessControlManagerV8)"}},"id":8304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2927:46:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"src":"2903:70:33","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"id":8306,"nodeType":"ExpressionStatement","src":"2903:70:33"},{"eventCall":{"arguments":[{"id":8308,"name":"oldAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8295,"src":"3012:23:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8309,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8278,"src":"3037:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8307,"name":"NewAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8216,"src":"2988:23:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":8310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2988:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8311,"nodeType":"EmitStatement","src":"2983:76:33"}]},"documentation":{"id":8276,"nodeType":"StructuredDocumentation","src":"2476:160:33","text":" @dev Internal function to set address of AccessControlManager\n @param accessControlManager_ The new address of the AccessControlManager"},"id":8313,"implemented":true,"kind":"function","modifiers":[],"name":"_setAccessControlManager","nameLocation":"2650:24:33","nodeType":"FunctionDefinition","parameters":{"id":8279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8278,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2683:21:33","nodeType":"VariableDeclaration","scope":8313,"src":"2675:29:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8277,"name":"address","nodeType":"ElementaryTypeName","src":"2675:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2674:31:33"},"returnParameters":{"id":8280,"nodeType":"ParameterList","parameters":[],"src":"2715:0:33"},"scope":8344,"src":"2641:425:33","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8342,"nodeType":"Block","src":"3271:214:33","statements":[{"assignments":[8320],"declarations":[{"constant":false,"id":8320,"mutability":"mutable","name":"isAllowedToCall","nameLocation":"3286:15:33","nodeType":"VariableDeclaration","scope":8342,"src":"3281:20:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8319,"name":"bool","nodeType":"ElementaryTypeName","src":"3281:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8327,"initialValue":{"arguments":[{"expression":{"id":8323,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3342:3:33","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3346:6:33","memberName":"sender","nodeType":"MemberAccess","src":"3342:10:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8325,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8316,"src":"3354:9:33","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":8321,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8204,"src":"3304:21:33","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"id":8322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3326:15:33","memberName":"isAllowedToCall","nodeType":"MemberAccess","referencedDeclaration":8377,"src":"3304:37:33","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":8326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3304:60:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3281:83:33"},{"condition":{"id":8329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3379:16:33","subExpression":{"id":8328,"name":"isAllowedToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8320,"src":"3380:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8341,"nodeType":"IfStatement","src":"3375:104:33","trueBody":{"id":8340,"nodeType":"Block","src":"3397:82:33","statements":[{"errorCall":{"arguments":[{"expression":{"id":8331,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3431:3:33","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3435:6:33","memberName":"sender","nodeType":"MemberAccess","src":"3431:10:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8335,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3451:4:33","typeDescriptions":{"typeIdentifier":"t_contract$_AccessControlledV8_$8344","typeString":"contract AccessControlledV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AccessControlledV8_$8344","typeString":"contract AccessControlledV8"}],"id":8334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3443:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8333,"name":"address","nodeType":"ElementaryTypeName","src":"3443:7:33","typeDescriptions":{}}},"id":8336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3443:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8337,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8316,"src":"3458:9:33","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":8330,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8225,"src":"3418:12:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory) pure"}},"id":8338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:50:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8339,"nodeType":"RevertStatement","src":"3411:57:33"}]}}]},"documentation":{"id":8314,"nodeType":"StructuredDocumentation","src":"3072:126:33","text":" @notice Reverts if the call is not allowed by AccessControlManager\n @param signature Method signature"},"id":8343,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAccessAllowed","nameLocation":"3212:19:33","nodeType":"FunctionDefinition","parameters":{"id":8317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8316,"mutability":"mutable","name":"signature","nameLocation":"3246:9:33","nodeType":"VariableDeclaration","scope":8343,"src":"3232:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8315,"name":"string","nodeType":"ElementaryTypeName","src":"3232:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3231:25:33"},"returnParameters":{"id":8318,"nodeType":"ParameterList","parameters":[],"src":"3271:0:33"},"scope":8344,"src":"3203:282:33","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":8345,"src":"586:2901:33","usedErrors":[8225],"usedEvents":[2977,3068,3198,8216]}],"src":"41:3447:33"},"id":33},"contracts/Governance/IAccessControlManagerV8.sol":{"ast":{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","exportedSymbols":{"IAccessControl":[4067],"IAccessControlManagerV8":[8389]},"id":8390,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8346,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:34"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":8347,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8390,"sourceUnit":4068,"src":"67:59:34","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8349,"name":"IAccessControl","nameLocations":["299:14:34"],"nodeType":"IdentifierPath","referencedDeclaration":4067,"src":"299:14:34"},"id":8350,"nodeType":"InheritanceSpecifier","src":"299:14:34"}],"canonicalName":"IAccessControlManagerV8","contractDependencies":[],"contractKind":"interface","documentation":{"id":8348,"nodeType":"StructuredDocumentation","src":"128:133:34","text":" @title IAccessControlManagerV8\n @author Venus\n @notice Interface implemented by the `AccessControlManagerV8` contract."},"fullyImplemented":false,"id":8389,"linearizedBaseContracts":[8389,4067],"name":"IAccessControlManagerV8","nameLocation":"272:23:34","nodeType":"ContractDefinition","nodes":[{"functionSelector":"584f6b60","id":8359,"implemented":false,"kind":"function","modifiers":[],"name":"giveCallPermission","nameLocation":"329:18:34","nodeType":"FunctionDefinition","parameters":{"id":8357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8352,"mutability":"mutable","name":"contractAddress","nameLocation":"356:15:34","nodeType":"VariableDeclaration","scope":8359,"src":"348:23:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8351,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8354,"mutability":"mutable","name":"functionSig","nameLocation":"389:11:34","nodeType":"VariableDeclaration","scope":8359,"src":"373:27:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8353,"name":"string","nodeType":"ElementaryTypeName","src":"373:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8356,"mutability":"mutable","name":"accountToPermit","nameLocation":"410:15:34","nodeType":"VariableDeclaration","scope":8359,"src":"402:23:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8355,"name":"address","nodeType":"ElementaryTypeName","src":"402:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:79:34"},"returnParameters":{"id":8358,"nodeType":"ParameterList","parameters":[],"src":"435:0:34"},"scope":8389,"src":"320:116:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"545f7a32","id":8368,"implemented":false,"kind":"function","modifiers":[],"name":"revokeCallPermission","nameLocation":"451:20:34","nodeType":"FunctionDefinition","parameters":{"id":8366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8361,"mutability":"mutable","name":"contractAddress","nameLocation":"489:15:34","nodeType":"VariableDeclaration","scope":8368,"src":"481:23:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8360,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8363,"mutability":"mutable","name":"functionSig","nameLocation":"530:11:34","nodeType":"VariableDeclaration","scope":8368,"src":"514:27:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8362,"name":"string","nodeType":"ElementaryTypeName","src":"514:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8365,"mutability":"mutable","name":"accountToRevoke","nameLocation":"559:15:34","nodeType":"VariableDeclaration","scope":8368,"src":"551:23:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8364,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"471:109:34"},"returnParameters":{"id":8367,"nodeType":"ParameterList","parameters":[],"src":"589:0:34"},"scope":8389,"src":"442:148:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"18c5e8ab","id":8377,"implemented":false,"kind":"function","modifiers":[],"name":"isAllowedToCall","nameLocation":"605:15:34","nodeType":"FunctionDefinition","parameters":{"id":8373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8370,"mutability":"mutable","name":"account","nameLocation":"629:7:34","nodeType":"VariableDeclaration","scope":8377,"src":"621:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8369,"name":"address","nodeType":"ElementaryTypeName","src":"621:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8372,"mutability":"mutable","name":"functionSig","nameLocation":"654:11:34","nodeType":"VariableDeclaration","scope":8377,"src":"638:27:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8371,"name":"string","nodeType":"ElementaryTypeName","src":"638:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"620:46:34"},"returnParameters":{"id":8376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8377,"src":"690:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8374,"name":"bool","nodeType":"ElementaryTypeName","src":"690:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"689:6:34"},"scope":8389,"src":"596:100:34","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"82bfd0f0","id":8388,"implemented":false,"kind":"function","modifiers":[],"name":"hasPermission","nameLocation":"711:13:34","nodeType":"FunctionDefinition","parameters":{"id":8384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8379,"mutability":"mutable","name":"account","nameLocation":"742:7:34","nodeType":"VariableDeclaration","scope":8388,"src":"734:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8378,"name":"address","nodeType":"ElementaryTypeName","src":"734:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8381,"mutability":"mutable","name":"contractAddress","nameLocation":"767:15:34","nodeType":"VariableDeclaration","scope":8388,"src":"759:23:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8380,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8383,"mutability":"mutable","name":"functionSig","nameLocation":"808:11:34","nodeType":"VariableDeclaration","scope":8388,"src":"792:27:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8382,"name":"string","nodeType":"ElementaryTypeName","src":"792:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"724:101:34"},"returnParameters":{"id":8387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8388,"src":"849:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8385,"name":"bool","nodeType":"ElementaryTypeName","src":"849:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"848:6:34"},"scope":8389,"src":"702:153:34","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8390,"src":"262:595:34","usedErrors":[],"usedEvents":[4006,4015,4024]}],"src":"41:817:34"},"id":34},"contracts/Governance/TimelockV8.sol":{"ast":{"absolutePath":"contracts/Governance/TimelockV8.sol","exportedSymbols":{"TimelockV8":[8932],"ensureNonzeroAddress":[5466]},"id":8933,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8391,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:35"},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":8393,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8933,"sourceUnit":5482,"src":"65:98:35","symbolAliases":[{"foreign":{"id":8392,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"74:20:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"TimelockV8","contractDependencies":[],"contractKind":"contract","documentation":{"id":8394,"nodeType":"StructuredDocumentation","src":"165:263:35","text":" @title TimelockV8\n @author Venus\n @notice The Timelock contract using solidity V8.\n This contract also differs from the original timelock because it has a virtual function to get minimum delays\n and allow test deployments to override the value."},"fullyImplemented":true,"id":8932,"linearizedBaseContracts":[8932],"name":"TimelockV8","nameLocation":"438:10:35","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":8395,"nodeType":"StructuredDocumentation","src":"455:61:35","text":"@notice Required period to execute a proposal transaction"},"id":8398,"mutability":"constant","name":"DEFAULT_GRACE_PERIOD","nameLocation":"546:20:35","nodeType":"VariableDeclaration","scope":8932,"src":"521:55:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8396,"name":"uint256","nodeType":"ElementaryTypeName","src":"521:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3134","id":8397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"569:7:35","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_1209600_by_1","typeString":"int_const 1209600"},"value":"14"},"visibility":"private"},{"constant":true,"documentation":{"id":8399,"nodeType":"StructuredDocumentation","src":"583:72:35","text":"@notice Minimum amount of time a proposal transaction must be queued"},"id":8402,"mutability":"constant","name":"DEFAULT_MINIMUM_DELAY","nameLocation":"685:21:35","nodeType":"VariableDeclaration","scope":8932,"src":"660:56:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8400,"name":"uint256","nodeType":"ElementaryTypeName","src":"660:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":8401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"709:7:35","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"1"},"visibility":"private"},{"constant":true,"documentation":{"id":8403,"nodeType":"StructuredDocumentation","src":"723:72:35","text":"@notice Maximum amount of time a proposal transaction must be queued"},"id":8406,"mutability":"constant","name":"DEFAULT_MAXIMUM_DELAY","nameLocation":"825:21:35","nodeType":"VariableDeclaration","scope":8932,"src":"800:56:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8404,"name":"uint256","nodeType":"ElementaryTypeName","src":"800:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3330","id":8405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"849:7:35","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_2592000_by_1","typeString":"int_const 2592000"},"value":"30"},"visibility":"private"},{"constant":false,"documentation":{"id":8407,"nodeType":"StructuredDocumentation","src":"863:71:35","text":"@notice Timelock admin authorized to queue and execute transactions"},"functionSelector":"f851a440","id":8409,"mutability":"mutable","name":"admin","nameLocation":"954:5:35","nodeType":"VariableDeclaration","scope":8932,"src":"939:20:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8408,"name":"address","nodeType":"ElementaryTypeName","src":"939:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":8410,"nodeType":"StructuredDocumentation","src":"966:46:35","text":"@notice Account proposed as the next admin"},"functionSelector":"26782247","id":8412,"mutability":"mutable","name":"pendingAdmin","nameLocation":"1032:12:35","nodeType":"VariableDeclaration","scope":8932,"src":"1017:27:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8411,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":8413,"nodeType":"StructuredDocumentation","src":"1051:58:35","text":"@notice Period for a proposal transaction to be queued"},"functionSelector":"6a42b8f8","id":8415,"mutability":"mutable","name":"delay","nameLocation":"1129:5:35","nodeType":"VariableDeclaration","scope":8932,"src":"1114:20:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8414,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":8416,"nodeType":"StructuredDocumentation","src":"1141:42:35","text":"@notice Mapping of queued transactions"},"functionSelector":"f2b06537","id":8420,"mutability":"mutable","name":"queuedTransactions","nameLocation":"1220:18:35","nodeType":"VariableDeclaration","scope":8932,"src":"1188:50:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":8419,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1196:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1188:24:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8418,"name":"bool","nodeType":"ElementaryTypeName","src":"1207:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":8421,"nodeType":"StructuredDocumentation","src":"1245:54:35","text":"@notice Event emitted when a new admin is accepted"},"eventSelector":"f9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc","id":8427,"name":"NewAdmin","nameLocation":"1310:8:35","nodeType":"EventDefinition","parameters":{"id":8426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8423,"indexed":true,"mutability":"mutable","name":"oldAdmin","nameLocation":"1335:8:35","nodeType":"VariableDeclaration","scope":8427,"src":"1319:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8422,"name":"address","nodeType":"ElementaryTypeName","src":"1319:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8425,"indexed":true,"mutability":"mutable","name":"newAdmin","nameLocation":"1361:8:35","nodeType":"VariableDeclaration","scope":8427,"src":"1345:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8424,"name":"address","nodeType":"ElementaryTypeName","src":"1345:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1318:52:35"},"src":"1304:67:35"},{"anonymous":false,"documentation":{"id":8428,"nodeType":"StructuredDocumentation","src":"1377:54:35","text":"@notice Event emitted when a new admin is proposed"},"eventSelector":"69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a756","id":8432,"name":"NewPendingAdmin","nameLocation":"1442:15:35","nodeType":"EventDefinition","parameters":{"id":8431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8430,"indexed":true,"mutability":"mutable","name":"newPendingAdmin","nameLocation":"1474:15:35","nodeType":"VariableDeclaration","scope":8432,"src":"1458:31:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8429,"name":"address","nodeType":"ElementaryTypeName","src":"1458:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1457:33:35"},"src":"1436:55:35"},{"anonymous":false,"documentation":{"id":8433,"nodeType":"StructuredDocumentation","src":"1497:54:35","text":"@notice Event emitted when a new delay is proposed"},"eventSelector":"ed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be","id":8439,"name":"NewDelay","nameLocation":"1562:8:35","nodeType":"EventDefinition","parameters":{"id":8438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8435,"indexed":true,"mutability":"mutable","name":"oldDelay","nameLocation":"1587:8:35","nodeType":"VariableDeclaration","scope":8439,"src":"1571:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8434,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8437,"indexed":true,"mutability":"mutable","name":"newDelay","nameLocation":"1613:8:35","nodeType":"VariableDeclaration","scope":8439,"src":"1597:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8436,"name":"uint256","nodeType":"ElementaryTypeName","src":"1597:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1570:52:35"},"src":"1556:67:35"},{"anonymous":false,"documentation":{"id":8440,"nodeType":"StructuredDocumentation","src":"1629:72:35","text":"@notice Event emitted when a proposal transaction has been cancelled"},"eventSelector":"2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf87","id":8454,"name":"CancelTransaction","nameLocation":"1712:17:35","nodeType":"EventDefinition","parameters":{"id":8453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8442,"indexed":true,"mutability":"mutable","name":"txHash","nameLocation":"1755:6:35","nodeType":"VariableDeclaration","scope":8454,"src":"1739:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1739:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8444,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"1787:6:35","nodeType":"VariableDeclaration","scope":8454,"src":"1771:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8443,"name":"address","nodeType":"ElementaryTypeName","src":"1771:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8446,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1811:5:35","nodeType":"VariableDeclaration","scope":8454,"src":"1803:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8445,"name":"uint256","nodeType":"ElementaryTypeName","src":"1803:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8448,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"1833:9:35","nodeType":"VariableDeclaration","scope":8454,"src":"1826:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8447,"name":"string","nodeType":"ElementaryTypeName","src":"1826:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8450,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"1858:4:35","nodeType":"VariableDeclaration","scope":8454,"src":"1852:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8449,"name":"bytes","nodeType":"ElementaryTypeName","src":"1852:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8452,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"1880:3:35","nodeType":"VariableDeclaration","scope":8454,"src":"1872:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8451,"name":"uint256","nodeType":"ElementaryTypeName","src":"1872:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1729:160:35"},"src":"1706:184:35"},{"anonymous":false,"documentation":{"id":8455,"nodeType":"StructuredDocumentation","src":"1896:71:35","text":"@notice Event emitted when a proposal transaction has been executed"},"eventSelector":"a560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e7","id":8469,"name":"ExecuteTransaction","nameLocation":"1978:18:35","nodeType":"EventDefinition","parameters":{"id":8468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8457,"indexed":true,"mutability":"mutable","name":"txHash","nameLocation":"2022:6:35","nodeType":"VariableDeclaration","scope":8469,"src":"2006:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2006:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8459,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"2054:6:35","nodeType":"VariableDeclaration","scope":8469,"src":"2038:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8458,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8461,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2078:5:35","nodeType":"VariableDeclaration","scope":8469,"src":"2070:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8460,"name":"uint256","nodeType":"ElementaryTypeName","src":"2070:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8463,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"2100:9:35","nodeType":"VariableDeclaration","scope":8469,"src":"2093:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8462,"name":"string","nodeType":"ElementaryTypeName","src":"2093:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8465,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2125:4:35","nodeType":"VariableDeclaration","scope":8469,"src":"2119:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8464,"name":"bytes","nodeType":"ElementaryTypeName","src":"2119:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8467,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"2147:3:35","nodeType":"VariableDeclaration","scope":8469,"src":"2139:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8466,"name":"uint256","nodeType":"ElementaryTypeName","src":"2139:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1996:160:35"},"src":"1972:185:35"},{"anonymous":false,"documentation":{"id":8470,"nodeType":"StructuredDocumentation","src":"2163:69:35","text":"@notice Event emitted when a proposal transaction has been queued"},"eventSelector":"76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f","id":8484,"name":"QueueTransaction","nameLocation":"2243:16:35","nodeType":"EventDefinition","parameters":{"id":8483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8472,"indexed":true,"mutability":"mutable","name":"txHash","nameLocation":"2285:6:35","nodeType":"VariableDeclaration","scope":8484,"src":"2269:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2269:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8474,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"2317:6:35","nodeType":"VariableDeclaration","scope":8484,"src":"2301:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8473,"name":"address","nodeType":"ElementaryTypeName","src":"2301:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8476,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2341:5:35","nodeType":"VariableDeclaration","scope":8484,"src":"2333:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8475,"name":"uint256","nodeType":"ElementaryTypeName","src":"2333:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8478,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"2363:9:35","nodeType":"VariableDeclaration","scope":8484,"src":"2356:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8477,"name":"string","nodeType":"ElementaryTypeName","src":"2356:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8480,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2388:4:35","nodeType":"VariableDeclaration","scope":8484,"src":"2382:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8479,"name":"bytes","nodeType":"ElementaryTypeName","src":"2382:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8482,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"2410:3:35","nodeType":"VariableDeclaration","scope":8484,"src":"2402:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8481,"name":"uint256","nodeType":"ElementaryTypeName","src":"2402:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2259:160:35"},"src":"2237:183:35"},{"body":{"id":8519,"nodeType":"Block","src":"2470:301:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8492,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8488,"src":"2488:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8493,"name":"MINIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"2498:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":8494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:15:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2488:25:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e","id":8496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2515:57:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f","typeString":"literal_string \"Timelock::constructor: Delay must exceed minimum delay.\""},"value":"Timelock::constructor: Delay must exceed minimum delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f","typeString":"literal_string \"Timelock::constructor: Delay must exceed minimum delay.\""}],"id":8491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2480:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2480:93:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8498,"nodeType":"ExpressionStatement","src":"2480:93:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8500,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8488,"src":"2591:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8501,"name":"MAXIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8594,"src":"2601:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":8502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2601:15:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2591:25:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e","id":8504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2618:58:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0","typeString":"literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\""},"value":"Timelock::setDelay: Delay must not exceed maximum delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0","typeString":"literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\""}],"id":8499,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2583:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2583:94:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8506,"nodeType":"ExpressionStatement","src":"2583:94:35"},{"expression":{"arguments":[{"id":8508,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8486,"src":"2708:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8507,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"2687:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2687:28:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8510,"nodeType":"ExpressionStatement","src":"2687:28:35"},{"expression":{"id":8513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8511,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"2726:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8512,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8486,"src":"2734:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2726:14:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8514,"nodeType":"ExpressionStatement","src":"2726:14:35"},{"expression":{"id":8517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8515,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8415,"src":"2750:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8516,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8488,"src":"2758:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2750:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8518,"nodeType":"ExpressionStatement","src":"2750:14:35"}]},"id":8520,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8486,"mutability":"mutable","name":"admin_","nameLocation":"2446:6:35","nodeType":"VariableDeclaration","scope":8520,"src":"2438:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8485,"name":"address","nodeType":"ElementaryTypeName","src":"2438:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8488,"mutability":"mutable","name":"delay_","nameLocation":"2462:6:35","nodeType":"VariableDeclaration","scope":8520,"src":"2454:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8487,"name":"uint256","nodeType":"ElementaryTypeName","src":"2454:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2437:32:35"},"returnParameters":{"id":8490,"nodeType":"ParameterList","parameters":[],"src":"2470:0:35"},"scope":8932,"src":"2426:345:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8523,"nodeType":"Block","src":"2805:2:35","statements":[]},"id":8524,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8521,"nodeType":"ParameterList","parameters":[],"src":"2785:2:35"},"returnParameters":{"id":8522,"nodeType":"ParameterList","parameters":[],"src":"2805:0:35"},"scope":8932,"src":"2777:30:35","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":8566,"nodeType":"Block","src":"3103:372:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8531,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3121:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3125:6:35","memberName":"sender","nodeType":"MemberAccess","src":"3121:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":8535,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3143:4:35","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockV8_$8932","typeString":"contract TimelockV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockV8_$8932","typeString":"contract TimelockV8"}],"id":8534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3135:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8533,"name":"address","nodeType":"ElementaryTypeName","src":"3135:7:35","typeDescriptions":{}}},"id":8536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3135:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3121:27:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e","id":8538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3150:51:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d","typeString":"literal_string \"Timelock::setDelay: Call must come from Timelock.\""},"value":"Timelock::setDelay: Call must come from Timelock."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d","typeString":"literal_string \"Timelock::setDelay: Call must come from Timelock.\""}],"id":8530,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3113:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3113:89:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8540,"nodeType":"ExpressionStatement","src":"3113:89:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8542,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"3220:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8543,"name":"MINIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"3230:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":8544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:15:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3220:25:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e","id":8546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3247:54:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d","typeString":"literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\""},"value":"Timelock::setDelay: Delay must exceed minimum delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d","typeString":"literal_string \"Timelock::setDelay: Delay must exceed minimum delay.\""}],"id":8541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3212:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:90:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8548,"nodeType":"ExpressionStatement","src":"3212:90:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8550,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"3320:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8551,"name":"MAXIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8594,"src":"3330:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":8552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3330:15:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3320:25:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e","id":8554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3347:58:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0","typeString":"literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\""},"value":"Timelock::setDelay: Delay must not exceed maximum delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0","typeString":"literal_string \"Timelock::setDelay: Delay must not exceed maximum delay.\""}],"id":8549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3312:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3312:94:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8556,"nodeType":"ExpressionStatement","src":"3312:94:35"},{"eventCall":{"arguments":[{"id":8558,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8415,"src":"3430:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8559,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"3437:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8557,"name":"NewDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8439,"src":"3421:8:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":8560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3421:23:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8561,"nodeType":"EmitStatement","src":"3416:28:35"},{"expression":{"id":8564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8562,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8415,"src":"3454:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8563,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"3462:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3454:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8565,"nodeType":"ExpressionStatement","src":"3454:14:35"}]},"documentation":{"id":8525,"nodeType":"StructuredDocumentation","src":"2813:244:35","text":" @notice Setter for the transaction queue delay\n @param delay_ The new delay period for the transaction queue\n @custom:access Sender must be Timelock itself\n @custom:event Emit NewDelay with old and new delay"},"functionSelector":"e177246e","id":8567,"implemented":true,"kind":"function","modifiers":[],"name":"setDelay","nameLocation":"3071:8:35","nodeType":"FunctionDefinition","parameters":{"id":8528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8527,"mutability":"mutable","name":"delay_","nameLocation":"3088:6:35","nodeType":"VariableDeclaration","scope":8567,"src":"3080:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3080:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3079:16:35"},"returnParameters":{"id":8529,"nodeType":"ParameterList","parameters":[],"src":"3103:0:35"},"scope":8932,"src":"3062:413:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8575,"nodeType":"Block","src":"3673:44:35","statements":[{"expression":{"id":8573,"name":"DEFAULT_GRACE_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"3690:20:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8572,"id":8574,"nodeType":"Return","src":"3683:27:35"}]},"documentation":{"id":8568,"nodeType":"StructuredDocumentation","src":"3481:125:35","text":" @notice Return grace period\n @return The duration of the grace period, specified as a uint256 value."},"functionSelector":"c1a287e2","id":8576,"implemented":true,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nameLocation":"3620:12:35","nodeType":"FunctionDefinition","parameters":{"id":8569,"nodeType":"ParameterList","parameters":[],"src":"3632:2:35"},"returnParameters":{"id":8572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8576,"src":"3664:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8570,"name":"uint256","nodeType":"ElementaryTypeName","src":"3664:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3663:9:35"},"scope":8932,"src":"3611:106:35","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8584,"nodeType":"Block","src":"3876:45:35","statements":[{"expression":{"id":8582,"name":"DEFAULT_MINIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8402,"src":"3893:21:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8581,"id":8583,"nodeType":"Return","src":"3886:28:35"}]},"documentation":{"id":8577,"nodeType":"StructuredDocumentation","src":"3723:85:35","text":" @notice Return required minimum delay\n @return Minimum delay"},"functionSelector":"b1b43ae5","id":8585,"implemented":true,"kind":"function","modifiers":[],"name":"MINIMUM_DELAY","nameLocation":"3822:13:35","nodeType":"FunctionDefinition","parameters":{"id":8578,"nodeType":"ParameterList","parameters":[],"src":"3835:2:35"},"returnParameters":{"id":8581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8585,"src":"3867:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8579,"name":"uint256","nodeType":"ElementaryTypeName","src":"3867:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3866:9:35"},"scope":8932,"src":"3813:108:35","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8593,"nodeType":"Block","src":"4080:45:35","statements":[{"expression":{"id":8591,"name":"DEFAULT_MAXIMUM_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8406,"src":"4097:21:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8590,"id":8592,"nodeType":"Return","src":"4090:28:35"}]},"documentation":{"id":8586,"nodeType":"StructuredDocumentation","src":"3927:85:35","text":" @notice Return required maximum delay\n @return Maximum delay"},"functionSelector":"7d645fab","id":8594,"implemented":true,"kind":"function","modifiers":[],"name":"MAXIMUM_DELAY","nameLocation":"4026:13:35","nodeType":"FunctionDefinition","parameters":{"id":8587,"nodeType":"ParameterList","parameters":[],"src":"4039:2:35"},"returnParameters":{"id":8590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8594,"src":"4071:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8588,"name":"uint256","nodeType":"ElementaryTypeName","src":"4071:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4070:9:35"},"scope":8932,"src":"4017:108:35","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8624,"nodeType":"Block","src":"4339:217:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8599,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4357:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:6:35","memberName":"sender","nodeType":"MemberAccess","src":"4357:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8601,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"4371:12:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4357:26:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737420636f6d652066726f6d2070656e64696e6741646d696e2e","id":8603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4385:58:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3","typeString":"literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\""},"value":"Timelock::acceptAdmin: Call must come from pendingAdmin."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3","typeString":"literal_string \"Timelock::acceptAdmin: Call must come from pendingAdmin.\""}],"id":8598,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4349:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4349:95:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8605,"nodeType":"ExpressionStatement","src":"4349:95:35"},{"eventCall":{"arguments":[{"id":8607,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"4468:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":8608,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4475:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4479:6:35","memberName":"sender","nodeType":"MemberAccess","src":"4475:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8606,"name":"NewAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8427,"src":"4459:8:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":8610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4459:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8611,"nodeType":"EmitStatement","src":"4454:32:35"},{"expression":{"id":8615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8612,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"4496:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8613,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4504:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4508:6:35","memberName":"sender","nodeType":"MemberAccess","src":"4504:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4496:18:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8616,"nodeType":"ExpressionStatement","src":"4496:18:35"},{"expression":{"id":8622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8617,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"4524:12:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":8620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4547: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":8619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8618,"name":"address","nodeType":"ElementaryTypeName","src":"4539:7:35","typeDescriptions":{}}},"id":8621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4524:25:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8623,"nodeType":"ExpressionStatement","src":"4524:25:35"}]},"documentation":{"id":8595,"nodeType":"StructuredDocumentation","src":"4131:173:35","text":" @notice Method for accepting a proposed admin\n @custom:access Sender must be pending admin\n @custom:event Emit NewAdmin with old and new admin"},"functionSelector":"0e18b681","id":8625,"implemented":true,"kind":"function","modifiers":[],"name":"acceptAdmin","nameLocation":"4318:11:35","nodeType":"FunctionDefinition","parameters":{"id":8596,"nodeType":"ParameterList","parameters":[],"src":"4329:2:35"},"returnParameters":{"id":8597,"nodeType":"ParameterList","parameters":[],"src":"4339:0:35"},"scope":8932,"src":"4309:247:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8659,"nodeType":"Block","src":"4948:298:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8632,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4979:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4983:6:35","memberName":"sender","nodeType":"MemberAccess","src":"4979:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":8636,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5001:4:35","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockV8_$8932","typeString":"contract TimelockV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockV8_$8932","typeString":"contract TimelockV8"}],"id":8635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4993:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8634,"name":"address","nodeType":"ElementaryTypeName","src":"4993:7:35","typeDescriptions":{}}},"id":8637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4979:27:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8639,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5010:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5014:6:35","memberName":"sender","nodeType":"MemberAccess","src":"5010:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8641,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"5024:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5010:19:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4979:50:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c206d75737420636f6d652066726f6d2054696d656c6f636b2e","id":8644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5043:58:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815","typeString":"literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\""},"value":"Timelock::setPendingAdmin: Call must come from Timelock."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815","typeString":"literal_string \"Timelock::setPendingAdmin: Call must come from Timelock.\""}],"id":8631,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4958:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4958:153:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8646,"nodeType":"ExpressionStatement","src":"4958:153:35"},{"expression":{"arguments":[{"id":8648,"name":"pendingAdmin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"5142:13:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8647,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"5121:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5121:35:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8650,"nodeType":"ExpressionStatement","src":"5121:35:35"},{"expression":{"id":8653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8651,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"5166:12:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8652,"name":"pendingAdmin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"5181:13:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5166:28:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8654,"nodeType":"ExpressionStatement","src":"5166:28:35"},{"eventCall":{"arguments":[{"id":8656,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"5226:12:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8655,"name":"NewPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8432,"src":"5210:15:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5210:29:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8658,"nodeType":"EmitStatement","src":"5205:34:35"}]},"documentation":{"id":8626,"nodeType":"StructuredDocumentation","src":"4562:326:35","text":" @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\n @param pendingAdmin_ Address of the proposed admin\n @custom:access Sender must be Timelock contract itself or admin\n @custom:event Emit NewPendingAdmin with new pending admin"},"functionSelector":"4dd18bf5","id":8660,"implemented":true,"kind":"function","modifiers":[],"name":"setPendingAdmin","nameLocation":"4902:15:35","nodeType":"FunctionDefinition","parameters":{"id":8629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8628,"mutability":"mutable","name":"pendingAdmin_","nameLocation":"4926:13:35","nodeType":"VariableDeclaration","scope":8660,"src":"4918:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8627,"name":"address","nodeType":"ElementaryTypeName","src":"4918:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4917:23:35"},"returnParameters":{"id":8630,"nodeType":"ParameterList","parameters":[],"src":"4948:0:35"},"scope":8932,"src":"4893:353:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8732,"nodeType":"Block","src":"5996:601:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8677,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6014:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6018:6:35","memberName":"sender","nodeType":"MemberAccess","src":"6014:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8679,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"6028:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6014:19:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e","id":8681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6035:56:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749","typeString":"literal_string \"Timelock::queueTransaction: Call must come from admin.\""},"value":"Timelock::queueTransaction: Call must come from admin."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749","typeString":"literal_string \"Timelock::queueTransaction: Call must come from admin.\""}],"id":8676,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6006:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6006:86:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8683,"nodeType":"ExpressionStatement","src":"6006:86:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8685,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8671,"src":"6123:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8686,"name":"getBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8931,"src":"6130:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":8687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6130:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8688,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8415,"src":"6152:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6130:27:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6123:34:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374696d6174656420657865637574696f6e20626c6f636b206d75737420736174697366792064656c61792e","id":8691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6171:75:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c","typeString":"literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\""},"value":"Timelock::queueTransaction: Estimated execution block must satisfy delay."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c","typeString":"literal_string \"Timelock::queueTransaction: Estimated execution block must satisfy delay.\""}],"id":8684,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6102:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6102:154:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8693,"nodeType":"ExpressionStatement","src":"6102:154:35"},{"assignments":[8695],"declarations":[{"constant":false,"id":8695,"mutability":"mutable","name":"txHash","nameLocation":"6275:6:35","nodeType":"VariableDeclaration","scope":8732,"src":"6267:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6267:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8706,"initialValue":{"arguments":[{"arguments":[{"id":8699,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8663,"src":"6305:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8700,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8665,"src":"6313:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8701,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8667,"src":"6320:9:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":8702,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8669,"src":"6331:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8703,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8671,"src":"6337:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8697,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6294:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6298:6:35","memberName":"encode","nodeType":"MemberAccess","src":"6294:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6294:47:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8696,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6284:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6284:58:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6267:75:35"},{"expression":{"arguments":[{"id":8711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6360:27:35","subExpression":{"baseExpression":{"id":8708,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"6361:18:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":8710,"indexExpression":{"id":8709,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8695,"src":"6380:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6361:26:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e73616374696f6e20616c7265616479207175657565642e","id":8712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6389:57:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7","typeString":"literal_string \"Timelock::queueTransaction: transaction already queued.\""},"value":"Timelock::queueTransaction: transaction already queued."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7","typeString":"literal_string \"Timelock::queueTransaction: transaction already queued.\""}],"id":8707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6352:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6352:95:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8714,"nodeType":"ExpressionStatement","src":"6352:95:35"},{"expression":{"id":8719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8715,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"6457:18:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":8717,"indexExpression":{"id":8716,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8695,"src":"6476:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6457:26:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6486:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6457:33:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8720,"nodeType":"ExpressionStatement","src":"6457:33:35"},{"eventCall":{"arguments":[{"id":8722,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8695,"src":"6523:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8723,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8663,"src":"6531:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8724,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8665,"src":"6539:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8725,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8667,"src":"6546:9:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":8726,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8669,"src":"6557:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8727,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8671,"src":"6563:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8721,"name":"QueueTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8484,"src":"6506:16:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,string memory,bytes memory,uint256)"}},"id":8728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6506:61:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8729,"nodeType":"EmitStatement","src":"6501:66:35"},{"expression":{"id":8730,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8695,"src":"6584:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8675,"id":8731,"nodeType":"Return","src":"6577:13:35"}]},"documentation":{"id":8661,"nodeType":"StructuredDocumentation","src":"5252:550:35","text":" @notice Called for each action when queuing a proposal\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature Signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @return Hash of the queued transaction\n @custom:access Sender must be admin\n @custom:event Emit QueueTransaction"},"functionSelector":"3a66f901","id":8733,"implemented":true,"kind":"function","modifiers":[],"name":"queueTransaction","nameLocation":"5816:16:35","nodeType":"FunctionDefinition","parameters":{"id":8672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8663,"mutability":"mutable","name":"target","nameLocation":"5850:6:35","nodeType":"VariableDeclaration","scope":8733,"src":"5842:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8662,"name":"address","nodeType":"ElementaryTypeName","src":"5842:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8665,"mutability":"mutable","name":"value","nameLocation":"5874:5:35","nodeType":"VariableDeclaration","scope":8733,"src":"5866:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8664,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8667,"mutability":"mutable","name":"signature","nameLocation":"5905:9:35","nodeType":"VariableDeclaration","scope":8733,"src":"5889:25:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8666,"name":"string","nodeType":"ElementaryTypeName","src":"5889:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8669,"mutability":"mutable","name":"data","nameLocation":"5939:4:35","nodeType":"VariableDeclaration","scope":8733,"src":"5924:19:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8668,"name":"bytes","nodeType":"ElementaryTypeName","src":"5924:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8671,"mutability":"mutable","name":"eta","nameLocation":"5961:3:35","nodeType":"VariableDeclaration","scope":8733,"src":"5953:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8670,"name":"uint256","nodeType":"ElementaryTypeName","src":"5953:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5832:138:35"},"returnParameters":{"id":8675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8733,"src":"5987:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5987:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5986:9:35"},"scope":8932,"src":"5807:790:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8790,"nodeType":"Block","src":"7276:421:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8748,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7294:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7298:6:35","memberName":"sender","nodeType":"MemberAccess","src":"7294:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8750,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"7308:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7294:19:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e","id":8752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7315:57:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d","typeString":"literal_string \"Timelock::cancelTransaction: Call must come from admin.\""},"value":"Timelock::cancelTransaction: Call must come from admin."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d","typeString":"literal_string \"Timelock::cancelTransaction: Call must come from admin.\""}],"id":8747,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7286:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7286:87:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8754,"nodeType":"ExpressionStatement","src":"7286:87:35"},{"assignments":[8756],"declarations":[{"constant":false,"id":8756,"mutability":"mutable","name":"txHash","nameLocation":"7392:6:35","nodeType":"VariableDeclaration","scope":8790,"src":"7384:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7384:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8767,"initialValue":{"arguments":[{"arguments":[{"id":8760,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8736,"src":"7422:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8738,"src":"7430:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8762,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8740,"src":"7437:9:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":8763,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8742,"src":"7448:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8764,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8744,"src":"7454:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7411:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7415:6:35","memberName":"encode","nodeType":"MemberAccess","src":"7411:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:47:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8757,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7401:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7401:58:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7384:75:35"},{"expression":{"arguments":[{"baseExpression":{"id":8769,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"7477:18:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":8771,"indexExpression":{"id":8770,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"7496:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7477:26:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a207472616e73616374696f6e206973206e6f7420717565756564207965742e","id":8772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7505:61:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5","typeString":"literal_string \"Timelock::cancelTransaction: transaction is not queued yet.\""},"value":"Timelock::cancelTransaction: transaction is not queued yet."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5","typeString":"literal_string \"Timelock::cancelTransaction: transaction is not queued yet.\""}],"id":8768,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7469:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:98:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8774,"nodeType":"ExpressionStatement","src":"7469:98:35"},{"expression":{"id":8779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7577:35:35","subExpression":{"components":[{"baseExpression":{"id":8775,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"7585:18:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":8777,"indexExpression":{"id":8776,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"7604:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7585:26:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":8778,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"7584:28:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8780,"nodeType":"ExpressionStatement","src":"7577:35:35"},{"eventCall":{"arguments":[{"id":8782,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"7646:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8783,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8736,"src":"7654:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8784,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8738,"src":"7662:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8785,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8740,"src":"7669:9:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":8786,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8742,"src":"7680:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8787,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8744,"src":"7686:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8781,"name":"CancelTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8454,"src":"7628:17:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,string memory,bytes memory,uint256)"}},"id":8788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7628:62:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8789,"nodeType":"EmitStatement","src":"7623:67:35"}]},"documentation":{"id":8734,"nodeType":"StructuredDocumentation","src":"6603:496:35","text":" @notice Called to cancel a queued transaction\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature Signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @custom:access Sender must be admin\n @custom:event Emit CancelTransaction"},"functionSelector":"591fcdfe","id":8791,"implemented":true,"kind":"function","modifiers":[],"name":"cancelTransaction","nameLocation":"7113:17:35","nodeType":"FunctionDefinition","parameters":{"id":8745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8736,"mutability":"mutable","name":"target","nameLocation":"7148:6:35","nodeType":"VariableDeclaration","scope":8791,"src":"7140:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8735,"name":"address","nodeType":"ElementaryTypeName","src":"7140:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8738,"mutability":"mutable","name":"value","nameLocation":"7172:5:35","nodeType":"VariableDeclaration","scope":8791,"src":"7164:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8737,"name":"uint256","nodeType":"ElementaryTypeName","src":"7164:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8740,"mutability":"mutable","name":"signature","nameLocation":"7203:9:35","nodeType":"VariableDeclaration","scope":8791,"src":"7187:25:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8739,"name":"string","nodeType":"ElementaryTypeName","src":"7187:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8742,"mutability":"mutable","name":"data","nameLocation":"7237:4:35","nodeType":"VariableDeclaration","scope":8791,"src":"7222:19:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8741,"name":"bytes","nodeType":"ElementaryTypeName","src":"7222:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8744,"mutability":"mutable","name":"eta","nameLocation":"7259:3:35","nodeType":"VariableDeclaration","scope":8791,"src":"7251:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8743,"name":"uint256","nodeType":"ElementaryTypeName","src":"7251:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7130:138:35"},"returnParameters":{"id":8746,"nodeType":"ParameterList","parameters":[],"src":"7276:0:35"},"scope":8932,"src":"7104:593:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8920,"nodeType":"Block","src":"8441:1146:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8808,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8459:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8463:6:35","memberName":"sender","nodeType":"MemberAccess","src":"8459:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8810,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"8473:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8459:19:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2043616c6c206d75737420636f6d652066726f6d2061646d696e2e","id":8812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8480:58:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947","typeString":"literal_string \"Timelock::executeTransaction: Call must come from admin.\""},"value":"Timelock::executeTransaction: Call must come from admin."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947","typeString":"literal_string \"Timelock::executeTransaction: Call must come from admin.\""}],"id":8807,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8451:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8451:88:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8814,"nodeType":"ExpressionStatement","src":"8451:88:35"},{"assignments":[8816],"declarations":[{"constant":false,"id":8816,"mutability":"mutable","name":"txHash","nameLocation":"8558:6:35","nodeType":"VariableDeclaration","scope":8920,"src":"8550:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8815,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8550:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8827,"initialValue":{"arguments":[{"arguments":[{"id":8820,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8794,"src":"8588:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8821,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8796,"src":"8596:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8822,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"8603:9:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":8823,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8800,"src":"8614:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8824,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8802,"src":"8620:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8818,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8577:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8581:6:35","memberName":"encode","nodeType":"MemberAccess","src":"8577:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8577:47:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8817,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8567:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8567:58:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8550:75:35"},{"expression":{"arguments":[{"baseExpression":{"id":8829,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"8643:18:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":8831,"indexExpression":{"id":8830,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8816,"src":"8662:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8643:26:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774206265656e207175657565642e","id":8832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8671:63:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650","typeString":"literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\""},"value":"Timelock::executeTransaction: Transaction hasn't been queued."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650","typeString":"literal_string \"Timelock::executeTransaction: Transaction hasn't been queued.\""}],"id":8828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8635:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8635:100:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8834,"nodeType":"ExpressionStatement","src":"8635:100:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8836,"name":"getBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8931,"src":"8753:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":8837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8753:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8838,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8802,"src":"8776:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8753:26:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2e","id":8840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8781:71:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687","typeString":"literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\""},"value":"Timelock::executeTransaction: Transaction hasn't surpassed time lock."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687","typeString":"literal_string \"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\""}],"id":8835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8745:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8745:108:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8842,"nodeType":"ExpressionStatement","src":"8745:108:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8844,"name":"getBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8931,"src":"8871:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":8845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8871:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8846,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8802,"src":"8894:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8847,"name":"GRACE_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"8900:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":8848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8900:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8894:20:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8871:43:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e206973207374616c652e","id":8851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8916:53:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c","typeString":"literal_string \"Timelock::executeTransaction: Transaction is stale.\""},"value":"Timelock::executeTransaction: Transaction is stale."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c","typeString":"literal_string \"Timelock::executeTransaction: Transaction is stale.\""}],"id":8843,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8863:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8863:107:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8853,"nodeType":"ExpressionStatement","src":"8863:107:35"},{"expression":{"id":8858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8981:35:35","subExpression":{"components":[{"baseExpression":{"id":8854,"name":"queuedTransactions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"8989:18:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":8856,"indexExpression":{"id":8855,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8816,"src":"9008:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8989:26:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":8857,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8988:28:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8859,"nodeType":"ExpressionStatement","src":"8981:35:35"},{"assignments":[8861],"declarations":[{"constant":false,"id":8861,"mutability":"mutable","name":"callData","nameLocation":"9040:8:35","nodeType":"VariableDeclaration","scope":8920,"src":"9027:21:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8860,"name":"bytes","nodeType":"ElementaryTypeName","src":"9027:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8862,"nodeType":"VariableDeclarationStatement","src":"9027:21:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":8865,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"9069:9:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":8864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9063:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8863,"name":"bytes","nodeType":"ElementaryTypeName","src":"9063:5:35","typeDescriptions":{}}},"id":8866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9063:16:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":8867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9080:6:35","memberName":"length","nodeType":"MemberAccess","src":"9063:23:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9090:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9063:28:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8891,"nodeType":"Block","src":"9139:95:35","statements":[{"expression":{"id":8889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8875,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8861,"src":"9153:8:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":8883,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"9204:9:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":8882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9198:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8881,"name":"bytes","nodeType":"ElementaryTypeName","src":"9198:5:35","typeDescriptions":{}}},"id":8884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9198:16:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":8880,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9188:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9188:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9181:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":8878,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9181:6:35","typeDescriptions":{}}},"id":8886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9181:35:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":8887,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8800,"src":"9218:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":8876,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9164:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9168:12:35","memberName":"encodePacked","nodeType":"MemberAccess","src":"9164:16:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:59:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9153:70:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8890,"nodeType":"ExpressionStatement","src":"9153:70:35"}]},"id":8892,"nodeType":"IfStatement","src":"9059:175:35","trueBody":{"id":8874,"nodeType":"Block","src":"9093:40:35","statements":[{"expression":{"id":8872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8870,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8861,"src":"9107:8:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8871,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8800,"src":"9118:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"9107:15:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8873,"nodeType":"ExpressionStatement","src":"9107:15:35"}]}},{"assignments":[8894,8896],"declarations":[{"constant":false,"id":8894,"mutability":"mutable","name":"success","nameLocation":"9309:7:35","nodeType":"VariableDeclaration","scope":8920,"src":"9304:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8893,"name":"bool","nodeType":"ElementaryTypeName","src":"9304:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8896,"mutability":"mutable","name":"returnData","nameLocation":"9331:10:35","nodeType":"VariableDeclaration","scope":8920,"src":"9318:23:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8895,"name":"bytes","nodeType":"ElementaryTypeName","src":"9318:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8903,"initialValue":{"arguments":[{"id":8901,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8861,"src":"9373:8:35","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":8897,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8794,"src":"9345:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9352:4:35","memberName":"call","nodeType":"MemberAccess","src":"9345:11:35","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":8900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":8899,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8796,"src":"9365:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"9345:27:35","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":8902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:37:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"9303:79:35"},{"expression":{"arguments":[{"id":8905,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8894,"src":"9400:7:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472616e73616374696f6e20657865637574696f6e2072657665727465642e","id":8906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9409:63:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9","typeString":"literal_string \"Timelock::executeTransaction: Transaction execution reverted.\""},"value":"Timelock::executeTransaction: Transaction execution reverted."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9","typeString":"literal_string \"Timelock::executeTransaction: Transaction execution reverted.\""}],"id":8904,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9392:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:81:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8908,"nodeType":"ExpressionStatement","src":"9392:81:35"},{"eventCall":{"arguments":[{"id":8910,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8816,"src":"9508:6:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8911,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8794,"src":"9516:6:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8912,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8796,"src":"9524:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8913,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"9531:9:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":8914,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8800,"src":"9542:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":8915,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8802,"src":"9548:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8909,"name":"ExecuteTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8469,"src":"9489:18:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,string memory,bytes memory,uint256)"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9489:63:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8917,"nodeType":"EmitStatement","src":"9484:68:35"},{"expression":{"id":8918,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8896,"src":"9570:10:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8806,"id":8919,"nodeType":"Return","src":"9563:17:35"}]},"documentation":{"id":8792,"nodeType":"StructuredDocumentation","src":"7703:537:35","text":" @notice Called to execute a queued transaction\n @param target Address of the contract with the method to be called\n @param value Native token amount sent with the transaction\n @param signature Signature of the function to be called\n @param data Arguments to be passed to the function when called\n @param eta Timestamp after which the transaction can be executed\n @return Result of function call\n @custom:access Sender must be admin\n @custom:event Emit ExecuteTransaction"},"functionSelector":"0825f38f","id":8921,"implemented":true,"kind":"function","modifiers":[],"name":"executeTransaction","nameLocation":"8254:18:35","nodeType":"FunctionDefinition","parameters":{"id":8803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8794,"mutability":"mutable","name":"target","nameLocation":"8290:6:35","nodeType":"VariableDeclaration","scope":8921,"src":"8282:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8793,"name":"address","nodeType":"ElementaryTypeName","src":"8282:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8796,"mutability":"mutable","name":"value","nameLocation":"8314:5:35","nodeType":"VariableDeclaration","scope":8921,"src":"8306:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8795,"name":"uint256","nodeType":"ElementaryTypeName","src":"8306:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8798,"mutability":"mutable","name":"signature","nameLocation":"8345:9:35","nodeType":"VariableDeclaration","scope":8921,"src":"8329:25:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8797,"name":"string","nodeType":"ElementaryTypeName","src":"8329:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8800,"mutability":"mutable","name":"data","nameLocation":"8379:4:35","nodeType":"VariableDeclaration","scope":8921,"src":"8364:19:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8799,"name":"bytes","nodeType":"ElementaryTypeName","src":"8364:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8802,"mutability":"mutable","name":"eta","nameLocation":"8401:3:35","nodeType":"VariableDeclaration","scope":8921,"src":"8393:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8801,"name":"uint256","nodeType":"ElementaryTypeName","src":"8393:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8272:138:35"},"returnParameters":{"id":8806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8921,"src":"8427:12:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8804,"name":"bytes","nodeType":"ElementaryTypeName","src":"8427:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8426:14:35"},"scope":8932,"src":"8245:1342:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8930,"nodeType":"Block","src":"9764:101:35","statements":[{"expression":{"expression":{"id":8927,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9843:5:35","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9849:9:35","memberName":"timestamp","nodeType":"MemberAccess","src":"9843:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8926,"id":8929,"nodeType":"Return","src":"9836:22:35"}]},"documentation":{"id":8922,"nodeType":"StructuredDocumentation","src":"9593:105:35","text":" @notice Returns the current block timestamp\n @return The current block timestamp"},"id":8931,"implemented":true,"kind":"function","modifiers":[],"name":"getBlockTimestamp","nameLocation":"9712:17:35","nodeType":"FunctionDefinition","parameters":{"id":8923,"nodeType":"ParameterList","parameters":[],"src":"9729:2:35"},"returnParameters":{"id":8926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8931,"src":"9755:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8924,"name":"uint256","nodeType":"ElementaryTypeName","src":"9755:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9754:9:35"},"scope":8932,"src":"9703:162:35","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":8933,"src":"429:9438:35","usedErrors":[5445],"usedEvents":[8427,8432,8439,8454,8469,8484]}],"src":"41:9827:35"},"id":35},"contracts/Utils/ACMCommandsAggregator.sol":{"ast":{"absolutePath":"contracts/Utils/ACMCommandsAggregator.sol","exportedSymbols":{"ACMCommandsAggregator":[9219],"IAccessControlManagerV8":[8389],"ensureNonzeroAddress":[5466]},"id":9220,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8934,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:36"},{"absolutePath":"contracts/Governance/IAccessControlManagerV8.sol","file":"../Governance/IAccessControlManagerV8.sol","id":8936,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9220,"sourceUnit":8390,"src":"66:84:36","symbolAliases":[{"foreign":{"id":8935,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8389,"src":"75:23:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":8938,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9220,"sourceUnit":5482,"src":"151:98:36","symbolAliases":[{"foreign":{"id":8937,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"160:20:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ACMCommandsAggregator","contractDependencies":[],"contractKind":"contract","documentation":{"id":8939,"nodeType":"StructuredDocumentation","src":"251:183:36","text":" @title ACMCommandsAggregator\n @author Venus\n @notice This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go."},"fullyImplemented":true,"id":9219,"linearizedBaseContracts":[9219],"name":"ACMCommandsAggregator","nameLocation":"444:21:36","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ACMCommandsAggregator.Permission","id":8946,"members":[{"constant":false,"id":8941,"mutability":"mutable","name":"contractAddress","nameLocation":"639:15:36","nodeType":"VariableDeclaration","scope":8946,"src":"631:23:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8940,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8943,"mutability":"mutable","name":"functionSig","nameLocation":"732:11:36","nodeType":"VariableDeclaration","scope":8946,"src":"725:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":8942,"name":"string","nodeType":"ElementaryTypeName","src":"725:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8945,"mutability":"mutable","name":"account","nameLocation":"826:7:36","nodeType":"VariableDeclaration","scope":8946,"src":"818:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8944,"name":"address","nodeType":"ElementaryTypeName","src":"818:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Permission","nameLocation":"544:10:36","nodeType":"StructDefinition","scope":9219,"src":"537:303:36","visibility":"public"},{"constant":false,"documentation":{"id":8947,"nodeType":"StructuredDocumentation","src":"846:58:36","text":" @notice Access control manager contract"},"functionSelector":"f9b80da1","id":8950,"mutability":"immutable","name":"ACM","nameLocation":"950:3:36","nodeType":"VariableDeclaration","scope":9219,"src":"909:44:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":8949,"nodeType":"UserDefinedTypeName","pathNode":{"id":8948,"name":"IAccessControlManagerV8","nameLocations":["909:23:36"],"nodeType":"IdentifierPath","referencedDeclaration":8389,"src":"909:23:36"},"referencedDeclaration":8389,"src":"909:23:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"visibility":"public"},{"constant":false,"functionSelector":"514aab87","id":8955,"mutability":"mutable","name":"grantPermissions","nameLocation":"1059:16:36","nodeType":"VariableDeclaration","scope":9219,"src":"1037:38:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission[][]"},"typeName":{"baseType":{"baseType":{"id":8952,"nodeType":"UserDefinedTypeName","pathNode":{"id":8951,"name":"Permission","nameLocations":["1037:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":8946,"src":"1037:10:36"},"referencedDeclaration":8946,"src":"1037:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"id":8953,"nodeType":"ArrayTypeName","src":"1037:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"}},"id":8954,"nodeType":"ArrayTypeName","src":"1037:14:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[][]"}},"visibility":"public"},{"constant":false,"functionSelector":"ff1575e1","id":8960,"mutability":"mutable","name":"revokePermissions","nameLocation":"1182:17:36","nodeType":"VariableDeclaration","scope":9219,"src":"1160:39:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission[][]"},"typeName":{"baseType":{"baseType":{"id":8957,"nodeType":"UserDefinedTypeName","pathNode":{"id":8956,"name":"Permission","nameLocations":["1160:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":8946,"src":"1160:10:36"},"referencedDeclaration":8946,"src":"1160:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"id":8958,"nodeType":"ArrayTypeName","src":"1160:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"}},"id":8959,"nodeType":"ArrayTypeName","src":"1160:14:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[][]"}},"visibility":"public"},{"anonymous":false,"eventSelector":"f8ca6ea7cc31be8572501c37ef5e9e8298be717fb881e0b1ca785aecc4d25e9f","id":8964,"name":"GrantPermissionsAdded","nameLocation":"1289:21:36","nodeType":"EventDefinition","parameters":{"id":8963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8962,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"1319:5:36","nodeType":"VariableDeclaration","scope":8964,"src":"1311:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8961,"name":"uint256","nodeType":"ElementaryTypeName","src":"1311:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1310:15:36"},"src":"1283:43:36"},{"anonymous":false,"eventSelector":"75922591bf2cec980645dc4a32bb7d5e8da9a15fda86dacf06f8402cecd1478f","id":8968,"name":"RevokePermissionsAdded","nameLocation":"1416:22:36","nodeType":"EventDefinition","parameters":{"id":8967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8966,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"1447:5:36","nodeType":"VariableDeclaration","scope":8968,"src":"1439:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8965,"name":"uint256","nodeType":"ElementaryTypeName","src":"1439:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1438:15:36"},"src":"1410:44:36"},{"anonymous":false,"eventSelector":"01a805f459381af632ecab72ec192c3f9a4c72d26be089026ffd6636d82de988","id":8972,"name":"GrantPermissionsExecuted","nameLocation":"1546:24:36","nodeType":"EventDefinition","parameters":{"id":8971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8970,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"1579:5:36","nodeType":"VariableDeclaration","scope":8972,"src":"1571:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8969,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1570:15:36"},"src":"1540:46:36"},{"anonymous":false,"eventSelector":"1382323d6618527d8b03daa05db815f0490966e8b80679fe5ad3d868f84e1a71","id":8976,"name":"RevokePermissionsExecuted","nameLocation":"1679:25:36","nodeType":"EventDefinition","parameters":{"id":8975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8974,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"1713:5:36","nodeType":"VariableDeclaration","scope":8976,"src":"1705:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1704:15:36"},"src":"1673:47:36"},{"errorSelector":"4494013c","id":8978,"name":"EmptyPermissions","nameLocation":"1808:16:36","nodeType":"ErrorDefinition","parameters":{"id":8977,"nodeType":"ParameterList","parameters":[],"src":"1824:2:36"},"src":"1802:25:36"},{"body":{"id":8995,"nodeType":"Block","src":"2008:72:36","statements":[{"expression":{"arguments":[{"arguments":[{"id":8987,"name":"_acm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"2047:4:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}],"id":8986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2039:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8985,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:36","typeDescriptions":{}}},"id":8988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:13:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8984,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"2018:20:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:35:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8990,"nodeType":"ExpressionStatement","src":"2018:35:36"},{"expression":{"id":8993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8991,"name":"ACM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8950,"src":"2063:3:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8992,"name":"_acm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"2069:4:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"src":"2063:10:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"id":8994,"nodeType":"ExpressionStatement","src":"2063:10:36"}]},"id":8996,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8981,"mutability":"mutable","name":"_acm","nameLocation":"2002:4:36","nodeType":"VariableDeclaration","scope":8996,"src":"1978:28:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":8980,"nodeType":"UserDefinedTypeName","pathNode":{"id":8979,"name":"IAccessControlManagerV8","nameLocations":["1978:23:36"],"nodeType":"IdentifierPath","referencedDeclaration":8389,"src":"1978:23:36"},"referencedDeclaration":8389,"src":"1978:23:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"}],"src":"1977:30:36"},"returnParameters":{"id":8983,"nodeType":"ParameterList","parameters":[],"src":"2008:0:36"},"scope":9219,"src":"1966:114:36","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9058,"nodeType":"Block","src":"2325:461:36","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9003,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9000,"src":"2339:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2352:6:36","memberName":"length","nodeType":"MemberAccess","src":"2339:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2339:24:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9011,"nodeType":"IfStatement","src":"2335:80:36","trueBody":{"id":9010,"nodeType":"Block","src":"2365:50:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9007,"name":"EmptyPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8978,"src":"2386:16:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:18:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9009,"nodeType":"RevertStatement","src":"2379:25:36"}]}},{"assignments":[9013],"declarations":[{"constant":false,"id":9013,"mutability":"mutable","name":"index","nameLocation":"2433:5:36","nodeType":"VariableDeclaration","scope":9058,"src":"2425:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2425:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9016,"initialValue":{"expression":{"id":9014,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"2441:16:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2458:6:36","memberName":"length","nodeType":"MemberAccess","src":"2441:23:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2425:39:36"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9017,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"2474:16:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2491:4:36","memberName":"push","nodeType":"MemberAccess","src":"2474:21:36","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage_ptr_$returns$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$attached_to$_t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage_ptr_$","typeString":"function (struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage pointer) returns (struct ACMCommandsAggregator.Permission storage ref[] storage ref)"}},"id":9020,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":9021,"nodeType":"ExpressionStatement","src":"2474:23:36"},{"body":{"id":9052,"nodeType":"Block","src":"2554:182:36","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":9037,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9000,"src":"2625:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9039,"indexExpression":{"id":9038,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9023,"src":"2638:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2625:15:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:15:36","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":8941,"src":"2625:31:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":9041,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9000,"src":"2658:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9043,"indexExpression":{"id":9042,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9023,"src":"2671:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2658:15:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2674:11:36","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":8943,"src":"2658:27:36","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"baseExpression":{"id":9045,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9000,"src":"2687:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9047,"indexExpression":{"id":9046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9023,"src":"2700:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2687:15:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2703:7:36","memberName":"account","nodeType":"MemberAccess","referencedDeclaration":8945,"src":"2687:23:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9036,"name":"Permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8946,"src":"2614:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Permission_$8946_storage_ptr_$","typeString":"type(struct ACMCommandsAggregator.Permission storage pointer)"}},"id":9049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2614:97:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}],"expression":{"baseExpression":{"id":9032,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"2568:16:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9034,"indexExpression":{"id":9033,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9013,"src":"2585:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2568:23:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":9035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2592:4:36","memberName":"push","nodeType":"MemberAccess","src":"2568:28:36","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_ptr_$_t_struct$_Permission_$8946_storage_$returns$__$attached_to$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_ptr_$","typeString":"function (struct ACMCommandsAggregator.Permission storage ref[] storage pointer,struct ACMCommandsAggregator.Permission storage ref)"}},"id":9050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2568:157:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9051,"nodeType":"ExpressionStatement","src":"2568:157:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9025,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9023,"src":"2524:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":9026,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9000,"src":"2528:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2541:6:36","memberName":"length","nodeType":"MemberAccess","src":"2528:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2524:23:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9053,"initializationExpression":{"assignments":[9023],"declarations":[{"constant":false,"id":9023,"mutability":"mutable","name":"i","nameLocation":"2521:1:36","nodeType":"VariableDeclaration","scope":9053,"src":"2513:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9022,"name":"uint256","nodeType":"ElementaryTypeName","src":"2513:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9024,"nodeType":"VariableDeclarationStatement","src":"2513:9:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2549:3:36","subExpression":{"id":9029,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9023,"src":"2551:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9031,"nodeType":"ExpressionStatement","src":"2549:3:36"},"nodeType":"ForStatement","src":"2508:228:36"},{"eventCall":{"arguments":[{"id":9055,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9013,"src":"2773:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9054,"name":"GrantPermissionsAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8964,"src":"2751:21:36","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":9056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9057,"nodeType":"EmitStatement","src":"2746:33:36"}]},"functionSelector":"9d6c76b8","id":9059,"implemented":true,"kind":"function","modifiers":[],"name":"addGrantPermissions","nameLocation":"2262:19:36","nodeType":"FunctionDefinition","parameters":{"id":9001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9000,"mutability":"mutable","name":"_permissions","nameLocation":"2302:12:36","nodeType":"VariableDeclaration","scope":9059,"src":"2282:32:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"},"typeName":{"baseType":{"id":8998,"nodeType":"UserDefinedTypeName","pathNode":{"id":8997,"name":"Permission","nameLocations":["2282:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":8946,"src":"2282:10:36"},"referencedDeclaration":8946,"src":"2282:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"id":8999,"nodeType":"ArrayTypeName","src":"2282:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"}},"visibility":"internal"}],"src":"2281:34:36"},"returnParameters":{"id":9002,"nodeType":"ParameterList","parameters":[],"src":"2325:0:36"},"scope":9219,"src":"2253:533:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9121,"nodeType":"Block","src":"3034:465:36","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9066,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9063,"src":"3048:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3061:6:36","memberName":"length","nodeType":"MemberAccess","src":"3048:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3071:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3048:24:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9074,"nodeType":"IfStatement","src":"3044:80:36","trueBody":{"id":9073,"nodeType":"Block","src":"3074:50:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9070,"name":"EmptyPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8978,"src":"3095:16:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3095:18:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9072,"nodeType":"RevertStatement","src":"3088:25:36"}]}},{"assignments":[9076],"declarations":[{"constant":false,"id":9076,"mutability":"mutable","name":"index","nameLocation":"3142:5:36","nodeType":"VariableDeclaration","scope":9121,"src":"3134:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3134:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9079,"initialValue":{"expression":{"id":9077,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8960,"src":"3150:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3168:6:36","memberName":"length","nodeType":"MemberAccess","src":"3150:24:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3134:40:36"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9080,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8960,"src":"3184:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:4:36","memberName":"push","nodeType":"MemberAccess","src":"3184:22:36","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage_ptr_$returns$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$attached_to$_t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage_ptr_$","typeString":"function (struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage pointer) returns (struct ACMCommandsAggregator.Permission storage ref[] storage ref)"}},"id":9083,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3184:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":9084,"nodeType":"ExpressionStatement","src":"3184:24:36"},{"body":{"id":9115,"nodeType":"Block","src":"3265:183:36","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":9100,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9063,"src":"3337:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9102,"indexExpression":{"id":9101,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"3350:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3337:15:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3353:15:36","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":8941,"src":"3337:31:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":9104,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9063,"src":"3370:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9106,"indexExpression":{"id":9105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"3383:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3370:15:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3386:11:36","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":8943,"src":"3370:27:36","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"baseExpression":{"id":9108,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9063,"src":"3399:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9110,"indexExpression":{"id":9109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"3412:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3399:15:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3415:7:36","memberName":"account","nodeType":"MemberAccess","referencedDeclaration":8945,"src":"3399:23:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9099,"name":"Permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8946,"src":"3326:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Permission_$8946_storage_ptr_$","typeString":"type(struct ACMCommandsAggregator.Permission storage pointer)"}},"id":9112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3326:97:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}],"expression":{"baseExpression":{"id":9095,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8960,"src":"3279:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9097,"indexExpression":{"id":9096,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9076,"src":"3297:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3279:24:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":9098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3304:4:36","memberName":"push","nodeType":"MemberAccess","src":"3279:29:36","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_ptr_$_t_struct$_Permission_$8946_storage_$returns$__$attached_to$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_ptr_$","typeString":"function (struct ACMCommandsAggregator.Permission storage ref[] storage pointer,struct ACMCommandsAggregator.Permission storage ref)"}},"id":9113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3279:158:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9114,"nodeType":"ExpressionStatement","src":"3279:158:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9088,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"3235:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":9089,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9063,"src":"3239:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory[] memory"}},"id":9090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:6:36","memberName":"length","nodeType":"MemberAccess","src":"3239:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3235:23:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9116,"initializationExpression":{"assignments":[9086],"declarations":[{"constant":false,"id":9086,"mutability":"mutable","name":"i","nameLocation":"3232:1:36","nodeType":"VariableDeclaration","scope":9116,"src":"3224:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9085,"name":"uint256","nodeType":"ElementaryTypeName","src":"3224:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9087,"nodeType":"VariableDeclarationStatement","src":"3224:9:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3260:3:36","subExpression":{"id":9092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"3262:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9094,"nodeType":"ExpressionStatement","src":"3260:3:36"},"nodeType":"ForStatement","src":"3219:229:36"},{"eventCall":{"arguments":[{"id":9118,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9076,"src":"3486:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9117,"name":"RevokePermissionsAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8968,"src":"3463:22:36","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":9119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3463:29:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9120,"nodeType":"EmitStatement","src":"3458:34:36"}]},"functionSelector":"5666a5ea","id":9122,"implemented":true,"kind":"function","modifiers":[],"name":"addRevokePermissions","nameLocation":"2970:20:36","nodeType":"FunctionDefinition","parameters":{"id":9064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9063,"mutability":"mutable","name":"_permissions","nameLocation":"3011:12:36","nodeType":"VariableDeclaration","scope":9122,"src":"2991:32:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"},"typeName":{"baseType":{"id":9061,"nodeType":"UserDefinedTypeName","pathNode":{"id":9060,"name":"Permission","nameLocations":["2991:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":8946,"src":"2991:10:36"},"referencedDeclaration":8946,"src":"2991:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"id":9062,"nodeType":"ArrayTypeName","src":"2991:12:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission[]"}},"visibility":"internal"}],"src":"2990:34:36"},"returnParameters":{"id":9065,"nodeType":"ParameterList","parameters":[],"src":"3034:0:36"},"scope":9219,"src":"2961:538:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9169,"nodeType":"Block","src":"3739:343:36","statements":[{"assignments":[9128],"declarations":[{"constant":false,"id":9128,"mutability":"mutable","name":"length","nameLocation":"3757:6:36","nodeType":"VariableDeclaration","scope":9169,"src":"3749:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9127,"name":"uint256","nodeType":"ElementaryTypeName","src":"3749:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9133,"initialValue":{"expression":{"baseExpression":{"id":9129,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"3766:16:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9131,"indexExpression":{"id":9130,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9124,"src":"3783:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3766:23:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":9132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3790:6:36","memberName":"length","nodeType":"MemberAccess","src":"3766:30:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3749:47:36"},{"body":{"id":9163,"nodeType":"Block","src":"3839:190:36","statements":[{"assignments":[9145],"declarations":[{"constant":false,"id":9145,"mutability":"mutable","name":"permission","nameLocation":"3871:10:36","nodeType":"VariableDeclaration","scope":9163,"src":"3853:28:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission"},"typeName":{"id":9144,"nodeType":"UserDefinedTypeName","pathNode":{"id":9143,"name":"Permission","nameLocations":["3853:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":8946,"src":"3853:10:36"},"referencedDeclaration":8946,"src":"3853:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"visibility":"internal"}],"id":9151,"initialValue":{"baseExpression":{"baseExpression":{"id":9146,"name":"grantPermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"3884:16:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9148,"indexExpression":{"id":9147,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9124,"src":"3901:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3884:23:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":9150,"indexExpression":{"id":9149,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9135,"src":"3908:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3884:26:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3853:57:36"},{"expression":{"arguments":[{"expression":{"id":9155,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"3947:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3958:15:36","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":8941,"src":"3947:26:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9157,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"3975:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3986:11:36","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":8943,"src":"3975:22:36","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":9159,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9145,"src":"3999:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4010:7:36","memberName":"account","nodeType":"MemberAccess","referencedDeclaration":8945,"src":"3999:18:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9152,"name":"ACM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8950,"src":"3924:3:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"id":9154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3928:18:36","memberName":"giveCallPermission","nodeType":"MemberAccess","referencedDeclaration":8359,"src":"3924:22:36","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,string memory,address) external"}},"id":9161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3924:94:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9162,"nodeType":"ExpressionStatement","src":"3924:94:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9137,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9135,"src":"3822:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9138,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"3826:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3822:10:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9164,"initializationExpression":{"assignments":[9135],"declarations":[{"constant":false,"id":9135,"mutability":"mutable","name":"i","nameLocation":"3819:1:36","nodeType":"VariableDeclaration","scope":9164,"src":"3811:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9134,"name":"uint256","nodeType":"ElementaryTypeName","src":"3811:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9136,"nodeType":"VariableDeclarationStatement","src":"3811:9:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3834:3:36","subExpression":{"id":9140,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9135,"src":"3836:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9142,"nodeType":"ExpressionStatement","src":"3834:3:36"},"nodeType":"ForStatement","src":"3806:223:36"},{"eventCall":{"arguments":[{"id":9166,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9124,"src":"4069:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9165,"name":"GrantPermissionsExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8972,"src":"4044:24:36","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9168,"nodeType":"EmitStatement","src":"4039:36:36"}]},"functionSelector":"de46a235","id":9170,"implemented":true,"kind":"function","modifiers":[],"name":"executeGrantPermissions","nameLocation":"3691:23:36","nodeType":"FunctionDefinition","parameters":{"id":9125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9124,"mutability":"mutable","name":"index","nameLocation":"3723:5:36","nodeType":"VariableDeclaration","scope":9170,"src":"3715:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9123,"name":"uint256","nodeType":"ElementaryTypeName","src":"3715:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3714:15:36"},"returnParameters":{"id":9126,"nodeType":"ParameterList","parameters":[],"src":"3739:0:36"},"scope":9219,"src":"3682:400:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9217,"nodeType":"Block","src":"4325:348:36","statements":[{"assignments":[9176],"declarations":[{"constant":false,"id":9176,"mutability":"mutable","name":"length","nameLocation":"4343:6:36","nodeType":"VariableDeclaration","scope":9217,"src":"4335:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9175,"name":"uint256","nodeType":"ElementaryTypeName","src":"4335:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9181,"initialValue":{"expression":{"baseExpression":{"id":9177,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8960,"src":"4352:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9179,"indexExpression":{"id":9178,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"4370:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4352:24:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4377:6:36","memberName":"length","nodeType":"MemberAccess","src":"4352:31:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4335:48:36"},{"body":{"id":9211,"nodeType":"Block","src":"4426:193:36","statements":[{"assignments":[9193],"declarations":[{"constant":false,"id":9193,"mutability":"mutable","name":"permission","nameLocation":"4458:10:36","nodeType":"VariableDeclaration","scope":9211,"src":"4440:28:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission"},"typeName":{"id":9192,"nodeType":"UserDefinedTypeName","pathNode":{"id":9191,"name":"Permission","nameLocations":["4440:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":8946,"src":"4440:10:36"},"referencedDeclaration":8946,"src":"4440:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_storage_ptr","typeString":"struct ACMCommandsAggregator.Permission"}},"visibility":"internal"}],"id":9199,"initialValue":{"baseExpression":{"baseExpression":{"id":9194,"name":"revokePermissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8960,"src":"4471:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_struct$_Permission_$8946_storage_$dyn_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref[] storage ref"}},"id":9196,"indexExpression":{"id":9195,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"4489:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4471:24:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Permission_$8946_storage_$dyn_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref[] storage ref"}},"id":9198,"indexExpression":{"id":9197,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"4496:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4471:27:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_storage","typeString":"struct ACMCommandsAggregator.Permission storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4440:58:36"},{"expression":{"arguments":[{"expression":{"id":9203,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"4537:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4548:15:36","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":8941,"src":"4537:26:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":9205,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"4565:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4576:11:36","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":8943,"src":"4565:22:36","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":9207,"name":"permission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"4589:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Permission_$8946_memory_ptr","typeString":"struct ACMCommandsAggregator.Permission memory"}},"id":9208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4600:7:36","memberName":"account","nodeType":"MemberAccess","referencedDeclaration":8945,"src":"4589:18:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9200,"name":"ACM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8950,"src":"4512:3:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8389","typeString":"contract IAccessControlManagerV8"}},"id":9202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4516:20:36","memberName":"revokeCallPermission","nodeType":"MemberAccess","referencedDeclaration":8368,"src":"4512:24:36","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (address,string memory,address) external"}},"id":9209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4512:96:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9210,"nodeType":"ExpressionStatement","src":"4512:96:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9185,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"4409:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9186,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9176,"src":"4413:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4409:10:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9212,"initializationExpression":{"assignments":[9183],"declarations":[{"constant":false,"id":9183,"mutability":"mutable","name":"i","nameLocation":"4406:1:36","nodeType":"VariableDeclaration","scope":9212,"src":"4398:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9182,"name":"uint256","nodeType":"ElementaryTypeName","src":"4398:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9184,"nodeType":"VariableDeclarationStatement","src":"4398:9:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4421:3:36","subExpression":{"id":9188,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"4423:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9190,"nodeType":"ExpressionStatement","src":"4421:3:36"},"nodeType":"ForStatement","src":"4393:226:36"},{"eventCall":{"arguments":[{"id":9214,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"4660:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9213,"name":"RevokePermissionsExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8976,"src":"4634:25:36","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":9215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4634:32:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9216,"nodeType":"EmitStatement","src":"4629:37:36"}]},"functionSelector":"22473d8c","id":9218,"implemented":true,"kind":"function","modifiers":[],"name":"executeRevokePermissions","nameLocation":"4276:24:36","nodeType":"FunctionDefinition","parameters":{"id":9173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9172,"mutability":"mutable","name":"index","nameLocation":"4309:5:36","nodeType":"VariableDeclaration","scope":9218,"src":"4301:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9171,"name":"uint256","nodeType":"ElementaryTypeName","src":"4301:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4300:15:36"},"returnParameters":{"id":9174,"nodeType":"ParameterList","parameters":[],"src":"4325:0:36"},"scope":9219,"src":"4267:406:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9220,"src":"435:4240:36","usedErrors":[5445,8978],"usedEvents":[8964,8968,8972,8976]}],"src":"41:4635:36"},"id":36},"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":[10459],"Context":[10481],"ERC1967Proxy":[9475],"ERC1967Upgrade":[9793],"IBeacon":[9855],"IERC1822Proxiable":[9422],"Ownable":[9412],"Proxy":[9845],"ProxyAdmin":[10000],"StorageSlot":[10541],"TransparentUpgradeableProxy":[10164]},"id":9223,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":9221,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:37"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","file":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","id":9222,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9223,"sourceUnit":10001,"src":"63:79:37","symbolAliases":[],"unitAlias":""}],"src":"39:104:37"},"id":37},"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":[10459],"ERC1967Proxy":[9475],"ERC1967Upgrade":[9793],"IBeacon":[9855],"IERC1822Proxiable":[9422],"OptimizedTransparentUpgradeableProxy":[10716],"Proxy":[9845],"StorageSlot":[10541]},"id":9226,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":9224,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:38"},{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","file":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","id":9225,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9226,"sourceUnit":10717,"src":"63:80:38","symbolAliases":[],"unitAlias":""}],"src":"39:105:38"},"id":38},"contracts/test/MockAccessTest.sol":{"ast":{"absolutePath":"contracts/test/MockAccessTest.sol","exportedSymbols":{"AccessControlledV8":[8344],"AddressUpgradeable":[3636],"ContextUpgradeable":[3678],"IAccessControl":[4067],"IAccessControlManagerV8":[8389],"ILayerZeroEndpoint":[1357],"ILayerZeroReceiver":[1371],"ILayerZeroUserApplicationConfig":[1402],"Initializable":[3352],"LZEndpointMock":[2945],"LzLib":[1627],"MockAccessTest":[9245],"Ownable2StepUpgradeable":[3051],"OwnableUpgradeable":[3183]},"id":9246,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":9227,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:39"},{"absolutePath":"contracts/Governance/AccessControlledV8.sol","file":"../Governance/AccessControlledV8.sol","id":9228,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9246,"sourceUnit":8345,"src":"66:46:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol","id":9229,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9246,"sourceUnit":2946,"src":"113:83:39","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9230,"name":"AccessControlledV8","nameLocations":["225:18:39"],"nodeType":"IdentifierPath","referencedDeclaration":8344,"src":"225:18:39"},"id":9231,"nodeType":"InheritanceSpecifier","src":"225:18:39"}],"canonicalName":"MockAccessTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":9245,"linearizedBaseContracts":[9245,8344,3051,3183,3678,3352],"name":"MockAccessTest","nameLocation":"207:14:39","nodeType":"ContractDefinition","nodes":[{"body":{"id":9243,"nodeType":"Block","src":"412:72:39","statements":[{"expression":{"arguments":[{"id":9240,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9234,"src":"456:20:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9239,"name":"__AccessControlled_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8252,"src":"422:33:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"422:55:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9242,"nodeType":"ExpressionStatement","src":"422:55:39"}]},"documentation":{"id":9232,"nodeType":"StructuredDocumentation","src":"250:86:39","text":" @param accessControlManager Access control manager contract address"},"functionSelector":"c4d66de8","id":9244,"implemented":true,"kind":"function","modifiers":[{"id":9237,"kind":"modifierInvocation","modifierName":{"id":9236,"name":"initializer","nameLocations":["400:11:39"],"nodeType":"IdentifierPath","referencedDeclaration":3254,"src":"400:11:39"},"nodeType":"ModifierInvocation","src":"400:11:39"}],"name":"initialize","nameLocation":"350:10:39","nodeType":"FunctionDefinition","parameters":{"id":9235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9234,"mutability":"mutable","name":"accessControlManager","nameLocation":"369:20:39","nodeType":"VariableDeclaration","scope":9244,"src":"361:28:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9233,"name":"address","nodeType":"ElementaryTypeName","src":"361:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"360:30:39"},"returnParameters":{"id":9238,"nodeType":"ParameterList","parameters":[],"src":"412:0:39"},"scope":9245,"src":"341:143:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9246,"src":"198:288:39","usedErrors":[8225],"usedEvents":[2977,3068,3198,8216]}],"src":"41:446:39"},"id":39},"contracts/test/MockXVSVault.sol":{"ast":{"absolutePath":"contracts/test/MockXVSVault.sol","exportedSymbols":{"MockXVSVault":[9260]},"id":9261,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":9247,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:40"},{"abstract":false,"baseContracts":[],"canonicalName":"MockXVSVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":9260,"linearizedBaseContracts":[9260],"name":"MockXVSVault","nameLocation":"75:12:40","nodeType":"ContractDefinition","nodes":[{"body":{"id":9258,"nodeType":"Block","src":"227:69:40","statements":[{"expression":{"hexValue":"30","id":9256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":9255,"id":9257,"nodeType":"Return","src":"281:8:40"}]},"functionSelector":"782d6fe1","id":9259,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorVotes","nameLocation":"144:13:40","nodeType":"FunctionDefinition","parameters":{"id":9252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9249,"mutability":"mutable","name":"account","nameLocation":"166:7:40","nodeType":"VariableDeclaration","scope":9259,"src":"158:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9248,"name":"address","nodeType":"ElementaryTypeName","src":"158:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9251,"mutability":"mutable","name":"blockNumber","nameLocation":"183:11:40","nodeType":"VariableDeclaration","scope":9259,"src":"175:19:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9250,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"157:38:40"},"returnParameters":{"id":9255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9259,"src":"219:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9253,"name":"uint96","nodeType":"ElementaryTypeName","src":"219:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"218:8:40"},"scope":9260,"src":"135:161:40","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":9261,"src":"66:232:40","usedErrors":[],"usedEvents":[]}],"src":"41:258:40"},"id":40},"contracts/test/TestTimelockV8.sol":{"ast":{"absolutePath":"contracts/test/TestTimelockV8.sol","exportedSymbols":{"TestTimelockV8":[9306],"TimelockV8":[8932]},"id":9307,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":9262,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:41"},{"absolutePath":"contracts/Governance/TimelockV8.sol","file":"../Governance/TimelockV8.sol","id":9264,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9307,"sourceUnit":8933,"src":"65:58:41","symbolAliases":[{"foreign":{"id":9263,"name":"TimelockV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8932,"src":"74:10:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9265,"name":"TimelockV8","nameLocations":["152:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8932,"src":"152:10:41"},"id":9266,"nodeType":"InheritanceSpecifier","src":"152:10:41"}],"canonicalName":"TestTimelockV8","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":9306,"linearizedBaseContracts":[9306,8932],"name":"TestTimelockV8","nameLocation":"134:14:41","nodeType":"ContractDefinition","nodes":[{"body":{"id":9277,"nodeType":"Block","src":"247:2:41","statements":[]},"id":9278,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":9273,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"231:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9274,"name":"delay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9270,"src":"239:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9275,"kind":"baseConstructorSpecifier","modifierName":{"id":9272,"name":"TimelockV8","nameLocations":["220:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8932,"src":"220:10:41"},"nodeType":"ModifierInvocation","src":"220:26:41"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9268,"mutability":"mutable","name":"admin_","nameLocation":"189:6:41","nodeType":"VariableDeclaration","scope":9278,"src":"181:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9267,"name":"address","nodeType":"ElementaryTypeName","src":"181:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9270,"mutability":"mutable","name":"delay_","nameLocation":"205:6:41","nodeType":"VariableDeclaration","scope":9278,"src":"197:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9269,"name":"uint256","nodeType":"ElementaryTypeName","src":"197:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"180:32:41"},"returnParameters":{"id":9276,"nodeType":"ParameterList","parameters":[],"src":"247:0:41"},"scope":9306,"src":"169:80:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8576],"body":{"id":9286,"nodeType":"Block","src":"318:31:41","statements":[{"expression":{"hexValue":"31","id":9284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:7:41","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"1"},"functionReturnParameters":9283,"id":9285,"nodeType":"Return","src":"328:14:41"}]},"functionSelector":"c1a287e2","id":9287,"implemented":true,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nameLocation":"264:12:41","nodeType":"FunctionDefinition","overrides":{"id":9280,"nodeType":"OverrideSpecifier","overrides":[],"src":"291:8:41"},"parameters":{"id":9279,"nodeType":"ParameterList","parameters":[],"src":"276:2:41"},"returnParameters":{"id":9283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9287,"src":"309:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9281,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"308:9:41"},"scope":9306,"src":"255:94:41","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[8585],"body":{"id":9295,"nodeType":"Block","src":"419:25:41","statements":[{"expression":{"hexValue":"31","id":9293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"436:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":9292,"id":9294,"nodeType":"Return","src":"429:8:41"}]},"functionSelector":"b1b43ae5","id":9296,"implemented":true,"kind":"function","modifiers":[],"name":"MINIMUM_DELAY","nameLocation":"364:13:41","nodeType":"FunctionDefinition","overrides":{"id":9289,"nodeType":"OverrideSpecifier","overrides":[],"src":"392:8:41"},"parameters":{"id":9288,"nodeType":"ParameterList","parameters":[],"src":"377:2:41"},"returnParameters":{"id":9292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9296,"src":"410:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9290,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:9:41"},"scope":9306,"src":"355:89:41","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[8594],"body":{"id":9304,"nodeType":"Block","src":"514:31:41","statements":[{"expression":{"hexValue":"31","id":9302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"531:7:41","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"1"},"functionReturnParameters":9301,"id":9303,"nodeType":"Return","src":"524:14:41"}]},"functionSelector":"7d645fab","id":9305,"implemented":true,"kind":"function","modifiers":[],"name":"MAXIMUM_DELAY","nameLocation":"459:13:41","nodeType":"FunctionDefinition","overrides":{"id":9298,"nodeType":"OverrideSpecifier","overrides":[],"src":"487:8:41"},"parameters":{"id":9297,"nodeType":"ParameterList","parameters":[],"src":"472:2:41"},"returnParameters":{"id":9301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9305,"src":"505:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9299,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"504:9:41"},"scope":9306,"src":"450:95:41","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":9307,"src":"125:422:41","usedErrors":[5445],"usedEvents":[8427,8432,8439,8454,8469,8484]}],"src":"41:507:41"},"id":41},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","exportedSymbols":{"Context":[10481],"Ownable":[9412]},"id":9413,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9308,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:42"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","file":"../utils/Context.sol","id":9309,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9413,"sourceUnit":10482,"src":"112:30:42","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":9311,"name":"Context","nameLocations":["668:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":10481,"src":"668:7:42"},"id":9312,"nodeType":"InheritanceSpecifier","src":"668:7:42"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":9310,"nodeType":"StructuredDocumentation","src":"144:494:42","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":9412,"linearizedBaseContracts":[9412,10481],"name":"Ownable","nameLocation":"657:7:42","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":9314,"mutability":"mutable","name":"_owner","nameLocation":"698:6:42","nodeType":"VariableDeclaration","scope":9412,"src":"682:22:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9313,"name":"address","nodeType":"ElementaryTypeName","src":"682:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":9320,"name":"OwnershipTransferred","nameLocation":"717:20:42","nodeType":"EventDefinition","parameters":{"id":9319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9316,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"754:13:42","nodeType":"VariableDeclaration","scope":9320,"src":"738:29:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9315,"name":"address","nodeType":"ElementaryTypeName","src":"738:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9318,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"785:8:42","nodeType":"VariableDeclaration","scope":9320,"src":"769:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9317,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:57:42"},"src":"711:84:42"},{"body":{"id":9330,"nodeType":"Block","src":"932:49:42","statements":[{"expression":{"arguments":[{"id":9327,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9323,"src":"961:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9326,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9411,"src":"942:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"942:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9329,"nodeType":"ExpressionStatement","src":"942:32:42"}]},"documentation":{"id":9321,"nodeType":"StructuredDocumentation","src":"801:91:42","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":9331,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9323,"mutability":"mutable","name":"initialOwner","nameLocation":"918:12:42","nodeType":"VariableDeclaration","scope":9331,"src":"910:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9322,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"909:22:42"},"returnParameters":{"id":9325,"nodeType":"ParameterList","parameters":[],"src":"932:0:42"},"scope":9412,"src":"897:84:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9339,"nodeType":"Block","src":"1112:30:42","statements":[{"expression":{"id":9337,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9314,"src":"1129:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9336,"id":9338,"nodeType":"Return","src":"1122:13:42"}]},"documentation":{"id":9332,"nodeType":"StructuredDocumentation","src":"987:65:42","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":9340,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1066:5:42","nodeType":"FunctionDefinition","parameters":{"id":9333,"nodeType":"ParameterList","parameters":[],"src":"1071:2:42"},"returnParameters":{"id":9336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9340,"src":"1103:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9334,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1102:9:42"},"scope":9412,"src":"1057:85:42","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9353,"nodeType":"Block","src":"1251:96:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9344,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9340,"src":"1269:5:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:7:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9346,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10471,"src":"1280:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1280:12:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1269:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":9349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1294:34:42","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":9343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1261:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:68:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9351,"nodeType":"ExpressionStatement","src":"1261:68:42"},{"id":9352,"nodeType":"PlaceholderStatement","src":"1339:1:42"}]},"documentation":{"id":9341,"nodeType":"StructuredDocumentation","src":"1148:77:42","text":" @dev Throws if called by any account other than the owner."},"id":9354,"name":"onlyOwner","nameLocation":"1239:9:42","nodeType":"ModifierDefinition","parameters":{"id":9342,"nodeType":"ParameterList","parameters":[],"src":"1248:2:42"},"src":"1230:117:42","virtual":false,"visibility":"internal"},{"body":{"id":9367,"nodeType":"Block","src":"1743:47:42","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1780: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":9362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1772:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9361,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:42","typeDescriptions":{}}},"id":9364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1772:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9360,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9411,"src":"1753:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:30:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9366,"nodeType":"ExpressionStatement","src":"1753:30:42"}]},"documentation":{"id":9355,"nodeType":"StructuredDocumentation","src":"1353:331:42","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":9368,"implemented":true,"kind":"function","modifiers":[{"id":9358,"kind":"modifierInvocation","modifierName":{"id":9357,"name":"onlyOwner","nameLocations":["1733:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":9354,"src":"1733:9:42"},"nodeType":"ModifierInvocation","src":"1733:9:42"}],"name":"renounceOwnership","nameLocation":"1698:17:42","nodeType":"FunctionDefinition","parameters":{"id":9356,"nodeType":"ParameterList","parameters":[],"src":"1715:2:42"},"returnParameters":{"id":9359,"nodeType":"ParameterList","parameters":[],"src":"1743:0:42"},"scope":9412,"src":"1689:101:42","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9390,"nodeType":"Block","src":"2009:128:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9377,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9371,"src":"2027:8:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2047: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":9379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2039:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9378,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:42","typeDescriptions":{}}},"id":9381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2027:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":9383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2051:40:42","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":9376,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2019:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:73:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9385,"nodeType":"ExpressionStatement","src":"2019:73:42"},{"expression":{"arguments":[{"id":9387,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9371,"src":"2121:8:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9386,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9411,"src":"2102:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2102:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9389,"nodeType":"ExpressionStatement","src":"2102:28:42"}]},"documentation":{"id":9369,"nodeType":"StructuredDocumentation","src":"1796:138:42","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":9391,"implemented":true,"kind":"function","modifiers":[{"id":9374,"kind":"modifierInvocation","modifierName":{"id":9373,"name":"onlyOwner","nameLocations":["1999:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":9354,"src":"1999:9:42"},"nodeType":"ModifierInvocation","src":"1999:9:42"}],"name":"transferOwnership","nameLocation":"1948:17:42","nodeType":"FunctionDefinition","parameters":{"id":9372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9371,"mutability":"mutable","name":"newOwner","nameLocation":"1974:8:42","nodeType":"VariableDeclaration","scope":9391,"src":"1966:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9370,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1965:18:42"},"returnParameters":{"id":9375,"nodeType":"ParameterList","parameters":[],"src":"2009:0:42"},"scope":9412,"src":"1939:198:42","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9410,"nodeType":"Block","src":"2354:124:42","statements":[{"assignments":[9398],"declarations":[{"constant":false,"id":9398,"mutability":"mutable","name":"oldOwner","nameLocation":"2372:8:42","nodeType":"VariableDeclaration","scope":9410,"src":"2364:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9397,"name":"address","nodeType":"ElementaryTypeName","src":"2364:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9400,"initialValue":{"id":9399,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9314,"src":"2383:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2364:25:42"},{"expression":{"id":9403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9401,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9314,"src":"2399:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9402,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9394,"src":"2408:8:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2399:17:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9404,"nodeType":"ExpressionStatement","src":"2399:17:42"},{"eventCall":{"arguments":[{"id":9406,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9398,"src":"2452:8:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9407,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9394,"src":"2462:8:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9405,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9320,"src":"2431:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":9408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:40:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9409,"nodeType":"EmitStatement","src":"2426:45:42"}]},"documentation":{"id":9392,"nodeType":"StructuredDocumentation","src":"2143:143:42","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":9411,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2300:18:42","nodeType":"FunctionDefinition","parameters":{"id":9395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9394,"mutability":"mutable","name":"newOwner","nameLocation":"2327:8:42","nodeType":"VariableDeclaration","scope":9411,"src":"2319:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9393,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2318:18:42"},"returnParameters":{"id":9396,"nodeType":"ParameterList","parameters":[],"src":"2354:0:42"},"scope":9412,"src":"2291:187:42","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":9413,"src":"639:1841:42","usedErrors":[],"usedEvents":[9320]}],"src":"87:2394:42"},"id":42},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[9422]},"id":9423,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9414,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:43"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1822Proxiable","contractDependencies":[],"contractKind":"interface","documentation":{"id":9415,"nodeType":"StructuredDocumentation","src":"143:203:43","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":9422,"linearizedBaseContracts":[9422],"name":"IERC1822Proxiable","nameLocation":"357:17:43","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9416,"nodeType":"StructuredDocumentation","src":"381:438:43","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":9421,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"833:13:43","nodeType":"FunctionDefinition","parameters":{"id":9417,"nodeType":"ParameterList","parameters":[],"src":"846:2:43"},"returnParameters":{"id":9420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9421,"src":"872:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"872:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"871:9:43"},"scope":9422,"src":"824:57:43","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":9423,"src":"347:536:43","usedErrors":[],"usedEvents":[]}],"src":"118:766:43"},"id":43},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[10459],"ERC1967Proxy":[9475],"ERC1967Upgrade":[9793],"IBeacon":[9855],"IERC1822Proxiable":[9422],"Proxy":[9845],"StorageSlot":[10541]},"id":9476,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9424,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:44"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","file":"../Proxy.sol","id":9425,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9476,"sourceUnit":9846,"src":"124:22:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","id":9426,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9476,"sourceUnit":9794,"src":"147:30:44","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9428,"name":"Proxy","nameLocations":["577:5:44"],"nodeType":"IdentifierPath","referencedDeclaration":9845,"src":"577:5:44"},"id":9429,"nodeType":"InheritanceSpecifier","src":"577:5:44"},{"baseName":{"id":9430,"name":"ERC1967Upgrade","nameLocations":["584:14:44"],"nodeType":"IdentifierPath","referencedDeclaration":9793,"src":"584:14:44"},"id":9431,"nodeType":"InheritanceSpecifier","src":"584:14:44"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":9427,"nodeType":"StructuredDocumentation","src":"179:372:44","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":9475,"linearizedBaseContracts":[9475,9793,9845],"name":"ERC1967Proxy","nameLocation":"561:12:44","nodeType":"ContractDefinition","nodes":[{"body":{"id":9461,"nodeType":"Block","src":"1001:161:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":9440,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"1018:20:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e696d706c656d656e746174696f6e","id":9446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1068:30:44","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":9445,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1058:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:41:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1050:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9443,"name":"uint256","nodeType":"ElementaryTypeName","src":"1050:7:44","typeDescriptions":{}}},"id":9448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:50:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1050:54:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1042:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1042:7:44","typeDescriptions":{}}},"id":9451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1042:63:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1018:87:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9439,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1011:6:44","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:95:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9454,"nodeType":"ExpressionStatement","src":"1011:95:44"},{"expression":{"arguments":[{"id":9456,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9434,"src":"1134:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9457,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9436,"src":"1142:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":9458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1149:5:44","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":9455,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9576,"src":"1116:17:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":9459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9460,"nodeType":"ExpressionStatement","src":"1116:39:44"}]},"documentation":{"id":9432,"nodeType":"StructuredDocumentation","src":"605:335:44","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":9462,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9434,"mutability":"mutable","name":"_logic","nameLocation":"965:6:44","nodeType":"VariableDeclaration","scope":9462,"src":"957:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9433,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9436,"mutability":"mutable","name":"_data","nameLocation":"986:5:44","nodeType":"VariableDeclaration","scope":9462,"src":"973:18:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9435,"name":"bytes","nodeType":"ElementaryTypeName","src":"973:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"956:36:44"},"returnParameters":{"id":9438,"nodeType":"ParameterList","parameters":[],"src":"1001:0:44"},"scope":9475,"src":"945:217:44","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[9810],"body":{"id":9473,"nodeType":"Block","src":"1321:59:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9469,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9793,"src":"1338:14:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$9793_$","typeString":"type(contract ERC1967Upgrade)"}},"id":9470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1353:18:44","memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":9507,"src":"1338:33:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9468,"id":9472,"nodeType":"Return","src":"1331:42:44"}]},"documentation":{"id":9463,"nodeType":"StructuredDocumentation","src":"1168:67:44","text":" @dev Returns the current implementation address."},"id":9474,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1249:15:44","nodeType":"FunctionDefinition","overrides":{"id":9465,"nodeType":"OverrideSpecifier","overrides":[],"src":"1289:8:44"},"parameters":{"id":9464,"nodeType":"ParameterList","parameters":[],"src":"1264:2:44"},"returnParameters":{"id":9468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9467,"mutability":"mutable","name":"impl","nameLocation":"1315:4:44","nodeType":"VariableDeclaration","scope":9474,"src":"1307:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9466,"name":"address","nodeType":"ElementaryTypeName","src":"1307:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1306:14:44"},"scope":9475,"src":"1240:140:44","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":9476,"src":"552:830:44","usedErrors":[],"usedEvents":[9494,9640,9705]}],"src":"99:1284:44"},"id":44},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","exportedSymbols":{"Address":[10459],"ERC1967Upgrade":[9793],"IBeacon":[9855],"IERC1822Proxiable":[9422],"StorageSlot":[10541]},"id":9794,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9477,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"121:23:45"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":9478,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9794,"sourceUnit":9856,"src":"146:31:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","id":9479,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9794,"sourceUnit":9423,"src":"178:45:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","file":"../../utils/Address.sol","id":9480,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9794,"sourceUnit":10460,"src":"224:33:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":9481,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9794,"sourceUnit":10542,"src":"258:37:45","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1967Upgrade","contractDependencies":[],"contractKind":"contract","documentation":{"id":9482,"nodeType":"StructuredDocumentation","src":"297:236:45","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":9793,"linearizedBaseContracts":[9793],"name":"ERC1967Upgrade","nameLocation":"552:14:45","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9485,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"677:14:45","nodeType":"VariableDeclaration","scope":9793,"src":"652:108:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9483,"name":"bytes32","nodeType":"ElementaryTypeName","src":"652:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":9484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"694:66:45","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":9486,"nodeType":"StructuredDocumentation","src":"767:214:45","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":9489,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1012:20:45","nodeType":"VariableDeclaration","scope":9793,"src":"986:115:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"986:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":9488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:66:45","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":9490,"nodeType":"StructuredDocumentation","src":"1108:68:45","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":9494,"name":"Upgraded","nameLocation":"1187:8:45","nodeType":"EventDefinition","parameters":{"id":9493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9492,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1212:14:45","nodeType":"VariableDeclaration","scope":9494,"src":"1196:30:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9491,"name":"address","nodeType":"ElementaryTypeName","src":"1196:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1195:32:45"},"src":"1181:47:45"},{"body":{"id":9506,"nodeType":"Block","src":"1368:78:45","statements":[{"expression":{"expression":{"arguments":[{"id":9502,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"1412:20:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9500,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"1385:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10541_$","typeString":"type(library StorageSlot)"}},"id":9501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1397:14:45","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10507,"src":"1385:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10487_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:48:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10487_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1434:5:45","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10486,"src":"1385:54:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9499,"id":9505,"nodeType":"Return","src":"1378:61:45"}]},"documentation":{"id":9495,"nodeType":"StructuredDocumentation","src":"1234:67:45","text":" @dev Returns the current implementation address."},"id":9507,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1315:18:45","nodeType":"FunctionDefinition","parameters":{"id":9496,"nodeType":"ParameterList","parameters":[],"src":"1333:2:45"},"returnParameters":{"id":9499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9507,"src":"1359:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9497,"name":"address","nodeType":"ElementaryTypeName","src":"1359:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1358:9:45"},"scope":9793,"src":"1306:140:45","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9530,"nodeType":"Block","src":"1600:196:45","statements":[{"expression":{"arguments":[{"arguments":[{"id":9516,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9510,"src":"1637:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9514,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"1618:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10459_$","typeString":"type(library Address)"}},"id":9515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:10:45","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10182,"src":"1618:18:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1618:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":9518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1657:47:45","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":9513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1610:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:95:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9520,"nodeType":"ExpressionStatement","src":"1610:95:45"},{"expression":{"id":9528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":9524,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"1742:20:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9521,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"1715:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10541_$","typeString":"type(library StorageSlot)"}},"id":9523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1727:14:45","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10507,"src":"1715:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10487_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:48:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10487_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1764:5:45","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10486,"src":"1715:54:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9527,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9510,"src":"1772:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1715:74:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9529,"nodeType":"ExpressionStatement","src":"1715:74:45"}]},"documentation":{"id":9508,"nodeType":"StructuredDocumentation","src":"1452:80:45","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":9531,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1546:18:45","nodeType":"FunctionDefinition","parameters":{"id":9511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9510,"mutability":"mutable","name":"newImplementation","nameLocation":"1573:17:45","nodeType":"VariableDeclaration","scope":9531,"src":"1565:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9509,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1564:27:45"},"returnParameters":{"id":9512,"nodeType":"ParameterList","parameters":[],"src":"1600:0:45"},"scope":9793,"src":"1537:259:45","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":9545,"nodeType":"Block","src":"1958:96:45","statements":[{"expression":{"arguments":[{"id":9538,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9534,"src":"1987:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9537,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9531,"src":"1968:18:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9540,"nodeType":"ExpressionStatement","src":"1968:37:45"},{"eventCall":{"arguments":[{"id":9542,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9534,"src":"2029:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9541,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"2020:8:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9544,"nodeType":"EmitStatement","src":"2015:32:45"}]},"documentation":{"id":9532,"nodeType":"StructuredDocumentation","src":"1802:95:45","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":9546,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1911:10:45","nodeType":"FunctionDefinition","parameters":{"id":9535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9534,"mutability":"mutable","name":"newImplementation","nameLocation":"1930:17:45","nodeType":"VariableDeclaration","scope":9546,"src":"1922:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9533,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1921:27:45"},"returnParameters":{"id":9536,"nodeType":"ParameterList","parameters":[],"src":"1958:0:45"},"scope":9793,"src":"1902:152:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9575,"nodeType":"Block","src":"2316:167:45","statements":[{"expression":{"arguments":[{"id":9557,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"2337:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9556,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9546,"src":"2326:10:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:29:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9559,"nodeType":"ExpressionStatement","src":"2326:29:45"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9560,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9551,"src":"2369:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:6:45","memberName":"length","nodeType":"MemberAccess","src":"2369:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2369:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":9564,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9553,"src":"2388:9:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2369:28:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9574,"nodeType":"IfStatement","src":"2365:112:45","trueBody":{"id":9573,"nodeType":"Block","src":"2399:78:45","statements":[{"expression":{"arguments":[{"id":9569,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"2442:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9570,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9551,"src":"2461:4:45","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":9566,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"2413:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10459_$","typeString":"type(library Address)"}},"id":9568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2421:20:45","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":10392,"src":"2413:28:45","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":9571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2413:53:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9572,"nodeType":"ExpressionStatement","src":"2413:53:45"}]}}]},"documentation":{"id":9547,"nodeType":"StructuredDocumentation","src":"2060:123:45","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":9576,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2197:17:45","nodeType":"FunctionDefinition","parameters":{"id":9554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9549,"mutability":"mutable","name":"newImplementation","nameLocation":"2232:17:45","nodeType":"VariableDeclaration","scope":9576,"src":"2224:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9548,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9551,"mutability":"mutable","name":"data","nameLocation":"2272:4:45","nodeType":"VariableDeclaration","scope":9576,"src":"2259:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9550,"name":"bytes","nodeType":"ElementaryTypeName","src":"2259:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9553,"mutability":"mutable","name":"forceCall","nameLocation":"2291:9:45","nodeType":"VariableDeclaration","scope":9576,"src":"2286:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9552,"name":"bool","nodeType":"ElementaryTypeName","src":"2286:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2214:92:45"},"returnParameters":{"id":9555,"nodeType":"ParameterList","parameters":[],"src":"2316:0:45"},"scope":9793,"src":"2188:295:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9628,"nodeType":"Block","src":"2787:820:45","statements":[{"condition":{"expression":{"arguments":[{"id":9588,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9485,"src":"3128:14:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9586,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"3101:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10541_$","typeString":"type(library StorageSlot)"}},"id":9587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3113:14:45","memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":10518,"src":"3101:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$10490_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":9589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3101:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10490_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":9590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3144:5:45","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10489,"src":"3101:48:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9626,"nodeType":"Block","src":"3219:382:45","statements":[{"clauses":[{"block":{"id":9611,"nodeType":"Block","src":"3313:115:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9605,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"3339:4:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9606,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"3347:20:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3339:28:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":9608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3369:43:45","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":9604,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3331:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3331:82:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9610,"nodeType":"ExpressionStatement","src":"3331:82:45"}]},"errorName":"","id":9612,"nodeType":"TryCatchClause","parameters":{"id":9603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9602,"mutability":"mutable","name":"slot","nameLocation":"3307:4:45","nodeType":"VariableDeclaration","scope":9612,"src":"3299:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3299:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3298:14:45"},"src":"3290:138:45"},{"block":{"id":9617,"nodeType":"Block","src":"3435:89:45","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":9614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3460:48:45","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":9613,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3453:6:45","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:56:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9616,"nodeType":"ExpressionStatement","src":"3453:56:45"}]},"errorName":"","id":9618,"nodeType":"TryCatchClause","src":"3429:95:45"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":9597,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9579,"src":"3255:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9596,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9422,"src":"3237:17:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$9422_$","typeString":"type(contract IERC1822Proxiable)"}},"id":9598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$9422","typeString":"contract IERC1822Proxiable"}},"id":9599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3274:13:45","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":9421,"src":"3237:50:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":9600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:52:45","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9619,"nodeType":"TryStatement","src":"3233:291:45"},{"expression":{"arguments":[{"id":9621,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9579,"src":"3555:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9622,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9581,"src":"3574:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9623,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9583,"src":"3580:9:45","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":9620,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9576,"src":"3537:17:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":9624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:53:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9625,"nodeType":"ExpressionStatement","src":"3537:53:45"}]},"id":9627,"nodeType":"IfStatement","src":"3097:504:45","trueBody":{"id":9595,"nodeType":"Block","src":"3151:62:45","statements":[{"expression":{"arguments":[{"id":9592,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9579,"src":"3184:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9591,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9531,"src":"3165:18:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9594,"nodeType":"ExpressionStatement","src":"3165:37:45"}]}}]},"documentation":{"id":9577,"nodeType":"StructuredDocumentation","src":"2489:161:45","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":9629,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2664:21:45","nodeType":"FunctionDefinition","parameters":{"id":9584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9579,"mutability":"mutable","name":"newImplementation","nameLocation":"2703:17:45","nodeType":"VariableDeclaration","scope":9629,"src":"2695:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9578,"name":"address","nodeType":"ElementaryTypeName","src":"2695:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9581,"mutability":"mutable","name":"data","nameLocation":"2743:4:45","nodeType":"VariableDeclaration","scope":9629,"src":"2730:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9580,"name":"bytes","nodeType":"ElementaryTypeName","src":"2730:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9583,"mutability":"mutable","name":"forceCall","nameLocation":"2762:9:45","nodeType":"VariableDeclaration","scope":9629,"src":"2757:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9582,"name":"bool","nodeType":"ElementaryTypeName","src":"2757:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2685:92:45"},"returnParameters":{"id":9585,"nodeType":"ParameterList","parameters":[],"src":"2787:0:45"},"scope":9793,"src":"2655:952:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":9630,"nodeType":"StructuredDocumentation","src":"3613:189:45","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":9633,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3833:11:45","nodeType":"VariableDeclaration","scope":9793,"src":"3807:106:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3807:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":9632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3847:66:45","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":9634,"nodeType":"StructuredDocumentation","src":"3920:67:45","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":9640,"name":"AdminChanged","nameLocation":"3998:12:45","nodeType":"EventDefinition","parameters":{"id":9639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9636,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"4019:13:45","nodeType":"VariableDeclaration","scope":9640,"src":"4011:21:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9635,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9638,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"4042:8:45","nodeType":"VariableDeclaration","scope":9640,"src":"4034:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9637,"name":"address","nodeType":"ElementaryTypeName","src":"4034:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:41:45"},"src":"3992:60:45"},{"body":{"id":9652,"nodeType":"Block","src":"4174:69:45","statements":[{"expression":{"expression":{"arguments":[{"id":9648,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9633,"src":"4218:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9646,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"4191:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10541_$","typeString":"type(library StorageSlot)"}},"id":9647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4203:14:45","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10507,"src":"4191:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10487_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:39:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10487_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4231:5:45","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10486,"src":"4191:45:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9645,"id":9651,"nodeType":"Return","src":"4184:52:45"}]},"documentation":{"id":9641,"nodeType":"StructuredDocumentation","src":"4058:50:45","text":" @dev Returns the current admin."},"id":9653,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4122:9:45","nodeType":"FunctionDefinition","parameters":{"id":9642,"nodeType":"ParameterList","parameters":[],"src":"4131:2:45"},"returnParameters":{"id":9645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9653,"src":"4165:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9643,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4164:9:45"},"scope":9793,"src":"4113:130:45","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9678,"nodeType":"Block","src":"4370:156:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9660,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"4388:8:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4408: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":9662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4400:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9661,"name":"address","nodeType":"ElementaryTypeName","src":"4400:7:45","typeDescriptions":{}}},"id":9664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4400:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4388:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":9666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4412:40:45","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":9659,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4380:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:73:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9668,"nodeType":"ExpressionStatement","src":"4380:73:45"},{"expression":{"id":9676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":9672,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9633,"src":"4490:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9669,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"4463:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10541_$","typeString":"type(library StorageSlot)"}},"id":9671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4475:14:45","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10507,"src":"4463:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10487_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:39:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10487_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4503:5:45","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10486,"src":"4463:45:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9675,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"4511:8:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4463:56:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9677,"nodeType":"ExpressionStatement","src":"4463:56:45"}]},"documentation":{"id":9654,"nodeType":"StructuredDocumentation","src":"4249:71:45","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":9679,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4334:9:45","nodeType":"FunctionDefinition","parameters":{"id":9657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9656,"mutability":"mutable","name":"newAdmin","nameLocation":"4352:8:45","nodeType":"VariableDeclaration","scope":9679,"src":"4344:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9655,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4343:18:45"},"returnParameters":{"id":9658,"nodeType":"ParameterList","parameters":[],"src":"4370:0:45"},"scope":9793,"src":"4325:201:45","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":9695,"nodeType":"Block","src":"4686:86:45","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9686,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9653,"src":"4714:9:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9688,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9682,"src":"4727:8:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9685,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"4701:12:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":9689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4701:35:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9690,"nodeType":"EmitStatement","src":"4696:40:45"},{"expression":{"arguments":[{"id":9692,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9682,"src":"4756:8:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9691,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9679,"src":"4746:9:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4746:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9694,"nodeType":"ExpressionStatement","src":"4746:19:45"}]},"documentation":{"id":9680,"nodeType":"StructuredDocumentation","src":"4532:100:45","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":9696,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4646:12:45","nodeType":"FunctionDefinition","parameters":{"id":9683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9682,"mutability":"mutable","name":"newAdmin","nameLocation":"4667:8:45","nodeType":"VariableDeclaration","scope":9696,"src":"4659:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9681,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4658:18:45"},"returnParameters":{"id":9684,"nodeType":"ParameterList","parameters":[],"src":"4686:0:45"},"scope":9793,"src":"4637:135:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":9697,"nodeType":"StructuredDocumentation","src":"4778:232:45","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":9700,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5041:12:45","nodeType":"VariableDeclaration","scope":9793,"src":"5015:107:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5015:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":9699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5056:66:45","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":9701,"nodeType":"StructuredDocumentation","src":"5129:60:45","text":" @dev Emitted when the beacon is upgraded."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":9705,"name":"BeaconUpgraded","nameLocation":"5200:14:45","nodeType":"EventDefinition","parameters":{"id":9704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9703,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"5231:6:45","nodeType":"VariableDeclaration","scope":9705,"src":"5215:22:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9702,"name":"address","nodeType":"ElementaryTypeName","src":"5215:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5214:24:45"},"src":"5194:45:45"},{"body":{"id":9717,"nodeType":"Block","src":"5355:70:45","statements":[{"expression":{"expression":{"arguments":[{"id":9713,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9700,"src":"5399:12:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9711,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"5372:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10541_$","typeString":"type(library StorageSlot)"}},"id":9712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5384:14:45","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10507,"src":"5372:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10487_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5372:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10487_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5413:5:45","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10486,"src":"5372:46:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9710,"id":9716,"nodeType":"Return","src":"5365:53:45"}]},"documentation":{"id":9706,"nodeType":"StructuredDocumentation","src":"5245:51:45","text":" @dev Returns the current beacon."},"id":9718,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5310:10:45","nodeType":"FunctionDefinition","parameters":{"id":9707,"nodeType":"ParameterList","parameters":[],"src":"5320:2:45"},"returnParameters":{"id":9710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9718,"src":"5346:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9708,"name":"address","nodeType":"ElementaryTypeName","src":"5346:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5345:9:45"},"scope":9793,"src":"5301:124:45","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9753,"nodeType":"Block","src":"5554:290:45","statements":[{"expression":{"arguments":[{"arguments":[{"id":9727,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9721,"src":"5591:9:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9725,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"5572:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10459_$","typeString":"type(library Address)"}},"id":9726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5580:10:45","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10182,"src":"5572:18:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5572:29:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":9729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5603:39:45","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":9724,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5564:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5564:79:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9731,"nodeType":"ExpressionStatement","src":"5564:79:45"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":9736,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9721,"src":"5688:9:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9735,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9855,"src":"5680:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$9855_$","typeString":"type(contract IBeacon)"}},"id":9737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:18:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$9855","typeString":"contract IBeacon"}},"id":9738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5699:14:45","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":9854,"src":"5680:33:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":9739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:35:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9733,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"5661:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10459_$","typeString":"type(library Address)"}},"id":9734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5669:10:45","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10182,"src":"5661:18:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:55:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":9741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5718:50:45","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":9732,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5653:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:116:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9743,"nodeType":"ExpressionStatement","src":"5653:116:45"},{"expression":{"id":9751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":9747,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9700,"src":"5806:12:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9744,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"5779:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10541_$","typeString":"type(library StorageSlot)"}},"id":9746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5791:14:45","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10507,"src":"5779:26:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10487_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":9748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5779:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10487_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":9749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5820:5:45","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10486,"src":"5779:46:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9750,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9721,"src":"5828:9:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5779:58:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9752,"nodeType":"ExpressionStatement","src":"5779:58:45"}]},"documentation":{"id":9719,"nodeType":"StructuredDocumentation","src":"5431:71:45","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":9754,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5516:10:45","nodeType":"FunctionDefinition","parameters":{"id":9722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9721,"mutability":"mutable","name":"newBeacon","nameLocation":"5535:9:45","nodeType":"VariableDeclaration","scope":9754,"src":"5527:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9720,"name":"address","nodeType":"ElementaryTypeName","src":"5527:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5526:19:45"},"returnParameters":{"id":9723,"nodeType":"ParameterList","parameters":[],"src":"5554:0:45"},"scope":9793,"src":"5507:337:45","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":9791,"nodeType":"Block","src":"6273:217:45","statements":[{"expression":{"arguments":[{"id":9765,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"6294:9:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9764,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"6283:10:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9767,"nodeType":"ExpressionStatement","src":"6283:21:45"},{"eventCall":{"arguments":[{"id":9769,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"6334:9:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9768,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"6319:14:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6319:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9771,"nodeType":"EmitStatement","src":"6314:30:45"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9772,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9759,"src":"6358:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6363:6:45","memberName":"length","nodeType":"MemberAccess","src":"6358:11:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6372:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6358:15:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":9776,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9761,"src":"6377:9:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6358:28:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9790,"nodeType":"IfStatement","src":"6354:130:45","trueBody":{"id":9789,"nodeType":"Block","src":"6388:96:45","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":9782,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"6439:9:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9781,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9855,"src":"6431:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$9855_$","typeString":"type(contract IBeacon)"}},"id":9783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:18:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$9855","typeString":"contract IBeacon"}},"id":9784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6450:14:45","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":9854,"src":"6431:33:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":9785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:35:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9786,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9759,"src":"6468:4:45","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":9778,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10459,"src":"6402:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10459_$","typeString":"type(library Address)"}},"id":9780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6410:20:45","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":10392,"src":"6402:28:45","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":9787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6402:71:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9788,"nodeType":"ExpressionStatement","src":"6402:71:45"}]}}]},"documentation":{"id":9755,"nodeType":"StructuredDocumentation","src":"5850:292:45","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":9792,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6156:23:45","nodeType":"FunctionDefinition","parameters":{"id":9762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9757,"mutability":"mutable","name":"newBeacon","nameLocation":"6197:9:45","nodeType":"VariableDeclaration","scope":9792,"src":"6189:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9756,"name":"address","nodeType":"ElementaryTypeName","src":"6189:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9759,"mutability":"mutable","name":"data","nameLocation":"6229:4:45","nodeType":"VariableDeclaration","scope":9792,"src":"6216:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9758,"name":"bytes","nodeType":"ElementaryTypeName","src":"6216:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9761,"mutability":"mutable","name":"forceCall","nameLocation":"6248:9:45","nodeType":"VariableDeclaration","scope":9792,"src":"6243:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9760,"name":"bool","nodeType":"ElementaryTypeName","src":"6243:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6179:84:45"},"returnParameters":{"id":9763,"nodeType":"ParameterList","parameters":[],"src":"6273:0:45"},"scope":9793,"src":"6147:343:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":9794,"src":"534:5958:45","usedErrors":[],"usedEvents":[9494,9640,9705]}],"src":"121:6372:45"},"id":45},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","exportedSymbols":{"Proxy":[9845]},"id":9846,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9795,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:46"},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":9796,"nodeType":"StructuredDocumentation","src":"129:598:46","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":9845,"linearizedBaseContracts":[9845],"name":"Proxy","nameLocation":"746:5:46","nodeType":"ContractDefinition","nodes":[{"body":{"id":9803,"nodeType":"Block","src":"1013:835:46","statements":[{"AST":{"nativeSrc":"1032:810:46","nodeType":"YulBlock","src":"1032:810:46","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:46","nodeType":"YulLiteral","src":"1285:1:46","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:46","nodeType":"YulLiteral","src":"1288:1:46","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1291:12:46","nodeType":"YulIdentifier","src":"1291:12:46"},"nativeSrc":"1291:14:46","nodeType":"YulFunctionCall","src":"1291:14:46"}],"functionName":{"name":"calldatacopy","nativeSrc":"1272:12:46","nodeType":"YulIdentifier","src":"1272:12:46"},"nativeSrc":"1272:34:46","nodeType":"YulFunctionCall","src":"1272:34:46"},"nativeSrc":"1272:34:46","nodeType":"YulExpressionStatement","src":"1272:34:46"},{"nativeSrc":"1433:74:46","nodeType":"YulVariableDeclaration","src":"1433:74:46","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1460:3:46","nodeType":"YulIdentifier","src":"1460:3:46"},"nativeSrc":"1460:5:46","nodeType":"YulFunctionCall","src":"1460:5:46"},{"name":"implementation","nativeSrc":"1467:14:46","nodeType":"YulIdentifier","src":"1467:14:46"},{"kind":"number","nativeSrc":"1483:1:46","nodeType":"YulLiteral","src":"1483:1:46","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1486:12:46","nodeType":"YulIdentifier","src":"1486:12:46"},"nativeSrc":"1486:14:46","nodeType":"YulFunctionCall","src":"1486:14:46"},{"kind":"number","nativeSrc":"1502:1:46","nodeType":"YulLiteral","src":"1502:1:46","type":"","value":"0"},{"kind":"number","nativeSrc":"1505:1:46","nodeType":"YulLiteral","src":"1505:1:46","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1447:12:46","nodeType":"YulIdentifier","src":"1447:12:46"},"nativeSrc":"1447:60:46","nodeType":"YulFunctionCall","src":"1447:60:46"},"variables":[{"name":"result","nativeSrc":"1437:6:46","nodeType":"YulTypedName","src":"1437:6:46","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1575:1:46","nodeType":"YulLiteral","src":"1575:1:46","type":"","value":"0"},{"kind":"number","nativeSrc":"1578:1:46","nodeType":"YulLiteral","src":"1578:1:46","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1581:14:46","nodeType":"YulIdentifier","src":"1581:14:46"},"nativeSrc":"1581:16:46","nodeType":"YulFunctionCall","src":"1581:16:46"}],"functionName":{"name":"returndatacopy","nativeSrc":"1560:14:46","nodeType":"YulIdentifier","src":"1560:14:46"},"nativeSrc":"1560:38:46","nodeType":"YulFunctionCall","src":"1560:38:46"},"nativeSrc":"1560:38:46","nodeType":"YulExpressionStatement","src":"1560:38:46"},{"cases":[{"body":{"nativeSrc":"1693:59:46","nodeType":"YulBlock","src":"1693:59:46","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1718:1:46","nodeType":"YulLiteral","src":"1718:1:46","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1721:14:46","nodeType":"YulIdentifier","src":"1721:14:46"},"nativeSrc":"1721:16:46","nodeType":"YulFunctionCall","src":"1721:16:46"}],"functionName":{"name":"revert","nativeSrc":"1711:6:46","nodeType":"YulIdentifier","src":"1711:6:46"},"nativeSrc":"1711:27:46","nodeType":"YulFunctionCall","src":"1711:27:46"},"nativeSrc":"1711:27:46","nodeType":"YulExpressionStatement","src":"1711:27:46"}]},"nativeSrc":"1686:66:46","nodeType":"YulCase","src":"1686:66:46","value":{"kind":"number","nativeSrc":"1691:1:46","nodeType":"YulLiteral","src":"1691:1:46","type":"","value":"0"}},{"body":{"nativeSrc":"1773:59:46","nodeType":"YulBlock","src":"1773:59:46","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1798:1:46","nodeType":"YulLiteral","src":"1798:1:46","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1801:14:46","nodeType":"YulIdentifier","src":"1801:14:46"},"nativeSrc":"1801:16:46","nodeType":"YulFunctionCall","src":"1801:16:46"}],"functionName":{"name":"return","nativeSrc":"1791:6:46","nodeType":"YulIdentifier","src":"1791:6:46"},"nativeSrc":"1791:27:46","nodeType":"YulFunctionCall","src":"1791:27:46"},"nativeSrc":"1791:27:46","nodeType":"YulExpressionStatement","src":"1791:27:46"}]},"nativeSrc":"1765:67:46","nodeType":"YulCase","src":"1765:67:46","value":"default"}],"expression":{"name":"result","nativeSrc":"1619:6:46","nodeType":"YulIdentifier","src":"1619:6:46"},"nativeSrc":"1612:220:46","nodeType":"YulSwitch","src":"1612:220:46"}]},"evmVersion":"paris","externalReferences":[{"declaration":9799,"isOffset":false,"isSlot":false,"src":"1467:14:46","valueSize":1}],"id":9802,"nodeType":"InlineAssembly","src":"1023:819:46"}]},"documentation":{"id":9797,"nodeType":"StructuredDocumentation","src":"758:190:46","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":9804,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"962:9:46","nodeType":"FunctionDefinition","parameters":{"id":9800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9799,"mutability":"mutable","name":"implementation","nameLocation":"980:14:46","nodeType":"VariableDeclaration","scope":9804,"src":"972:22:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9798,"name":"address","nodeType":"ElementaryTypeName","src":"972:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"971:24:46"},"returnParameters":{"id":9801,"nodeType":"ParameterList","parameters":[],"src":"1013:0:46"},"scope":9845,"src":"953:895:46","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":9805,"nodeType":"StructuredDocumentation","src":"1854:172:46","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":9810,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2040:15:46","nodeType":"FunctionDefinition","parameters":{"id":9806,"nodeType":"ParameterList","parameters":[],"src":"2055:2:46"},"returnParameters":{"id":9809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9810,"src":"2089:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9807,"name":"address","nodeType":"ElementaryTypeName","src":"2089:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2088:9:46"},"scope":9845,"src":"2031:67:46","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9822,"nodeType":"Block","src":"2365:72:46","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9814,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9844,"src":"2375:15:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2375:17:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9816,"nodeType":"ExpressionStatement","src":"2375:17:46"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9818,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9810,"src":"2412:15:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:17:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9817,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9804,"src":"2402:9:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2402:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9821,"nodeType":"ExpressionStatement","src":"2402:28:46"}]},"documentation":{"id":9811,"nodeType":"StructuredDocumentation","src":"2104:218:46","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":9823,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2336:9:46","nodeType":"FunctionDefinition","parameters":{"id":9812,"nodeType":"ParameterList","parameters":[],"src":"2345:2:46"},"returnParameters":{"id":9813,"nodeType":"ParameterList","parameters":[],"src":"2365:0:46"},"scope":9845,"src":"2327:110:46","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9830,"nodeType":"Block","src":"2670:28:46","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9827,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"2680:9:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2680:11:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9829,"nodeType":"ExpressionStatement","src":"2680:11:46"}]},"documentation":{"id":9824,"nodeType":"StructuredDocumentation","src":"2443:186:46","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":9831,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9825,"nodeType":"ParameterList","parameters":[],"src":"2642:2:46"},"returnParameters":{"id":9826,"nodeType":"ParameterList","parameters":[],"src":"2670:0:46"},"scope":9845,"src":"2634:64:46","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":9838,"nodeType":"Block","src":"2893:28:46","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9835,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"2903:9:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2903:11:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9837,"nodeType":"ExpressionStatement","src":"2903:11:46"}]},"documentation":{"id":9832,"nodeType":"StructuredDocumentation","src":"2704:149:46","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"id":9839,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9833,"nodeType":"ParameterList","parameters":[],"src":"2865:2:46"},"returnParameters":{"id":9834,"nodeType":"ParameterList","parameters":[],"src":"2893:0:46"},"scope":9845,"src":"2858:63:46","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":9843,"nodeType":"Block","src":"3246:2:46","statements":[]},"documentation":{"id":9840,"nodeType":"StructuredDocumentation","src":"2927:270:46","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":9844,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3211:15:46","nodeType":"FunctionDefinition","parameters":{"id":9841,"nodeType":"ParameterList","parameters":[],"src":"3226:2:46"},"returnParameters":{"id":9842,"nodeType":"ParameterList","parameters":[],"src":"3246:0:46"},"scope":9845,"src":"3202:46:46","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":9846,"src":"728:2522:46","usedErrors":[],"usedEvents":[]}],"src":"104:3147:46"},"id":46},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[9855]},"id":9856,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9847,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:47"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":9848,"nodeType":"StructuredDocumentation","src":"118:79:47","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":9855,"linearizedBaseContracts":[9855],"name":"IBeacon","nameLocation":"208:7:47","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9849,"nodeType":"StructuredDocumentation","src":"222:162:47","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":9854,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:47","nodeType":"FunctionDefinition","parameters":{"id":9850,"nodeType":"ParameterList","parameters":[],"src":"412:2:47"},"returnParameters":{"id":9853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9854,"src":"438:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9851,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:47"},"scope":9855,"src":"389:58:47","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":9856,"src":"198:251:47","usedErrors":[],"usedEvents":[]}],"src":"93:357:47"},"id":47},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[10459],"Context":[10481],"ERC1967Proxy":[9475],"ERC1967Upgrade":[9793],"IBeacon":[9855],"IERC1822Proxiable":[9422],"Ownable":[9412],"Proxy":[9845],"ProxyAdmin":[10000],"StorageSlot":[10541],"TransparentUpgradeableProxy":[10164]},"id":10001,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9857,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:48"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","file":"./TransparentUpgradeableProxy.sol","id":9858,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10001,"sourceUnit":10165,"src":"126:43:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","file":"../../access/Ownable.sol","id":9859,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10001,"sourceUnit":9413,"src":"170:34:48","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9861,"name":"Ownable","nameLocations":["458:7:48"],"nodeType":"IdentifierPath","referencedDeclaration":9412,"src":"458:7:48"},"id":9862,"nodeType":"InheritanceSpecifier","src":"458:7:48"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":9860,"nodeType":"StructuredDocumentation","src":"206:228:48","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":10000,"linearizedBaseContracts":[10000,9412,10481],"name":"ProxyAdmin","nameLocation":"444:10:48","nodeType":"ContractDefinition","nodes":[{"body":{"id":9870,"nodeType":"Block","src":"530:2:48","statements":[]},"id":9871,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":9867,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9864,"src":"516:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":9868,"kind":"baseConstructorSpecifier","modifierName":{"id":9866,"name":"Ownable","nameLocations":["508:7:48"],"nodeType":"IdentifierPath","referencedDeclaration":9412,"src":"508:7:48"},"nodeType":"ModifierInvocation","src":"508:21:48"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9864,"mutability":"mutable","name":"initialOwner","nameLocation":"494:12:48","nodeType":"VariableDeclaration","scope":9871,"src":"486:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9863,"name":"address","nodeType":"ElementaryTypeName","src":"486:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"485:22:48"},"returnParameters":{"id":9869,"nodeType":"ParameterList","parameters":[],"src":"530:0:48"},"scope":10000,"src":"473:59:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9904,"nodeType":"Block","src":"806:332:48","statements":[{"assignments":[9881,9883],"declarations":[{"constant":false,"id":9881,"mutability":"mutable","name":"success","nameLocation":"979:7:48","nodeType":"VariableDeclaration","scope":9904,"src":"974:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9880,"name":"bool","nodeType":"ElementaryTypeName","src":"974:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9883,"mutability":"mutable","name":"returndata","nameLocation":"1001:10:48","nodeType":"VariableDeclaration","scope":9904,"src":"988:23:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9882,"name":"bytes","nodeType":"ElementaryTypeName","src":"988:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9891,"initialValue":{"arguments":[{"hexValue":"5c60da1b","id":9889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1041:13:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}],"expression":{"arguments":[{"id":9886,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9875,"src":"1023:5:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}],"id":9885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9884,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:48","typeDescriptions":{}}},"id":9887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:10:48","memberName":"staticcall","nodeType":"MemberAccess","src":"1015:25:48","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":9890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"973:82:48"},{"expression":{"arguments":[{"id":9893,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9881,"src":"1073:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9892,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1065:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:16:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9895,"nodeType":"ExpressionStatement","src":"1065:16:48"},{"expression":{"arguments":[{"id":9898,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9883,"src":"1109:10:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":9900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1122:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9899,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:48","typeDescriptions":{}}}],"id":9901,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1121:9:48","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":9896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1098:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1102:6:48","memberName":"decode","nodeType":"MemberAccess","src":"1098:10:48","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":9879,"id":9903,"nodeType":"Return","src":"1091:40:48"}]},"documentation":{"id":9872,"nodeType":"StructuredDocumentation","src":"538:158:48","text":" @dev Returns the current implementation of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"204e1c7a","id":9905,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyImplementation","nameLocation":"710:22:48","nodeType":"FunctionDefinition","parameters":{"id":9876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9875,"mutability":"mutable","name":"proxy","nameLocation":"761:5:48","nodeType":"VariableDeclaration","scope":9905,"src":"733:33:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9874,"nodeType":"UserDefinedTypeName","pathNode":{"id":9873,"name":"TransparentUpgradeableProxy","nameLocations":["733:27:48"],"nodeType":"IdentifierPath","referencedDeclaration":10164,"src":"733:27:48"},"referencedDeclaration":10164,"src":"733:27:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"732:35:48"},"returnParameters":{"id":9879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9905,"src":"797:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9877,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"796:9:48"},"scope":10000,"src":"701:437:48","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9938,"nodeType":"Block","src":"1394:323:48","statements":[{"assignments":[9915,9917],"declarations":[{"constant":false,"id":9915,"mutability":"mutable","name":"success","nameLocation":"1558:7:48","nodeType":"VariableDeclaration","scope":9938,"src":"1553:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9914,"name":"bool","nodeType":"ElementaryTypeName","src":"1553:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9917,"mutability":"mutable","name":"returndata","nameLocation":"1580:10:48","nodeType":"VariableDeclaration","scope":9938,"src":"1567:23:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9916,"name":"bytes","nodeType":"ElementaryTypeName","src":"1567:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9925,"initialValue":{"arguments":[{"hexValue":"f851a440","id":9923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1620:13:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}],"expression":{"arguments":[{"id":9920,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"1602:5:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}],"id":9919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9918,"name":"address","nodeType":"ElementaryTypeName","src":"1594:7:48","typeDescriptions":{}}},"id":9921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1609:10:48","memberName":"staticcall","nodeType":"MemberAccess","src":"1594:25:48","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":9924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1552:82:48"},{"expression":{"arguments":[{"id":9927,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9915,"src":"1652:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9926,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1644:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:16:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9929,"nodeType":"ExpressionStatement","src":"1644:16:48"},{"expression":{"arguments":[{"id":9932,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9917,"src":"1688:10:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":9934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9933,"name":"address","nodeType":"ElementaryTypeName","src":"1701:7:48","typeDescriptions":{}}}],"id":9935,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1700:9:48","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":9930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1677:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1681:6:48","memberName":"decode","nodeType":"MemberAccess","src":"1677:10:48","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":9913,"id":9937,"nodeType":"Return","src":"1670:40:48"}]},"documentation":{"id":9906,"nodeType":"StructuredDocumentation","src":"1144:149:48","text":" @dev Returns the current admin of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"f3b7dead","id":9939,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyAdmin","nameLocation":"1307:13:48","nodeType":"FunctionDefinition","parameters":{"id":9910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9909,"mutability":"mutable","name":"proxy","nameLocation":"1349:5:48","nodeType":"VariableDeclaration","scope":9939,"src":"1321:33:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9908,"nodeType":"UserDefinedTypeName","pathNode":{"id":9907,"name":"TransparentUpgradeableProxy","nameLocations":["1321:27:48"],"nodeType":"IdentifierPath","referencedDeclaration":10164,"src":"1321:27:48"},"referencedDeclaration":10164,"src":"1321:27:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"1320:35:48"},"returnParameters":{"id":9913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9912,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9939,"src":"1385:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9911,"name":"address","nodeType":"ElementaryTypeName","src":"1385:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1384:9:48"},"scope":10000,"src":"1298:419:48","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9956,"nodeType":"Block","src":"1995:44:48","statements":[{"expression":{"arguments":[{"id":9953,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9945,"src":"2023:8:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9950,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9943,"src":"2005:5:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}},"id":9952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2011:11:48","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":10098,"src":"2005:17:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9955,"nodeType":"ExpressionStatement","src":"2005:27:48"}]},"documentation":{"id":9940,"nodeType":"StructuredDocumentation","src":"1723:163:48","text":" @dev Changes the admin of `proxy` to `newAdmin`.\n Requirements:\n - This contract must be the current admin of `proxy`."},"functionSelector":"7eff275e","id":9957,"implemented":true,"kind":"function","modifiers":[{"id":9948,"kind":"modifierInvocation","modifierName":{"id":9947,"name":"onlyOwner","nameLocations":["1985:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":9354,"src":"1985:9:48"},"nodeType":"ModifierInvocation","src":"1985:9:48"}],"name":"changeProxyAdmin","nameLocation":"1900:16:48","nodeType":"FunctionDefinition","parameters":{"id":9946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9943,"mutability":"mutable","name":"proxy","nameLocation":"1945:5:48","nodeType":"VariableDeclaration","scope":9957,"src":"1917:33:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9942,"nodeType":"UserDefinedTypeName","pathNode":{"id":9941,"name":"TransparentUpgradeableProxy","nameLocations":["1917:27:48"],"nodeType":"IdentifierPath","referencedDeclaration":10164,"src":"1917:27:48"},"referencedDeclaration":10164,"src":"1917:27:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":9945,"mutability":"mutable","name":"newAdmin","nameLocation":"1960:8:48","nodeType":"VariableDeclaration","scope":9957,"src":"1952:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9944,"name":"address","nodeType":"ElementaryTypeName","src":"1952:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1916:53:48"},"returnParameters":{"id":9949,"nodeType":"ParameterList","parameters":[],"src":"1995:0:48"},"scope":10000,"src":"1891:148:48","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9974,"nodeType":"Block","src":"2345:48:48","statements":[{"expression":{"arguments":[{"id":9971,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9963,"src":"2371:14:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9968,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9961,"src":"2355:5:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}},"id":9970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2361:9:48","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":10116,"src":"2355:15:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:31:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9973,"nodeType":"ExpressionStatement","src":"2355:31:48"}]},"documentation":{"id":9958,"nodeType":"StructuredDocumentation","src":"2045:194:48","text":" @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"99a88ec4","id":9975,"implemented":true,"kind":"function","modifiers":[{"id":9966,"kind":"modifierInvocation","modifierName":{"id":9965,"name":"onlyOwner","nameLocations":["2335:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":9354,"src":"2335:9:48"},"nodeType":"ModifierInvocation","src":"2335:9:48"}],"name":"upgrade","nameLocation":"2253:7:48","nodeType":"FunctionDefinition","parameters":{"id":9964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9961,"mutability":"mutable","name":"proxy","nameLocation":"2289:5:48","nodeType":"VariableDeclaration","scope":9975,"src":"2261:33:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9960,"nodeType":"UserDefinedTypeName","pathNode":{"id":9959,"name":"TransparentUpgradeableProxy","nameLocations":["2261:27:48"],"nodeType":"IdentifierPath","referencedDeclaration":10164,"src":"2261:27:48"},"referencedDeclaration":10164,"src":"2261:27:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":9963,"mutability":"mutable","name":"implementation","nameLocation":"2304:14:48","nodeType":"VariableDeclaration","scope":9975,"src":"2296:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9962,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2260:59:48"},"returnParameters":{"id":9967,"nodeType":"ParameterList","parameters":[],"src":"2345:0:48"},"scope":10000,"src":"2244:149:48","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9998,"nodeType":"Block","src":"2824:79:48","statements":[{"expression":{"arguments":[{"id":9994,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9981,"src":"2875:14:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9995,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9983,"src":"2891:4:48","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":9988,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9979,"src":"2834:5:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}},"id":9990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2840:16:48","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":10133,"src":"2834:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":9993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":9991,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2864:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:5:48","memberName":"value","nodeType":"MemberAccess","src":"2864:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2834:40:48","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,bytes memory) payable external"}},"id":9996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2834:62:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9997,"nodeType":"ExpressionStatement","src":"2834:62:48"}]},"documentation":{"id":9976,"nodeType":"StructuredDocumentation","src":"2399:255:48","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":9999,"implemented":true,"kind":"function","modifiers":[{"id":9986,"kind":"modifierInvocation","modifierName":{"id":9985,"name":"onlyOwner","nameLocations":["2814:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":9354,"src":"2814:9:48"},"nodeType":"ModifierInvocation","src":"2814:9:48"}],"name":"upgradeAndCall","nameLocation":"2668:14:48","nodeType":"FunctionDefinition","parameters":{"id":9984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9979,"mutability":"mutable","name":"proxy","nameLocation":"2720:5:48","nodeType":"VariableDeclaration","scope":9999,"src":"2692:33:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":9978,"nodeType":"UserDefinedTypeName","pathNode":{"id":9977,"name":"TransparentUpgradeableProxy","nameLocations":["2692:27:48"],"nodeType":"IdentifierPath","referencedDeclaration":10164,"src":"2692:27:48"},"referencedDeclaration":10164,"src":"2692:27:48","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$10164","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":9981,"mutability":"mutable","name":"implementation","nameLocation":"2743:14:48","nodeType":"VariableDeclaration","scope":9999,"src":"2735:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9980,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9983,"mutability":"mutable","name":"data","nameLocation":"2780:4:48","nodeType":"VariableDeclaration","scope":9999,"src":"2767:17:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9982,"name":"bytes","nodeType":"ElementaryTypeName","src":"2767:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2682:108:48"},"returnParameters":{"id":9987,"nodeType":"ParameterList","parameters":[],"src":"2824:0:48"},"scope":10000,"src":"2659:244:48","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":10001,"src":"435:2470:48","usedErrors":[],"usedEvents":[9320]}],"src":"101:2805:48"},"id":48},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[10459],"ERC1967Proxy":[9475],"ERC1967Upgrade":[9793],"IBeacon":[9855],"IERC1822Proxiable":[9422],"Proxy":[9845],"StorageSlot":[10541],"TransparentUpgradeableProxy":[10164]},"id":10165,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10002,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:49"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","id":10003,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10165,"sourceUnit":9476,"src":"143:37:49","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10005,"name":"ERC1967Proxy","nameLocations":["1674:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":9475,"src":"1674:12:49"},"id":10006,"nodeType":"InheritanceSpecifier","src":"1674:12:49"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":10004,"nodeType":"StructuredDocumentation","src":"182:1451:49","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":10164,"linearizedBaseContracts":[10164,9475,9793,9845],"name":"TransparentUpgradeableProxy","nameLocation":"1643:27:49","nodeType":"ContractDefinition","nodes":[{"body":{"id":10040,"nodeType":"Block","src":"2038:124:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":10021,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9633,"src":"2055:11:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":10027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2096:21:49","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":10026,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2086:9:49","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2078:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2078:7:49","typeDescriptions":{}}},"id":10029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2078:41:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2122:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2078:45:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2070:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2070:7:49","typeDescriptions":{}}},"id":10032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2070:54:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2055:69:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10020,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2048:6:49","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:77:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10035,"nodeType":"ExpressionStatement","src":"2048:77:49"},{"expression":{"arguments":[{"id":10037,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10011,"src":"2148:6:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10036,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9696,"src":"2135:12:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10039,"nodeType":"ExpressionStatement","src":"2135:20:49"}]},"documentation":{"id":10007,"nodeType":"StructuredDocumentation","src":"1693:210:49","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":10041,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10016,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"2023:6:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10017,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10013,"src":"2031:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":10018,"kind":"baseConstructorSpecifier","modifierName":{"id":10015,"name":"ERC1967Proxy","nameLocations":["2010:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":9475,"src":"2010:12:49"},"nodeType":"ModifierInvocation","src":"2010:27:49"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10009,"mutability":"mutable","name":"_logic","nameLocation":"1937:6:49","nodeType":"VariableDeclaration","scope":10041,"src":"1929:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10008,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10011,"mutability":"mutable","name":"admin_","nameLocation":"1961:6:49","nodeType":"VariableDeclaration","scope":10041,"src":"1953:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10010,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10013,"mutability":"mutable","name":"_data","nameLocation":"1990:5:49","nodeType":"VariableDeclaration","scope":10041,"src":"1977:18:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10012,"name":"bytes","nodeType":"ElementaryTypeName","src":"1977:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1919:82:49"},"returnParameters":{"id":10019,"nodeType":"ParameterList","parameters":[],"src":"2038:0:49"},"scope":10164,"src":"1908:254:49","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":10056,"nodeType":"Block","src":"2322:115:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10044,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2336:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2340:6:49","memberName":"sender","nodeType":"MemberAccess","src":"2336:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10046,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9653,"src":"2350:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:11:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2336:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10054,"nodeType":"Block","src":"2395:36:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10051,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"2409:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2409:11:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10053,"nodeType":"ExpressionStatement","src":"2409:11:49"}]},"id":10055,"nodeType":"IfStatement","src":"2332:99:49","trueBody":{"id":10050,"nodeType":"Block","src":"2363:26:49","statements":[{"id":10049,"nodeType":"PlaceholderStatement","src":"2377:1:49"}]}}]},"documentation":{"id":10042,"nodeType":"StructuredDocumentation","src":"2168:130:49","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":10057,"name":"ifAdmin","nameLocation":"2312:7:49","nodeType":"ModifierDefinition","parameters":{"id":10043,"nodeType":"ParameterList","parameters":[],"src":"2319:2:49"},"src":"2303:134:49","virtual":false,"visibility":"internal"},{"body":{"id":10070,"nodeType":"Block","src":"2938:37:49","statements":[{"expression":{"id":10068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10065,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10063,"src":"2948:6:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":10066,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9653,"src":"2957:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:11:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2948:20:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10069,"nodeType":"ExpressionStatement","src":"2948:20:49"}]},"documentation":{"id":10058,"nodeType":"StructuredDocumentation","src":"2443:431:49","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":10071,"implemented":true,"kind":"function","modifiers":[{"id":10061,"kind":"modifierInvocation","modifierName":{"id":10060,"name":"ifAdmin","nameLocations":["2905:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":10057,"src":"2905:7:49"},"nodeType":"ModifierInvocation","src":"2905:7:49"}],"name":"admin","nameLocation":"2888:5:49","nodeType":"FunctionDefinition","parameters":{"id":10059,"nodeType":"ParameterList","parameters":[],"src":"2893:2:49"},"returnParameters":{"id":10064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10063,"mutability":"mutable","name":"admin_","nameLocation":"2930:6:49","nodeType":"VariableDeclaration","scope":10071,"src":"2922:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10062,"name":"address","nodeType":"ElementaryTypeName","src":"2922:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2921:16:49"},"scope":10164,"src":"2879:96:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10084,"nodeType":"Block","src":"3512:52:49","statements":[{"expression":{"id":10082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10079,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10077,"src":"3522:15:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":10080,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[9474],"referencedDeclaration":9474,"src":"3540:15:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3540:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3522:35:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10083,"nodeType":"ExpressionStatement","src":"3522:35:49"}]},"documentation":{"id":10072,"nodeType":"StructuredDocumentation","src":"2981:449:49","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":10085,"implemented":true,"kind":"function","modifiers":[{"id":10075,"kind":"modifierInvocation","modifierName":{"id":10074,"name":"ifAdmin","nameLocations":["3470:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":10057,"src":"3470:7:49"},"nodeType":"ModifierInvocation","src":"3470:7:49"}],"name":"implementation","nameLocation":"3444:14:49","nodeType":"FunctionDefinition","parameters":{"id":10073,"nodeType":"ParameterList","parameters":[],"src":"3458:2:49"},"returnParameters":{"id":10078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10077,"mutability":"mutable","name":"implementation_","nameLocation":"3495:15:49","nodeType":"VariableDeclaration","scope":10085,"src":"3487:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10076,"name":"address","nodeType":"ElementaryTypeName","src":"3487:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3486:25:49"},"scope":10164,"src":"3435:129:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10097,"nodeType":"Block","src":"3833:39:49","statements":[{"expression":{"arguments":[{"id":10094,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10088,"src":"3856:8:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10093,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9696,"src":"3843:12:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10096,"nodeType":"ExpressionStatement","src":"3843:22:49"}]},"documentation":{"id":10086,"nodeType":"StructuredDocumentation","src":"3570:194:49","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":10098,"implemented":true,"kind":"function","modifiers":[{"id":10091,"kind":"modifierInvocation","modifierName":{"id":10090,"name":"ifAdmin","nameLocations":["3825:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":10057,"src":"3825:7:49"},"nodeType":"ModifierInvocation","src":"3825:7:49"}],"name":"changeAdmin","nameLocation":"3778:11:49","nodeType":"FunctionDefinition","parameters":{"id":10089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10088,"mutability":"mutable","name":"newAdmin","nameLocation":"3798:8:49","nodeType":"VariableDeclaration","scope":10098,"src":"3790:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10087,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3789:18:49"},"returnParameters":{"id":10092,"nodeType":"ParameterList","parameters":[],"src":"3833:0:49"},"scope":10164,"src":"3769:103:49","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":10115,"nodeType":"Block","src":"4095:71:49","statements":[{"expression":{"arguments":[{"id":10107,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10101,"src":"4123:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":10110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4148:2:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":10109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4142:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10108,"name":"bytes","nodeType":"ElementaryTypeName","src":"4142:5:49","typeDescriptions":{}}},"id":10111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4142:9:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":10112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4153:5:49","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":10106,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9576,"src":"4105:17:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":10113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4105:54:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10114,"nodeType":"ExpressionStatement","src":"4105:54:49"}]},"documentation":{"id":10099,"nodeType":"StructuredDocumentation","src":"3878:149:49","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":10116,"implemented":true,"kind":"function","modifiers":[{"id":10104,"kind":"modifierInvocation","modifierName":{"id":10103,"name":"ifAdmin","nameLocations":["4087:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":10057,"src":"4087:7:49"},"nodeType":"ModifierInvocation","src":"4087:7:49"}],"name":"upgradeTo","nameLocation":"4041:9:49","nodeType":"FunctionDefinition","parameters":{"id":10102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10101,"mutability":"mutable","name":"newImplementation","nameLocation":"4059:17:49","nodeType":"VariableDeclaration","scope":10116,"src":"4051:25:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10100,"name":"address","nodeType":"ElementaryTypeName","src":"4051:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4050:27:49"},"returnParameters":{"id":10105,"nodeType":"ParameterList","parameters":[],"src":"4095:0:49"},"scope":10164,"src":"4032:134:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10132,"nodeType":"Block","src":"4641:65:49","statements":[{"expression":{"arguments":[{"id":10127,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10119,"src":"4669:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10128,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"4688:4:49","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":10129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4694:4:49","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":10126,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9576,"src":"4651:17:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":10130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4651:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10131,"nodeType":"ExpressionStatement","src":"4651:48:49"}]},"documentation":{"id":10117,"nodeType":"StructuredDocumentation","src":"4172:365:49","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":10133,"implemented":true,"kind":"function","modifiers":[{"id":10124,"kind":"modifierInvocation","modifierName":{"id":10123,"name":"ifAdmin","nameLocations":["4633:7:49"],"nodeType":"IdentifierPath","referencedDeclaration":10057,"src":"4633:7:49"},"nodeType":"ModifierInvocation","src":"4633:7:49"}],"name":"upgradeToAndCall","nameLocation":"4551:16:49","nodeType":"FunctionDefinition","parameters":{"id":10122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10119,"mutability":"mutable","name":"newImplementation","nameLocation":"4576:17:49","nodeType":"VariableDeclaration","scope":10133,"src":"4568:25:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10118,"name":"address","nodeType":"ElementaryTypeName","src":"4568:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10121,"mutability":"mutable","name":"data","nameLocation":"4610:4:49","nodeType":"VariableDeclaration","scope":10133,"src":"4595:19:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10120,"name":"bytes","nodeType":"ElementaryTypeName","src":"4595:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4567:48:49"},"returnParameters":{"id":10125,"nodeType":"ParameterList","parameters":[],"src":"4641:0:49"},"scope":10164,"src":"4542:164:49","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":10142,"nodeType":"Block","src":"4825:35:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10139,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9653,"src":"4842:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:11:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10138,"id":10141,"nodeType":"Return","src":"4835:18:49"}]},"documentation":{"id":10134,"nodeType":"StructuredDocumentation","src":"4712:50:49","text":" @dev Returns the current admin."},"id":10143,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4776:6:49","nodeType":"FunctionDefinition","parameters":{"id":10135,"nodeType":"ParameterList","parameters":[],"src":"4782:2:49"},"returnParameters":{"id":10138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10143,"src":"4816:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10136,"name":"address","nodeType":"ElementaryTypeName","src":"4816:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4815:9:49"},"scope":10164,"src":"4767:93:49","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[9844],"body":{"id":10162,"nodeType":"Block","src":"5034:154:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10149,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5052:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5056:6:49","memberName":"sender","nodeType":"MemberAccess","src":"5052:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10151,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9653,"src":"5066:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:11:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5052:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":10154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5079:68:49","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":10148,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5044:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5044:104:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10156,"nodeType":"ExpressionStatement","src":"5044:104:49"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10157,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5158:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$10164_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":10159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:15:49","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":9844,"src":"5158:21:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10161,"nodeType":"ExpressionStatement","src":"5158:23:49"}]},"documentation":{"id":10144,"nodeType":"StructuredDocumentation","src":"4866:110:49","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":10163,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4990:15:49","nodeType":"FunctionDefinition","overrides":{"id":10146,"nodeType":"OverrideSpecifier","overrides":[],"src":"5025:8:49"},"parameters":{"id":10145,"nodeType":"ParameterList","parameters":[],"src":"5005:2:49"},"returnParameters":{"id":10147,"nodeType":"ParameterList","parameters":[],"src":"5034:0:49"},"scope":10164,"src":"4981:207:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":10165,"src":"1634:3556:49","usedErrors":[],"usedEvents":[9494,9640,9705]}],"src":"118:5073:49"},"id":49},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","exportedSymbols":{"Address":[10459]},"id":10460,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10166,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"106:23:50"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":10167,"nodeType":"StructuredDocumentation","src":"131:67:50","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":10459,"linearizedBaseContracts":[10459],"name":"Address","nameLocation":"207:7:50","nodeType":"ContractDefinition","nodes":[{"body":{"id":10181,"nodeType":"Block","src":"1246:254:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10175,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"1470:7:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:4:50","memberName":"code","nodeType":"MemberAccess","src":"1470:12:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1483:6:50","memberName":"length","nodeType":"MemberAccess","src":"1470:19:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1492:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1470:23:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10174,"id":10180,"nodeType":"Return","src":"1463:30:50"}]},"documentation":{"id":10168,"nodeType":"StructuredDocumentation","src":"221:954:50","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":10182,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1189:10:50","nodeType":"FunctionDefinition","parameters":{"id":10171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10170,"mutability":"mutable","name":"account","nameLocation":"1208:7:50","nodeType":"VariableDeclaration","scope":10182,"src":"1200:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10169,"name":"address","nodeType":"ElementaryTypeName","src":"1200:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1199:17:50"},"returnParameters":{"id":10174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10182,"src":"1240:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10172,"name":"bool","nodeType":"ElementaryTypeName","src":"1240:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1239:6:50"},"scope":10459,"src":"1180:320:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10215,"nodeType":"Block","src":"2488:241:50","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10193,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2514:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$10459","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$10459","typeString":"library Address"}],"id":10192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2506:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10191,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:50","typeDescriptions":{}}},"id":10194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2520:7:50","memberName":"balance","nodeType":"MemberAccess","src":"2506:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":10196,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10187,"src":"2531:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2506:31:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":10198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2539:31:50","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":10190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2498:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:73:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10200,"nodeType":"ExpressionStatement","src":"2498:73:50"},{"assignments":[10202,null],"declarations":[{"constant":false,"id":10202,"mutability":"mutable","name":"success","nameLocation":"2588:7:50","nodeType":"VariableDeclaration","scope":10215,"src":"2583:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10201,"name":"bool","nodeType":"ElementaryTypeName","src":"2583:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":10209,"initialValue":{"arguments":[{"hexValue":"","id":10207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2631:2:50","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":10203,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10185,"src":"2601:9:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":10204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2611:4:50","memberName":"call","nodeType":"MemberAccess","src":"2601:14:50","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":10206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":10205,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10187,"src":"2623:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2601:29:50","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":10208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2601:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2582:52:50"},{"expression":{"arguments":[{"id":10211,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10202,"src":"2652:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":10212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2661:60:50","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":10210,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2644:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:78:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10214,"nodeType":"ExpressionStatement","src":"2644:78:50"}]},"documentation":{"id":10183,"nodeType":"StructuredDocumentation","src":"1506:906:50","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":10216,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2426:9:50","nodeType":"FunctionDefinition","parameters":{"id":10188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10185,"mutability":"mutable","name":"recipient","nameLocation":"2452:9:50","nodeType":"VariableDeclaration","scope":10216,"src":"2436:25:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":10184,"name":"address","nodeType":"ElementaryTypeName","src":"2436:15:50","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":10187,"mutability":"mutable","name":"amount","nameLocation":"2471:6:50","nodeType":"VariableDeclaration","scope":10216,"src":"2463:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10186,"name":"uint256","nodeType":"ElementaryTypeName","src":"2463:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2435:43:50"},"returnParameters":{"id":10189,"nodeType":"ParameterList","parameters":[],"src":"2488:0:50"},"scope":10459,"src":"2417:312:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10232,"nodeType":"Block","src":"3560:84:50","statements":[{"expression":{"arguments":[{"id":10227,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"3590:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10228,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10221,"src":"3598:4:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":10229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3604:32:50","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":10226,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[10233,10253],"referencedDeclaration":10253,"src":"3577:12:50","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":10230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:60:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10225,"id":10231,"nodeType":"Return","src":"3570:67:50"}]},"documentation":{"id":10217,"nodeType":"StructuredDocumentation","src":"2735:731:50","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":10233,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3480:12:50","nodeType":"FunctionDefinition","parameters":{"id":10222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10219,"mutability":"mutable","name":"target","nameLocation":"3501:6:50","nodeType":"VariableDeclaration","scope":10233,"src":"3493:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10218,"name":"address","nodeType":"ElementaryTypeName","src":"3493:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10221,"mutability":"mutable","name":"data","nameLocation":"3522:4:50","nodeType":"VariableDeclaration","scope":10233,"src":"3509:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10220,"name":"bytes","nodeType":"ElementaryTypeName","src":"3509:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3492:35:50"},"returnParameters":{"id":10225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10233,"src":"3546:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10223,"name":"bytes","nodeType":"ElementaryTypeName","src":"3546:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3545:14:50"},"scope":10459,"src":"3471:173:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10252,"nodeType":"Block","src":"4013:76:50","statements":[{"expression":{"arguments":[{"id":10246,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10236,"src":"4052:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10247,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10238,"src":"4060:4:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":10248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4066:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":10249,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10240,"src":"4069:12:50","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":10245,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[10273,10323],"referencedDeclaration":10323,"src":"4030:21:50","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":10250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:52:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10244,"id":10251,"nodeType":"Return","src":"4023:59:50"}]},"documentation":{"id":10234,"nodeType":"StructuredDocumentation","src":"3650:211:50","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":10253,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3875:12:50","nodeType":"FunctionDefinition","parameters":{"id":10241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10236,"mutability":"mutable","name":"target","nameLocation":"3905:6:50","nodeType":"VariableDeclaration","scope":10253,"src":"3897:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10235,"name":"address","nodeType":"ElementaryTypeName","src":"3897:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10238,"mutability":"mutable","name":"data","nameLocation":"3934:4:50","nodeType":"VariableDeclaration","scope":10253,"src":"3921:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10237,"name":"bytes","nodeType":"ElementaryTypeName","src":"3921:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10240,"mutability":"mutable","name":"errorMessage","nameLocation":"3962:12:50","nodeType":"VariableDeclaration","scope":10253,"src":"3948:26:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10239,"name":"string","nodeType":"ElementaryTypeName","src":"3948:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3887:93:50"},"returnParameters":{"id":10244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10253,"src":"3999:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10242,"name":"bytes","nodeType":"ElementaryTypeName","src":"3999:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3998:14:50"},"scope":10459,"src":"3866:223:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10272,"nodeType":"Block","src":"4594:111:50","statements":[{"expression":{"arguments":[{"id":10266,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10256,"src":"4633:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10267,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10258,"src":"4641:4:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10268,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10260,"src":"4647:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":10269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4654:43:50","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":10265,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[10273,10323],"referencedDeclaration":10323,"src":"4611:21:50","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":10270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:87:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10264,"id":10271,"nodeType":"Return","src":"4604:94:50"}]},"documentation":{"id":10254,"nodeType":"StructuredDocumentation","src":"4095:351:50","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":10273,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4460:21:50","nodeType":"FunctionDefinition","parameters":{"id":10261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10256,"mutability":"mutable","name":"target","nameLocation":"4499:6:50","nodeType":"VariableDeclaration","scope":10273,"src":"4491:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10255,"name":"address","nodeType":"ElementaryTypeName","src":"4491:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10258,"mutability":"mutable","name":"data","nameLocation":"4528:4:50","nodeType":"VariableDeclaration","scope":10273,"src":"4515:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10257,"name":"bytes","nodeType":"ElementaryTypeName","src":"4515:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10260,"mutability":"mutable","name":"value","nameLocation":"4550:5:50","nodeType":"VariableDeclaration","scope":10273,"src":"4542:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10259,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4481:80:50"},"returnParameters":{"id":10264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10273,"src":"4580:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10262,"name":"bytes","nodeType":"ElementaryTypeName","src":"4580:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4579:14:50"},"scope":10459,"src":"4451:254:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10322,"nodeType":"Block","src":"5132:320:50","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10290,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5158:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$10459","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$10459","typeString":"library Address"}],"id":10289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5150:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10288,"name":"address","nodeType":"ElementaryTypeName","src":"5150:7:50","typeDescriptions":{}}},"id":10291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5150:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:7:50","memberName":"balance","nodeType":"MemberAccess","src":"5150:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":10293,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"5175:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:30:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":10295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5182:40:50","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":10287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5142:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:81:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10297,"nodeType":"ExpressionStatement","src":"5142:81:50"},{"expression":{"arguments":[{"arguments":[{"id":10300,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10276,"src":"5252:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10299,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10182,"src":"5241:10:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5241:18:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":10302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5261:31:50","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":10298,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5233:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5233:60:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10304,"nodeType":"ExpressionStatement","src":"5233:60:50"},{"assignments":[10306,10308],"declarations":[{"constant":false,"id":10306,"mutability":"mutable","name":"success","nameLocation":"5310:7:50","nodeType":"VariableDeclaration","scope":10322,"src":"5305:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10305,"name":"bool","nodeType":"ElementaryTypeName","src":"5305:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10308,"mutability":"mutable","name":"returndata","nameLocation":"5332:10:50","nodeType":"VariableDeclaration","scope":10322,"src":"5319:23:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10307,"name":"bytes","nodeType":"ElementaryTypeName","src":"5319:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10315,"initialValue":{"arguments":[{"id":10313,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10278,"src":"5372:4:50","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":10309,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10276,"src":"5346:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5353:4:50","memberName":"call","nodeType":"MemberAccess","src":"5346:11:50","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":10312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":10311,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"5365:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5346:25:50","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":10314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5346:31:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5304:73:50"},{"expression":{"arguments":[{"id":10317,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10306,"src":"5411:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10318,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10308,"src":"5420:10:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10319,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10282,"src":"5432:12:50","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":10316,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10458,"src":"5394:16:50","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":10320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5394:51:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10286,"id":10321,"nodeType":"Return","src":"5387:58:50"}]},"documentation":{"id":10274,"nodeType":"StructuredDocumentation","src":"4711:237:50","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":10323,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4962:21:50","nodeType":"FunctionDefinition","parameters":{"id":10283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10276,"mutability":"mutable","name":"target","nameLocation":"5001:6:50","nodeType":"VariableDeclaration","scope":10323,"src":"4993:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10275,"name":"address","nodeType":"ElementaryTypeName","src":"4993:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10278,"mutability":"mutable","name":"data","nameLocation":"5030:4:50","nodeType":"VariableDeclaration","scope":10323,"src":"5017:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10277,"name":"bytes","nodeType":"ElementaryTypeName","src":"5017:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10280,"mutability":"mutable","name":"value","nameLocation":"5052:5:50","nodeType":"VariableDeclaration","scope":10323,"src":"5044:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10279,"name":"uint256","nodeType":"ElementaryTypeName","src":"5044:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10282,"mutability":"mutable","name":"errorMessage","nameLocation":"5081:12:50","nodeType":"VariableDeclaration","scope":10323,"src":"5067:26:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10281,"name":"string","nodeType":"ElementaryTypeName","src":"5067:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4983:116:50"},"returnParameters":{"id":10286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10285,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10323,"src":"5118:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10284,"name":"bytes","nodeType":"ElementaryTypeName","src":"5118:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5117:14:50"},"scope":10459,"src":"4953:499:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10339,"nodeType":"Block","src":"5729:97:50","statements":[{"expression":{"arguments":[{"id":10334,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10326,"src":"5765:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10335,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10328,"src":"5773:4:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":10336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5779:39:50","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":10333,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[10340,10375],"referencedDeclaration":10375,"src":"5746:18:50","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":10337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:73:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10332,"id":10338,"nodeType":"Return","src":"5739:80:50"}]},"documentation":{"id":10324,"nodeType":"StructuredDocumentation","src":"5458:166:50","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":10340,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5638:18:50","nodeType":"FunctionDefinition","parameters":{"id":10329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10326,"mutability":"mutable","name":"target","nameLocation":"5665:6:50","nodeType":"VariableDeclaration","scope":10340,"src":"5657:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10325,"name":"address","nodeType":"ElementaryTypeName","src":"5657:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10328,"mutability":"mutable","name":"data","nameLocation":"5686:4:50","nodeType":"VariableDeclaration","scope":10340,"src":"5673:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10327,"name":"bytes","nodeType":"ElementaryTypeName","src":"5673:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5656:35:50"},"returnParameters":{"id":10332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10340,"src":"5715:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10330,"name":"bytes","nodeType":"ElementaryTypeName","src":"5715:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5714:14:50"},"scope":10459,"src":"5629:197:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10374,"nodeType":"Block","src":"6168:228:50","statements":[{"expression":{"arguments":[{"arguments":[{"id":10354,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10343,"src":"6197:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10353,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10182,"src":"6186:10:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:18:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":10356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6206:38:50","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":10352,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6178:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:67:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10358,"nodeType":"ExpressionStatement","src":"6178:67:50"},{"assignments":[10360,10362],"declarations":[{"constant":false,"id":10360,"mutability":"mutable","name":"success","nameLocation":"6262:7:50","nodeType":"VariableDeclaration","scope":10374,"src":"6257:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10359,"name":"bool","nodeType":"ElementaryTypeName","src":"6257:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10362,"mutability":"mutable","name":"returndata","nameLocation":"6284:10:50","nodeType":"VariableDeclaration","scope":10374,"src":"6271:23:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10361,"name":"bytes","nodeType":"ElementaryTypeName","src":"6271:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10367,"initialValue":{"arguments":[{"id":10365,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10345,"src":"6316:4:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10363,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10343,"src":"6298:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6305:10:50","memberName":"staticcall","nodeType":"MemberAccess","src":"6298:17:50","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":10366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:23:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6256:65:50"},{"expression":{"arguments":[{"id":10369,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10360,"src":"6355:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10370,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10362,"src":"6364:10:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10371,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10347,"src":"6376:12:50","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":10368,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10458,"src":"6338:16:50","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":10372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:51:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10351,"id":10373,"nodeType":"Return","src":"6331:58:50"}]},"documentation":{"id":10341,"nodeType":"StructuredDocumentation","src":"5832:173:50","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":10375,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6019:18:50","nodeType":"FunctionDefinition","parameters":{"id":10348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10343,"mutability":"mutable","name":"target","nameLocation":"6055:6:50","nodeType":"VariableDeclaration","scope":10375,"src":"6047:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10342,"name":"address","nodeType":"ElementaryTypeName","src":"6047:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10345,"mutability":"mutable","name":"data","nameLocation":"6084:4:50","nodeType":"VariableDeclaration","scope":10375,"src":"6071:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10344,"name":"bytes","nodeType":"ElementaryTypeName","src":"6071:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10347,"mutability":"mutable","name":"errorMessage","nameLocation":"6112:12:50","nodeType":"VariableDeclaration","scope":10375,"src":"6098:26:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10346,"name":"string","nodeType":"ElementaryTypeName","src":"6098:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6037:93:50"},"returnParameters":{"id":10351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10350,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10375,"src":"6154:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10349,"name":"bytes","nodeType":"ElementaryTypeName","src":"6154:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6153:14:50"},"scope":10459,"src":"6010:386:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10391,"nodeType":"Block","src":"6672:101:50","statements":[{"expression":{"arguments":[{"id":10386,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"6710:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10387,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10380,"src":"6718:4:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":10388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6724:41:50","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":10385,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[10392,10427],"referencedDeclaration":10427,"src":"6689:20:50","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":10389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:77:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10384,"id":10390,"nodeType":"Return","src":"6682:84:50"}]},"documentation":{"id":10376,"nodeType":"StructuredDocumentation","src":"6402:168:50","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":10392,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6584:20:50","nodeType":"FunctionDefinition","parameters":{"id":10381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10378,"mutability":"mutable","name":"target","nameLocation":"6613:6:50","nodeType":"VariableDeclaration","scope":10392,"src":"6605:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10377,"name":"address","nodeType":"ElementaryTypeName","src":"6605:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10380,"mutability":"mutable","name":"data","nameLocation":"6634:4:50","nodeType":"VariableDeclaration","scope":10392,"src":"6621:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10379,"name":"bytes","nodeType":"ElementaryTypeName","src":"6621:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6604:35:50"},"returnParameters":{"id":10384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10392,"src":"6658:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10382,"name":"bytes","nodeType":"ElementaryTypeName","src":"6658:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6657:14:50"},"scope":10459,"src":"6575:198:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10426,"nodeType":"Block","src":"7114:232:50","statements":[{"expression":{"arguments":[{"arguments":[{"id":10406,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10395,"src":"7143:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10405,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10182,"src":"7132:10:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7132:18:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":10408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7152:40:50","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":10404,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7124:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7124:69:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10410,"nodeType":"ExpressionStatement","src":"7124:69:50"},{"assignments":[10412,10414],"declarations":[{"constant":false,"id":10412,"mutability":"mutable","name":"success","nameLocation":"7210:7:50","nodeType":"VariableDeclaration","scope":10426,"src":"7205:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10411,"name":"bool","nodeType":"ElementaryTypeName","src":"7205:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10414,"mutability":"mutable","name":"returndata","nameLocation":"7232:10:50","nodeType":"VariableDeclaration","scope":10426,"src":"7219:23:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10413,"name":"bytes","nodeType":"ElementaryTypeName","src":"7219:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10419,"initialValue":{"arguments":[{"id":10417,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10397,"src":"7266:4:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10415,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10395,"src":"7246:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7253:12:50","memberName":"delegatecall","nodeType":"MemberAccess","src":"7246:19:50","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":10418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7246:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7204:67:50"},{"expression":{"arguments":[{"id":10421,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"7305:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10422,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10414,"src":"7314:10:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10423,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10399,"src":"7326:12:50","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":10420,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10458,"src":"7288:16:50","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":10424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7288:51:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10403,"id":10425,"nodeType":"Return","src":"7281:58:50"}]},"documentation":{"id":10393,"nodeType":"StructuredDocumentation","src":"6779:175:50","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":10427,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6968:20:50","nodeType":"FunctionDefinition","parameters":{"id":10400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10395,"mutability":"mutable","name":"target","nameLocation":"7006:6:50","nodeType":"VariableDeclaration","scope":10427,"src":"6998:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10394,"name":"address","nodeType":"ElementaryTypeName","src":"6998:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10397,"mutability":"mutable","name":"data","nameLocation":"7035:4:50","nodeType":"VariableDeclaration","scope":10427,"src":"7022:17:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10396,"name":"bytes","nodeType":"ElementaryTypeName","src":"7022:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10399,"mutability":"mutable","name":"errorMessage","nameLocation":"7063:12:50","nodeType":"VariableDeclaration","scope":10427,"src":"7049:26:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10398,"name":"string","nodeType":"ElementaryTypeName","src":"7049:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6988:93:50"},"returnParameters":{"id":10403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10427,"src":"7100:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10401,"name":"bytes","nodeType":"ElementaryTypeName","src":"7100:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7099:14:50"},"scope":10459,"src":"6959:387:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10457,"nodeType":"Block","src":"7726:532:50","statements":[{"condition":{"id":10439,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10430,"src":"7740:7:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10455,"nodeType":"Block","src":"7797:455:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10443,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"7881:10:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7892:6:50","memberName":"length","nodeType":"MemberAccess","src":"7881:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7901:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7881:21:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10453,"nodeType":"Block","src":"8189:53:50","statements":[{"expression":{"arguments":[{"id":10450,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10434,"src":"8214:12:50","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10449,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8207:6:50","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":10451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8207:20:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10452,"nodeType":"ExpressionStatement","src":"8207:20:50"}]},"id":10454,"nodeType":"IfStatement","src":"7877:365:50","trueBody":{"id":10448,"nodeType":"Block","src":"7904:279:50","statements":[{"AST":{"nativeSrc":"8024:145:50","nodeType":"YulBlock","src":"8024:145:50","statements":[{"nativeSrc":"8046:40:50","nodeType":"YulVariableDeclaration","src":"8046:40:50","value":{"arguments":[{"name":"returndata","nativeSrc":"8075:10:50","nodeType":"YulIdentifier","src":"8075:10:50"}],"functionName":{"name":"mload","nativeSrc":"8069:5:50","nodeType":"YulIdentifier","src":"8069:5:50"},"nativeSrc":"8069:17:50","nodeType":"YulFunctionCall","src":"8069:17:50"},"variables":[{"name":"returndata_size","nativeSrc":"8050:15:50","nodeType":"YulTypedName","src":"8050:15:50","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8118:2:50","nodeType":"YulLiteral","src":"8118:2:50","type":"","value":"32"},{"name":"returndata","nativeSrc":"8122:10:50","nodeType":"YulIdentifier","src":"8122:10:50"}],"functionName":{"name":"add","nativeSrc":"8114:3:50","nodeType":"YulIdentifier","src":"8114:3:50"},"nativeSrc":"8114:19:50","nodeType":"YulFunctionCall","src":"8114:19:50"},{"name":"returndata_size","nativeSrc":"8135:15:50","nodeType":"YulIdentifier","src":"8135:15:50"}],"functionName":{"name":"revert","nativeSrc":"8107:6:50","nodeType":"YulIdentifier","src":"8107:6:50"},"nativeSrc":"8107:44:50","nodeType":"YulFunctionCall","src":"8107:44:50"},"nativeSrc":"8107:44:50","nodeType":"YulExpressionStatement","src":"8107:44:50"}]},"evmVersion":"paris","externalReferences":[{"declaration":10432,"isOffset":false,"isSlot":false,"src":"8075:10:50","valueSize":1},{"declaration":10432,"isOffset":false,"isSlot":false,"src":"8122:10:50","valueSize":1}],"id":10447,"nodeType":"InlineAssembly","src":"8015:154:50"}]}}]},"id":10456,"nodeType":"IfStatement","src":"7736:516:50","trueBody":{"id":10442,"nodeType":"Block","src":"7749:42:50","statements":[{"expression":{"id":10440,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"7770:10:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10438,"id":10441,"nodeType":"Return","src":"7763:17:50"}]}}]},"documentation":{"id":10428,"nodeType":"StructuredDocumentation","src":"7352:209:50","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":10458,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7575:16:50","nodeType":"FunctionDefinition","parameters":{"id":10435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10430,"mutability":"mutable","name":"success","nameLocation":"7606:7:50","nodeType":"VariableDeclaration","scope":10458,"src":"7601:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10429,"name":"bool","nodeType":"ElementaryTypeName","src":"7601:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10432,"mutability":"mutable","name":"returndata","nameLocation":"7636:10:50","nodeType":"VariableDeclaration","scope":10458,"src":"7623:23:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10431,"name":"bytes","nodeType":"ElementaryTypeName","src":"7623:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10434,"mutability":"mutable","name":"errorMessage","nameLocation":"7670:12:50","nodeType":"VariableDeclaration","scope":10458,"src":"7656:26:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10433,"name":"string","nodeType":"ElementaryTypeName","src":"7656:6:50","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7591:97:50"},"returnParameters":{"id":10438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10458,"src":"7712:12:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10436,"name":"bytes","nodeType":"ElementaryTypeName","src":"7712:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7711:14:50"},"scope":10459,"src":"7566:692:50","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10460,"src":"199:8061:50","usedErrors":[],"usedEvents":[]}],"src":"106:8155:50"},"id":50},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","exportedSymbols":{"Context":[10481]},"id":10482,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10461,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:51"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":10462,"nodeType":"StructuredDocumentation","src":"111:496:51","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":10481,"linearizedBaseContracts":[10481],"name":"Context","nameLocation":"626:7:51","nodeType":"ContractDefinition","nodes":[{"body":{"id":10470,"nodeType":"Block","src":"702:34:51","statements":[{"expression":{"expression":{"id":10467,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:51","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:51","memberName":"sender","nodeType":"MemberAccess","src":"719:10:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10466,"id":10469,"nodeType":"Return","src":"712:17:51"}]},"id":10471,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:51","nodeType":"FunctionDefinition","parameters":{"id":10463,"nodeType":"ParameterList","parameters":[],"src":"659:2:51"},"returnParameters":{"id":10466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10471,"src":"693:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10464,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:51"},"scope":10481,"src":"640:96:51","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":10479,"nodeType":"Block","src":"809:32:51","statements":[{"expression":{"expression":{"id":10476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:51","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:51","memberName":"data","nodeType":"MemberAccess","src":"826:8:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":10475,"id":10478,"nodeType":"Return","src":"819:15:51"}]},"id":10480,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:51","nodeType":"FunctionDefinition","parameters":{"id":10472,"nodeType":"ParameterList","parameters":[],"src":"759:2:51"},"returnParameters":{"id":10475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10480,"src":"793:14:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10473,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:51"},"scope":10481,"src":"742:99:51","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":10482,"src":"608:235:51","usedErrors":[],"usedEvents":[]}],"src":"86:758:51"},"id":51},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[10541]},"id":10542,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10483,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"90:23:52"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":10484,"nodeType":"StructuredDocumentation","src":"115:1148:52","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":10541,"linearizedBaseContracts":[10541],"name":"StorageSlot","nameLocation":"1272:11:52","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":10487,"members":[{"constant":false,"id":10486,"mutability":"mutable","name":"value","nameLocation":"1327:5:52","nodeType":"VariableDeclaration","scope":10487,"src":"1319:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10485,"name":"address","nodeType":"ElementaryTypeName","src":"1319:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1297:11:52","nodeType":"StructDefinition","scope":10541,"src":"1290:49:52","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":10490,"members":[{"constant":false,"id":10489,"mutability":"mutable","name":"value","nameLocation":"1379:5:52","nodeType":"VariableDeclaration","scope":10490,"src":"1374:10:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10488,"name":"bool","nodeType":"ElementaryTypeName","src":"1374:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1352:11:52","nodeType":"StructDefinition","scope":10541,"src":"1345:46:52","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":10493,"members":[{"constant":false,"id":10492,"mutability":"mutable","name":"value","nameLocation":"1434:5:52","nodeType":"VariableDeclaration","scope":10493,"src":"1426:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1404:11:52","nodeType":"StructDefinition","scope":10541,"src":"1397:49:52","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":10496,"members":[{"constant":false,"id":10495,"mutability":"mutable","name":"value","nameLocation":"1489:5:52","nodeType":"VariableDeclaration","scope":10496,"src":"1481:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1459:11:52","nodeType":"StructDefinition","scope":10541,"src":"1452:49:52","visibility":"public"},{"body":{"id":10506,"nodeType":"Block","src":"1683:63:52","statements":[{"AST":{"nativeSrc":"1702:38:52","nodeType":"YulBlock","src":"1702:38:52","statements":[{"nativeSrc":"1716:14:52","nodeType":"YulAssignment","src":"1716:14:52","value":{"name":"slot","nativeSrc":"1726:4:52","nodeType":"YulIdentifier","src":"1726:4:52"},"variableNames":[{"name":"r.slot","nativeSrc":"1716:6:52","nodeType":"YulIdentifier","src":"1716:6:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10503,"isOffset":false,"isSlot":true,"src":"1716:6:52","suffix":"slot","valueSize":1},{"declaration":10499,"isOffset":false,"isSlot":false,"src":"1726:4:52","valueSize":1}],"id":10505,"nodeType":"InlineAssembly","src":"1693:47:52"}]},"documentation":{"id":10497,"nodeType":"StructuredDocumentation","src":"1507:87:52","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":10507,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1608:14:52","nodeType":"FunctionDefinition","parameters":{"id":10500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10499,"mutability":"mutable","name":"slot","nameLocation":"1631:4:52","nodeType":"VariableDeclaration","scope":10507,"src":"1623:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1622:14:52"},"returnParameters":{"id":10504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10503,"mutability":"mutable","name":"r","nameLocation":"1680:1:52","nodeType":"VariableDeclaration","scope":10507,"src":"1660:21:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10487_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":10502,"nodeType":"UserDefinedTypeName","pathNode":{"id":10501,"name":"AddressSlot","nameLocations":["1660:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":10487,"src":"1660:11:52"},"referencedDeclaration":10487,"src":"1660:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10487_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1659:23:52"},"scope":10541,"src":"1599:147:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10517,"nodeType":"Block","src":"1928:63:52","statements":[{"AST":{"nativeSrc":"1947:38:52","nodeType":"YulBlock","src":"1947:38:52","statements":[{"nativeSrc":"1961:14:52","nodeType":"YulAssignment","src":"1961:14:52","value":{"name":"slot","nativeSrc":"1971:4:52","nodeType":"YulIdentifier","src":"1971:4:52"},"variableNames":[{"name":"r.slot","nativeSrc":"1961:6:52","nodeType":"YulIdentifier","src":"1961:6:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10514,"isOffset":false,"isSlot":true,"src":"1961:6:52","suffix":"slot","valueSize":1},{"declaration":10510,"isOffset":false,"isSlot":false,"src":"1971:4:52","valueSize":1}],"id":10516,"nodeType":"InlineAssembly","src":"1938:47:52"}]},"documentation":{"id":10508,"nodeType":"StructuredDocumentation","src":"1752:87:52","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":10518,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"1853:14:52","nodeType":"FunctionDefinition","parameters":{"id":10511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10510,"mutability":"mutable","name":"slot","nameLocation":"1876:4:52","nodeType":"VariableDeclaration","scope":10518,"src":"1868:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1868:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1867:14:52"},"returnParameters":{"id":10515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10514,"mutability":"mutable","name":"r","nameLocation":"1925:1:52","nodeType":"VariableDeclaration","scope":10518,"src":"1905:21:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10490_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":10513,"nodeType":"UserDefinedTypeName","pathNode":{"id":10512,"name":"BooleanSlot","nameLocations":["1905:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":10490,"src":"1905:11:52"},"referencedDeclaration":10490,"src":"1905:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10490_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1904:23:52"},"scope":10541,"src":"1844:147:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10528,"nodeType":"Block","src":"2173:63:52","statements":[{"AST":{"nativeSrc":"2192:38:52","nodeType":"YulBlock","src":"2192:38:52","statements":[{"nativeSrc":"2206:14:52","nodeType":"YulAssignment","src":"2206:14:52","value":{"name":"slot","nativeSrc":"2216:4:52","nodeType":"YulIdentifier","src":"2216:4:52"},"variableNames":[{"name":"r.slot","nativeSrc":"2206:6:52","nodeType":"YulIdentifier","src":"2206:6:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10525,"isOffset":false,"isSlot":true,"src":"2206:6:52","suffix":"slot","valueSize":1},{"declaration":10521,"isOffset":false,"isSlot":false,"src":"2216:4:52","valueSize":1}],"id":10527,"nodeType":"InlineAssembly","src":"2183:47:52"}]},"documentation":{"id":10519,"nodeType":"StructuredDocumentation","src":"1997:87:52","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":10529,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2098:14:52","nodeType":"FunctionDefinition","parameters":{"id":10522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10521,"mutability":"mutable","name":"slot","nameLocation":"2121:4:52","nodeType":"VariableDeclaration","scope":10529,"src":"2113:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2113:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2112:14:52"},"returnParameters":{"id":10526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10525,"mutability":"mutable","name":"r","nameLocation":"2170:1:52","nodeType":"VariableDeclaration","scope":10529,"src":"2150:21:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$10493_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":10524,"nodeType":"UserDefinedTypeName","pathNode":{"id":10523,"name":"Bytes32Slot","nameLocations":["2150:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":10493,"src":"2150:11:52"},"referencedDeclaration":10493,"src":"2150:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$10493_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2149:23:52"},"scope":10541,"src":"2089:147:52","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10539,"nodeType":"Block","src":"2418:63:52","statements":[{"AST":{"nativeSrc":"2437:38:52","nodeType":"YulBlock","src":"2437:38:52","statements":[{"nativeSrc":"2451:14:52","nodeType":"YulAssignment","src":"2451:14:52","value":{"name":"slot","nativeSrc":"2461:4:52","nodeType":"YulIdentifier","src":"2461:4:52"},"variableNames":[{"name":"r.slot","nativeSrc":"2451:6:52","nodeType":"YulIdentifier","src":"2451:6:52"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10536,"isOffset":false,"isSlot":true,"src":"2451:6:52","suffix":"slot","valueSize":1},{"declaration":10532,"isOffset":false,"isSlot":false,"src":"2461:4:52","valueSize":1}],"id":10538,"nodeType":"InlineAssembly","src":"2428:47:52"}]},"documentation":{"id":10530,"nodeType":"StructuredDocumentation","src":"2242:87:52","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":10540,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2343:14:52","nodeType":"FunctionDefinition","parameters":{"id":10533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10532,"mutability":"mutable","name":"slot","nameLocation":"2366:4:52","nodeType":"VariableDeclaration","scope":10540,"src":"2358:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2358:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2357:14:52"},"returnParameters":{"id":10537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10536,"mutability":"mutable","name":"r","nameLocation":"2415:1:52","nodeType":"VariableDeclaration","scope":10540,"src":"2395:21:52","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$10496_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":10535,"nodeType":"UserDefinedTypeName","pathNode":{"id":10534,"name":"Uint256Slot","nameLocations":["2395:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":10496,"src":"2395:11:52"},"referencedDeclaration":10496,"src":"2395:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$10496_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2394:23:52"},"scope":10541,"src":"2334:147:52","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10542,"src":"1264:1219:52","usedErrors":[],"usedEvents":[]}],"src":"90:2394:52"},"id":52},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[10459],"ERC1967Proxy":[9475],"ERC1967Upgrade":[9793],"IBeacon":[9855],"IERC1822Proxiable":[9422],"OptimizedTransparentUpgradeableProxy":[10716],"Proxy":[9845],"StorageSlot":[10541]},"id":10717,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10543,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:53"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","id":10544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10717,"sourceUnit":9476,"src":"143:56:53","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10546,"name":"ERC1967Proxy","nameLocations":["1702:12:53"],"nodeType":"IdentifierPath","referencedDeclaration":9475,"src":"1702:12:53"},"id":10547,"nodeType":"InheritanceSpecifier","src":"1702:12:53"}],"canonicalName":"OptimizedTransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":10545,"nodeType":"StructuredDocumentation","src":"201:1451:53","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":10716,"linearizedBaseContracts":[10716,9475,9793,9845],"name":"OptimizedTransparentUpgradeableProxy","nameLocation":"1662:36:53","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10549,"mutability":"immutable","name":"_ADMIN","nameLocation":"1748:6:53","nodeType":"VariableDeclaration","scope":10716,"src":"1721:33:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10548,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":10596,"nodeType":"Block","src":"2106:369:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":10564,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9633,"src":"2123:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":10570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2164:21:53","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":10569,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2154:9:53","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:32:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2146:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10567,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:53","typeDescriptions":{}}},"id":10572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:41:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2190:1:53","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2146:45:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2138:7:53","typeDescriptions":{}}},"id":10575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:54:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2123:69:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10563,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2116:6:53","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:77:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10578,"nodeType":"ExpressionStatement","src":"2116:77:53"},{"expression":{"id":10581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10579,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10549,"src":"2203:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10580,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10554,"src":"2212:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2203:15:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10582,"nodeType":"ExpressionStatement","src":"2203:15:53"},{"assignments":[10584],"declarations":[{"constant":false,"id":10584,"mutability":"mutable","name":"slot","nameLocation":"2285:4:53","nodeType":"VariableDeclaration","scope":10596,"src":"2277:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2277:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10586,"initialValue":{"id":10585,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9633,"src":"2292:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2277:26:53"},{"AST":{"nativeSrc":"2378:44:53","nodeType":"YulBlock","src":"2378:44:53","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"2399:4:53","nodeType":"YulIdentifier","src":"2399:4:53"},{"name":"admin_","nativeSrc":"2405:6:53","nodeType":"YulIdentifier","src":"2405:6:53"}],"functionName":{"name":"sstore","nativeSrc":"2392:6:53","nodeType":"YulIdentifier","src":"2392:6:53"},"nativeSrc":"2392:20:53","nodeType":"YulFunctionCall","src":"2392:20:53"},"nativeSrc":"2392:20:53","nodeType":"YulExpressionStatement","src":"2392:20:53"}]},"evmVersion":"paris","externalReferences":[{"declaration":10554,"isOffset":false,"isSlot":false,"src":"2405:6:53","valueSize":1},{"declaration":10584,"isOffset":false,"isSlot":false,"src":"2399:4:53","valueSize":1}],"id":10587,"nodeType":"InlineAssembly","src":"2369:53:53"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":10591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2457: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":10590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2449:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10589,"name":"address","nodeType":"ElementaryTypeName","src":"2449:7:53","typeDescriptions":{}}},"id":10592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2449:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10593,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10554,"src":"2461:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10588,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"2436:12:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":10594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2436:32:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10595,"nodeType":"EmitStatement","src":"2431:37:53"}]},"documentation":{"id":10550,"nodeType":"StructuredDocumentation","src":"1761:210:53","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":10597,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10559,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10552,"src":"2091:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10560,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10556,"src":"2099:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":10561,"kind":"baseConstructorSpecifier","modifierName":{"id":10558,"name":"ERC1967Proxy","nameLocations":["2078:12:53"],"nodeType":"IdentifierPath","referencedDeclaration":9475,"src":"2078:12:53"},"nodeType":"ModifierInvocation","src":"2078:27:53"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10552,"mutability":"mutable","name":"_logic","nameLocation":"2005:6:53","nodeType":"VariableDeclaration","scope":10597,"src":"1997:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10551,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10554,"mutability":"mutable","name":"admin_","nameLocation":"2029:6:53","nodeType":"VariableDeclaration","scope":10597,"src":"2021:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10553,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10556,"mutability":"mutable","name":"_data","nameLocation":"2058:5:53","nodeType":"VariableDeclaration","scope":10597,"src":"2045:18:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10555,"name":"bytes","nodeType":"ElementaryTypeName","src":"2045:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1987:82:53"},"returnParameters":{"id":10562,"nodeType":"ParameterList","parameters":[],"src":"2106:0:53"},"scope":10716,"src":"1976:499:53","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":10612,"nodeType":"Block","src":"2635:115:53","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10600,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:53","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10602,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[10715],"referencedDeclaration":10715,"src":"2663:9:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:11:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:25:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10610,"nodeType":"Block","src":"2708:36:53","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10607,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"2722:9:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:11:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10609,"nodeType":"ExpressionStatement","src":"2722:11:53"}]},"id":10611,"nodeType":"IfStatement","src":"2645:99:53","trueBody":{"id":10606,"nodeType":"Block","src":"2676:26:53","statements":[{"id":10605,"nodeType":"PlaceholderStatement","src":"2690:1:53"}]}}]},"documentation":{"id":10598,"nodeType":"StructuredDocumentation","src":"2481:130:53","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":10613,"name":"ifAdmin","nameLocation":"2625:7:53","nodeType":"ModifierDefinition","parameters":{"id":10599,"nodeType":"ParameterList","parameters":[],"src":"2632:2:53"},"src":"2616:134:53","virtual":false,"visibility":"internal"},{"body":{"id":10626,"nodeType":"Block","src":"3251:37:53","statements":[{"expression":{"id":10624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10621,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"3261:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":10622,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[10715],"referencedDeclaration":10715,"src":"3270:9:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3270:11:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3261:20:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10625,"nodeType":"ExpressionStatement","src":"3261:20:53"}]},"documentation":{"id":10614,"nodeType":"StructuredDocumentation","src":"2756:431:53","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":10627,"implemented":true,"kind":"function","modifiers":[{"id":10617,"kind":"modifierInvocation","modifierName":{"id":10616,"name":"ifAdmin","nameLocations":["3218:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":10613,"src":"3218:7:53"},"nodeType":"ModifierInvocation","src":"3218:7:53"}],"name":"admin","nameLocation":"3201:5:53","nodeType":"FunctionDefinition","parameters":{"id":10615,"nodeType":"ParameterList","parameters":[],"src":"3206:2:53"},"returnParameters":{"id":10620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10619,"mutability":"mutable","name":"admin_","nameLocation":"3243:6:53","nodeType":"VariableDeclaration","scope":10627,"src":"3235:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10618,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3234:16:53"},"scope":10716,"src":"3192:96:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10640,"nodeType":"Block","src":"3825:52:53","statements":[{"expression":{"id":10638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10635,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10633,"src":"3835:15:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":10636,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[9474],"referencedDeclaration":9474,"src":"3853:15:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:17:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3835:35:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10639,"nodeType":"ExpressionStatement","src":"3835:35:53"}]},"documentation":{"id":10628,"nodeType":"StructuredDocumentation","src":"3294:449:53","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":10641,"implemented":true,"kind":"function","modifiers":[{"id":10631,"kind":"modifierInvocation","modifierName":{"id":10630,"name":"ifAdmin","nameLocations":["3783:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":10613,"src":"3783:7:53"},"nodeType":"ModifierInvocation","src":"3783:7:53"}],"name":"implementation","nameLocation":"3757:14:53","nodeType":"FunctionDefinition","parameters":{"id":10629,"nodeType":"ParameterList","parameters":[],"src":"3771:2:53"},"returnParameters":{"id":10634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10633,"mutability":"mutable","name":"implementation_","nameLocation":"3808:15:53","nodeType":"VariableDeclaration","scope":10641,"src":"3800:23:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10632,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3799:25:53"},"scope":10716,"src":"3748:129:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10658,"nodeType":"Block","src":"4100:71:53","statements":[{"expression":{"arguments":[{"id":10650,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10644,"src":"4128:17:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":10653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4153:2:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":10652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4147:5:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10651,"name":"bytes","nodeType":"ElementaryTypeName","src":"4147:5:53","typeDescriptions":{}}},"id":10654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:9:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":10655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4158:5:53","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":10649,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9576,"src":"4110:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":10656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4110:54:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10657,"nodeType":"ExpressionStatement","src":"4110:54:53"}]},"documentation":{"id":10642,"nodeType":"StructuredDocumentation","src":"3883:149:53","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":10659,"implemented":true,"kind":"function","modifiers":[{"id":10647,"kind":"modifierInvocation","modifierName":{"id":10646,"name":"ifAdmin","nameLocations":["4092:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":10613,"src":"4092:7:53"},"nodeType":"ModifierInvocation","src":"4092:7:53"}],"name":"upgradeTo","nameLocation":"4046:9:53","nodeType":"FunctionDefinition","parameters":{"id":10645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10644,"mutability":"mutable","name":"newImplementation","nameLocation":"4064:17:53","nodeType":"VariableDeclaration","scope":10659,"src":"4056:25:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10643,"name":"address","nodeType":"ElementaryTypeName","src":"4056:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4055:27:53"},"returnParameters":{"id":10648,"nodeType":"ParameterList","parameters":[],"src":"4100:0:53"},"scope":10716,"src":"4037:134:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10675,"nodeType":"Block","src":"4646:65:53","statements":[{"expression":{"arguments":[{"id":10670,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10662,"src":"4674:17:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10671,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10664,"src":"4693:4:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":10672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4699:4:53","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":10669,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9576,"src":"4656:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":10673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4656:48:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10674,"nodeType":"ExpressionStatement","src":"4656:48:53"}]},"documentation":{"id":10660,"nodeType":"StructuredDocumentation","src":"4177:365:53","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":10676,"implemented":true,"kind":"function","modifiers":[{"id":10667,"kind":"modifierInvocation","modifierName":{"id":10666,"name":"ifAdmin","nameLocations":["4638:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":10613,"src":"4638:7:53"},"nodeType":"ModifierInvocation","src":"4638:7:53"}],"name":"upgradeToAndCall","nameLocation":"4556:16:53","nodeType":"FunctionDefinition","parameters":{"id":10665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10662,"mutability":"mutable","name":"newImplementation","nameLocation":"4581:17:53","nodeType":"VariableDeclaration","scope":10676,"src":"4573:25:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10661,"name":"address","nodeType":"ElementaryTypeName","src":"4573:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10664,"mutability":"mutable","name":"data","nameLocation":"4615:4:53","nodeType":"VariableDeclaration","scope":10676,"src":"4600:19:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10663,"name":"bytes","nodeType":"ElementaryTypeName","src":"4600:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4572:48:53"},"returnParameters":{"id":10668,"nodeType":"ParameterList","parameters":[],"src":"4646:0:53"},"scope":10716,"src":"4547:164:53","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":10685,"nodeType":"Block","src":"4830:35:53","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10682,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[10715],"referencedDeclaration":10715,"src":"4847:9:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:11:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10681,"id":10684,"nodeType":"Return","src":"4840:18:53"}]},"documentation":{"id":10677,"nodeType":"StructuredDocumentation","src":"4717:50:53","text":" @dev Returns the current admin."},"id":10686,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4781:6:53","nodeType":"FunctionDefinition","parameters":{"id":10678,"nodeType":"ParameterList","parameters":[],"src":"4787:2:53"},"returnParameters":{"id":10681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10686,"src":"4821:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10679,"name":"address","nodeType":"ElementaryTypeName","src":"4821:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4820:9:53"},"scope":10716,"src":"4772:93:53","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[9844],"body":{"id":10705,"nodeType":"Block","src":"5039:154:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10692,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5057:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5061:6:53","memberName":"sender","nodeType":"MemberAccess","src":"5057:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10694,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[10715],"referencedDeclaration":10715,"src":"5071:9:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5071:11:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5057:25:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":10697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5084:68:53","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":10691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5049:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5049:104:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10699,"nodeType":"ExpressionStatement","src":"5049:104:53"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10700,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5163:5:53","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OptimizedTransparentUpgradeableProxy_$10716_$","typeString":"type(contract super OptimizedTransparentUpgradeableProxy)"}},"id":10702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5169:15:53","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":9844,"src":"5163:21:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:23:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10704,"nodeType":"ExpressionStatement","src":"5163:23:53"}]},"documentation":{"id":10687,"nodeType":"StructuredDocumentation","src":"4871:110:53","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":10706,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4995:15:53","nodeType":"FunctionDefinition","overrides":{"id":10689,"nodeType":"OverrideSpecifier","overrides":[],"src":"5030:8:53"},"parameters":{"id":10688,"nodeType":"ParameterList","parameters":[],"src":"5010:2:53"},"returnParameters":{"id":10690,"nodeType":"ParameterList","parameters":[],"src":"5039:0:53"},"scope":10716,"src":"4986:207:53","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[9653],"body":{"id":10714,"nodeType":"Block","src":"5269:30:53","statements":[{"expression":{"id":10712,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10549,"src":"5286:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10711,"id":10713,"nodeType":"Return","src":"5279:13:53"}]},"id":10715,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"5208:9:53","nodeType":"FunctionDefinition","overrides":{"id":10708,"nodeType":"OverrideSpecifier","overrides":[],"src":"5242:8:53"},"parameters":{"id":10707,"nodeType":"ParameterList","parameters":[],"src":"5217:2:53"},"returnParameters":{"id":10711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10715,"src":"5260:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10709,"name":"address","nodeType":"ElementaryTypeName","src":"5260:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5259:9:53"},"scope":10716,"src":"5199:100:53","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":10717,"src":"1653:3648:53","usedErrors":[],"usedEvents":[9494,9640,9705]}],"src":"118:5184:53"},"id":53}},"contracts":{"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol":{"BytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122016c943e260452a196bf46ff166d59596b572e9393a6dbf3c7b284a2e48b83c3d64736f6c63430008190033","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 AND 0xC9 NUMBER 0xE2 PUSH1 0x45 0x2A NOT PUSH12 0xF46FF166D59596B572E9393A PUSH14 0xBF3C7B284A2E48B83C3D64736F6C PUSH4 0x43000819 STOP CALLER ","sourceMap":"369:18622:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:18622:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122016c943e260452a196bf46ff166d59596b572e9393a6dbf3c7b284a2e48b83c3d64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 AND 0xC9 NUMBER 0xE2 PUSH1 0x45 0x2A NOT PUSH12 0xF46FF166D59596B572E9393A PUSH14 0xBF3C7B284A2E48B83C3D64736F6C PUSH4 0x43000819 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\":{\"enabled\":true,\"runs\":10000},\"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":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201541fd585a298da9c0ad80d598c8564f9d308cdd6275ac5edae76fc8393f3fe164736f6c63430008190033","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 ISZERO COINBASE REVERT PC GAS 0x29 DUP14 0xA9 0xC0 0xAD DUP1 0xD5 SWAP9 0xC8 JUMP 0x4F SWAP14 ADDRESS DUP13 0xDD PUSH3 0x75AC5E 0xDA 0xE7 PUSH16 0xC8393F3FE164736F6C63430008190033 ","sourceMap":"72:5387:1:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72:5387:1;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201541fd585a298da9c0ad80d598c8564f9d308cdd6275ac5edae76fc8393f3fe164736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO COINBASE REVERT PC GAS 0x29 DUP14 0xA9 0xC0 0xAD DUP1 0xD5 SWAP9 0xC8 JUMP 0x4F SWAP14 ADDRESS DUP13 0xDD PUSH3 0x75AC5E 0xDA 0xE7 PUSH16 0xC8393F3FE164736F6C63430008190033 ","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\":{\"enabled\":true,\"runs\":10000},\"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 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":{"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 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\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":\"LzApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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.7.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 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\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"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":4075,"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 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":{"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 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\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":\"NonblockingLzApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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        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\":\"0xf4bd9e0ecfa4eb18e7305eb66da44c8a4610c3d5afeaf6a3b44c4bf4b7169b40\",\"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.7.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 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\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"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":4075,"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\":{\"enabled\":true,\"runs\":10000},\"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\":{\"enabled\":true,\"runs\":10000},\"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\":{\"enabled\":true,\"runs\":10000},\"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":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e75113d058fd19488ad94aaf72d4a244f12f3381834d39b715f0db84424712264736f6c63430008190033","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 PUSH22 0x113D058FD19488AD94AAF72D4A244F12F3381834D39B PUSH18 0x5F0DB84424712264736F6C63430008190033 ","sourceMap":"98:3167:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;98:3167:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e75113d058fd19488ad94aaf72d4a244f12f3381834d39b715f0db84424712264736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E PUSH22 0x113D058FD19488AD94AAF72D4A244F12F3381834D39B PUSH18 0x5F0DB84424712264736F6C63430008190033 ","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\":{\"enabled\":true,\"runs\":10000},\"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":null,"id":1471,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":308,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"array_dataslot_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":431,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":512,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":373,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":351,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3279:54","nodeType":"YulBlock","src":"0:3279:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"94:196:54","nodeType":"YulBlock","src":"94:196:54","statements":[{"body":{"nativeSrc":"140:16:54","nodeType":"YulBlock","src":"140:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"149:1:54","nodeType":"YulLiteral","src":"149:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"152:1:54","nodeType":"YulLiteral","src":"152:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"142:6:54","nodeType":"YulIdentifier","src":"142:6:54"},"nativeSrc":"142:12:54","nodeType":"YulFunctionCall","src":"142:12:54"},"nativeSrc":"142:12:54","nodeType":"YulExpressionStatement","src":"142:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"115:7:54","nodeType":"YulIdentifier","src":"115:7:54"},{"name":"headStart","nativeSrc":"124:9:54","nodeType":"YulIdentifier","src":"124:9:54"}],"functionName":{"name":"sub","nativeSrc":"111:3:54","nodeType":"YulIdentifier","src":"111:3:54"},"nativeSrc":"111:23:54","nodeType":"YulFunctionCall","src":"111:23:54"},{"kind":"number","nativeSrc":"136:2:54","nodeType":"YulLiteral","src":"136:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"107:3:54","nodeType":"YulIdentifier","src":"107:3:54"},"nativeSrc":"107:32:54","nodeType":"YulFunctionCall","src":"107:32:54"},"nativeSrc":"104:52:54","nodeType":"YulIf","src":"104:52:54"},{"nativeSrc":"165:29:54","nodeType":"YulVariableDeclaration","src":"165:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"184:9:54","nodeType":"YulIdentifier","src":"184:9:54"}],"functionName":{"name":"mload","nativeSrc":"178:5:54","nodeType":"YulIdentifier","src":"178:5:54"},"nativeSrc":"178:16:54","nodeType":"YulFunctionCall","src":"178:16:54"},"variables":[{"name":"value","nativeSrc":"169:5:54","nodeType":"YulTypedName","src":"169:5:54","type":""}]},{"body":{"nativeSrc":"244:16:54","nodeType":"YulBlock","src":"244:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"253:1:54","nodeType":"YulLiteral","src":"253:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"256:1:54","nodeType":"YulLiteral","src":"256:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"246:6:54","nodeType":"YulIdentifier","src":"246:6:54"},"nativeSrc":"246:12:54","nodeType":"YulFunctionCall","src":"246:12:54"},"nativeSrc":"246:12:54","nodeType":"YulExpressionStatement","src":"246:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"216:5:54","nodeType":"YulIdentifier","src":"216:5:54"},{"arguments":[{"name":"value","nativeSrc":"227:5:54","nodeType":"YulIdentifier","src":"227:5:54"},{"kind":"number","nativeSrc":"234:6:54","nodeType":"YulLiteral","src":"234:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"223:3:54","nodeType":"YulIdentifier","src":"223:3:54"},"nativeSrc":"223:18:54","nodeType":"YulFunctionCall","src":"223:18:54"}],"functionName":{"name":"eq","nativeSrc":"213:2:54","nodeType":"YulIdentifier","src":"213:2:54"},"nativeSrc":"213:29:54","nodeType":"YulFunctionCall","src":"213:29:54"}],"functionName":{"name":"iszero","nativeSrc":"206:6:54","nodeType":"YulIdentifier","src":"206:6:54"},"nativeSrc":"206:37:54","nodeType":"YulFunctionCall","src":"206:37:54"},"nativeSrc":"203:57:54","nodeType":"YulIf","src":"203:57:54"},{"nativeSrc":"269:15:54","nodeType":"YulAssignment","src":"269:15:54","value":{"name":"value","nativeSrc":"279:5:54","nodeType":"YulIdentifier","src":"279:5:54"},"variableNames":[{"name":"value0","nativeSrc":"269:6:54","nodeType":"YulIdentifier","src":"269:6:54"}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nativeSrc":"14:276:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60:9:54","nodeType":"YulTypedName","src":"60:9:54","type":""},{"name":"dataEnd","nativeSrc":"71:7:54","nodeType":"YulTypedName","src":"71:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"83:6:54","nodeType":"YulTypedName","src":"83:6:54","type":""}],"src":"14:276:54"},{"body":{"nativeSrc":"327:95:54","nodeType":"YulBlock","src":"327:95:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"344:1:54","nodeType":"YulLiteral","src":"344:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"351:3:54","nodeType":"YulLiteral","src":"351:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"356:10:54","nodeType":"YulLiteral","src":"356:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"347:3:54","nodeType":"YulIdentifier","src":"347:3:54"},"nativeSrc":"347:20:54","nodeType":"YulFunctionCall","src":"347:20:54"}],"functionName":{"name":"mstore","nativeSrc":"337:6:54","nodeType":"YulIdentifier","src":"337:6:54"},"nativeSrc":"337:31:54","nodeType":"YulFunctionCall","src":"337:31:54"},"nativeSrc":"337:31:54","nodeType":"YulExpressionStatement","src":"337:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384:1:54","nodeType":"YulLiteral","src":"384:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"387:4:54","nodeType":"YulLiteral","src":"387:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"377:6:54","nodeType":"YulIdentifier","src":"377:6:54"},"nativeSrc":"377:15:54","nodeType":"YulFunctionCall","src":"377:15:54"},"nativeSrc":"377:15:54","nodeType":"YulExpressionStatement","src":"377:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"408:1:54","nodeType":"YulLiteral","src":"408:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"411:4:54","nodeType":"YulLiteral","src":"411:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"401:6:54","nodeType":"YulIdentifier","src":"401:6:54"},"nativeSrc":"401:15:54","nodeType":"YulFunctionCall","src":"401:15:54"},"nativeSrc":"401:15:54","nodeType":"YulExpressionStatement","src":"401:15:54"}]},"name":"panic_error_0x41","nativeSrc":"295:127:54","nodeType":"YulFunctionDefinition","src":"295:127:54"},{"body":{"nativeSrc":"482:325:54","nodeType":"YulBlock","src":"482:325:54","statements":[{"nativeSrc":"492:22:54","nodeType":"YulAssignment","src":"492:22:54","value":{"arguments":[{"kind":"number","nativeSrc":"506:1:54","nodeType":"YulLiteral","src":"506:1:54","type":"","value":"1"},{"name":"data","nativeSrc":"509:4:54","nodeType":"YulIdentifier","src":"509:4:54"}],"functionName":{"name":"shr","nativeSrc":"502:3:54","nodeType":"YulIdentifier","src":"502:3:54"},"nativeSrc":"502:12:54","nodeType":"YulFunctionCall","src":"502:12:54"},"variableNames":[{"name":"length","nativeSrc":"492:6:54","nodeType":"YulIdentifier","src":"492:6:54"}]},{"nativeSrc":"523:38:54","nodeType":"YulVariableDeclaration","src":"523:38:54","value":{"arguments":[{"name":"data","nativeSrc":"553:4:54","nodeType":"YulIdentifier","src":"553:4:54"},{"kind":"number","nativeSrc":"559:1:54","nodeType":"YulLiteral","src":"559:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"549:3:54","nodeType":"YulIdentifier","src":"549:3:54"},"nativeSrc":"549:12:54","nodeType":"YulFunctionCall","src":"549:12:54"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"527:18:54","nodeType":"YulTypedName","src":"527:18:54","type":""}]},{"body":{"nativeSrc":"600:31:54","nodeType":"YulBlock","src":"600:31:54","statements":[{"nativeSrc":"602:27:54","nodeType":"YulAssignment","src":"602:27:54","value":{"arguments":[{"name":"length","nativeSrc":"616:6:54","nodeType":"YulIdentifier","src":"616:6:54"},{"kind":"number","nativeSrc":"624:4:54","nodeType":"YulLiteral","src":"624:4:54","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"612:3:54","nodeType":"YulIdentifier","src":"612:3:54"},"nativeSrc":"612:17:54","nodeType":"YulFunctionCall","src":"612:17:54"},"variableNames":[{"name":"length","nativeSrc":"602:6:54","nodeType":"YulIdentifier","src":"602:6:54"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"580:18:54","nodeType":"YulIdentifier","src":"580:18:54"}],"functionName":{"name":"iszero","nativeSrc":"573:6:54","nodeType":"YulIdentifier","src":"573:6:54"},"nativeSrc":"573:26:54","nodeType":"YulFunctionCall","src":"573:26:54"},"nativeSrc":"570:61:54","nodeType":"YulIf","src":"570:61:54"},{"body":{"nativeSrc":"690:111:54","nodeType":"YulBlock","src":"690:111:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"711:1:54","nodeType":"YulLiteral","src":"711:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"718:3:54","nodeType":"YulLiteral","src":"718:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"723:10:54","nodeType":"YulLiteral","src":"723:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"714:3:54","nodeType":"YulIdentifier","src":"714:3:54"},"nativeSrc":"714:20:54","nodeType":"YulFunctionCall","src":"714:20:54"}],"functionName":{"name":"mstore","nativeSrc":"704:6:54","nodeType":"YulIdentifier","src":"704:6:54"},"nativeSrc":"704:31:54","nodeType":"YulFunctionCall","src":"704:31:54"},"nativeSrc":"704:31:54","nodeType":"YulExpressionStatement","src":"704:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"755:1:54","nodeType":"YulLiteral","src":"755:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"758:4:54","nodeType":"YulLiteral","src":"758:4:54","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"748:6:54","nodeType":"YulIdentifier","src":"748:6:54"},"nativeSrc":"748:15:54","nodeType":"YulFunctionCall","src":"748:15:54"},"nativeSrc":"748:15:54","nodeType":"YulExpressionStatement","src":"748:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"783:1:54","nodeType":"YulLiteral","src":"783:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"786:4:54","nodeType":"YulLiteral","src":"786:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"776:6:54","nodeType":"YulIdentifier","src":"776:6:54"},"nativeSrc":"776:15:54","nodeType":"YulFunctionCall","src":"776:15:54"},"nativeSrc":"776:15:54","nodeType":"YulExpressionStatement","src":"776:15:54"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"646:18:54","nodeType":"YulIdentifier","src":"646:18:54"},{"arguments":[{"name":"length","nativeSrc":"669:6:54","nodeType":"YulIdentifier","src":"669:6:54"},{"kind":"number","nativeSrc":"677:2:54","nodeType":"YulLiteral","src":"677:2:54","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"666:2:54","nodeType":"YulIdentifier","src":"666:2:54"},"nativeSrc":"666:14:54","nodeType":"YulFunctionCall","src":"666:14:54"}],"functionName":{"name":"eq","nativeSrc":"643:2:54","nodeType":"YulIdentifier","src":"643:2:54"},"nativeSrc":"643:38:54","nodeType":"YulFunctionCall","src":"643:38:54"},"nativeSrc":"640:161:54","nodeType":"YulIf","src":"640:161:54"}]},"name":"extract_byte_array_length","nativeSrc":"427:380:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"462:4:54","nodeType":"YulTypedName","src":"462:4:54","type":""}],"returnVariables":[{"name":"length","nativeSrc":"471:6:54","nodeType":"YulTypedName","src":"471:6:54","type":""}],"src":"427:380:54"},{"body":{"nativeSrc":"867:65:54","nodeType":"YulBlock","src":"867:65:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"884:1:54","nodeType":"YulLiteral","src":"884:1:54","type":"","value":"0"},{"name":"ptr","nativeSrc":"887:3:54","nodeType":"YulIdentifier","src":"887:3:54"}],"functionName":{"name":"mstore","nativeSrc":"877:6:54","nodeType":"YulIdentifier","src":"877:6:54"},"nativeSrc":"877:14:54","nodeType":"YulFunctionCall","src":"877:14:54"},"nativeSrc":"877:14:54","nodeType":"YulExpressionStatement","src":"877:14:54"},{"nativeSrc":"900:26:54","nodeType":"YulAssignment","src":"900:26:54","value":{"arguments":[{"kind":"number","nativeSrc":"918:1:54","nodeType":"YulLiteral","src":"918:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"921:4:54","nodeType":"YulLiteral","src":"921:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"908:9:54","nodeType":"YulIdentifier","src":"908:9:54"},"nativeSrc":"908:18:54","nodeType":"YulFunctionCall","src":"908:18:54"},"variableNames":[{"name":"data","nativeSrc":"900:4:54","nodeType":"YulIdentifier","src":"900:4:54"}]}]},"name":"array_dataslot_bytes_storage","nativeSrc":"812:120:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"850:3:54","nodeType":"YulTypedName","src":"850:3:54","type":""}],"returnVariables":[{"name":"data","nativeSrc":"858:4:54","nodeType":"YulTypedName","src":"858:4:54","type":""}],"src":"812:120:54"},{"body":{"nativeSrc":"1017:462:54","nodeType":"YulBlock","src":"1017:462:54","statements":[{"body":{"nativeSrc":"1050:423:54","nodeType":"YulBlock","src":"1050:423:54","statements":[{"nativeSrc":"1064:11:54","nodeType":"YulVariableDeclaration","src":"1064:11:54","value":{"kind":"number","nativeSrc":"1074:1:54","nodeType":"YulLiteral","src":"1074:1:54","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"1068:2:54","nodeType":"YulTypedName","src":"1068:2:54","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1095:1:54","nodeType":"YulLiteral","src":"1095:1:54","type":"","value":"0"},{"name":"array","nativeSrc":"1098:5:54","nodeType":"YulIdentifier","src":"1098:5:54"}],"functionName":{"name":"mstore","nativeSrc":"1088:6:54","nodeType":"YulIdentifier","src":"1088:6:54"},"nativeSrc":"1088:16:54","nodeType":"YulFunctionCall","src":"1088:16:54"},"nativeSrc":"1088:16:54","nodeType":"YulExpressionStatement","src":"1088:16:54"},{"nativeSrc":"1117:30:54","nodeType":"YulVariableDeclaration","src":"1117:30:54","value":{"arguments":[{"kind":"number","nativeSrc":"1139:1:54","nodeType":"YulLiteral","src":"1139:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1142:4:54","nodeType":"YulLiteral","src":"1142:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"1129:9:54","nodeType":"YulIdentifier","src":"1129:9:54"},"nativeSrc":"1129:18:54","nodeType":"YulFunctionCall","src":"1129:18:54"},"variables":[{"name":"data","nativeSrc":"1121:4:54","nodeType":"YulTypedName","src":"1121:4:54","type":""}]},{"nativeSrc":"1160:57:54","nodeType":"YulVariableDeclaration","src":"1160:57:54","value":{"arguments":[{"name":"data","nativeSrc":"1183:4:54","nodeType":"YulIdentifier","src":"1183:4:54"},{"arguments":[{"kind":"number","nativeSrc":"1193:1:54","nodeType":"YulLiteral","src":"1193:1:54","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"1200:10:54","nodeType":"YulIdentifier","src":"1200:10:54"},{"kind":"number","nativeSrc":"1212:2:54","nodeType":"YulLiteral","src":"1212:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1196:3:54","nodeType":"YulIdentifier","src":"1196:3:54"},"nativeSrc":"1196:19:54","nodeType":"YulFunctionCall","src":"1196:19:54"}],"functionName":{"name":"shr","nativeSrc":"1189:3:54","nodeType":"YulIdentifier","src":"1189:3:54"},"nativeSrc":"1189:27:54","nodeType":"YulFunctionCall","src":"1189:27:54"}],"functionName":{"name":"add","nativeSrc":"1179:3:54","nodeType":"YulIdentifier","src":"1179:3:54"},"nativeSrc":"1179:38:54","nodeType":"YulFunctionCall","src":"1179:38:54"},"variables":[{"name":"deleteStart","nativeSrc":"1164:11:54","nodeType":"YulTypedName","src":"1164:11:54","type":""}]},{"body":{"nativeSrc":"1254:23:54","nodeType":"YulBlock","src":"1254:23:54","statements":[{"nativeSrc":"1256:19:54","nodeType":"YulAssignment","src":"1256:19:54","value":{"name":"data","nativeSrc":"1271:4:54","nodeType":"YulIdentifier","src":"1271:4:54"},"variableNames":[{"name":"deleteStart","nativeSrc":"1256:11:54","nodeType":"YulIdentifier","src":"1256:11:54"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"1236:10:54","nodeType":"YulIdentifier","src":"1236:10:54"},{"kind":"number","nativeSrc":"1248:4:54","nodeType":"YulLiteral","src":"1248:4:54","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"1233:2:54","nodeType":"YulIdentifier","src":"1233:2:54"},"nativeSrc":"1233:20:54","nodeType":"YulFunctionCall","src":"1233:20:54"},"nativeSrc":"1230:47:54","nodeType":"YulIf","src":"1230:47:54"},{"nativeSrc":"1290:41:54","nodeType":"YulVariableDeclaration","src":"1290:41:54","value":{"arguments":[{"name":"data","nativeSrc":"1304:4:54","nodeType":"YulIdentifier","src":"1304:4:54"},{"arguments":[{"kind":"number","nativeSrc":"1314:1:54","nodeType":"YulLiteral","src":"1314:1:54","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"1321:3:54","nodeType":"YulIdentifier","src":"1321:3:54"},{"kind":"number","nativeSrc":"1326:2:54","nodeType":"YulLiteral","src":"1326:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1317:3:54","nodeType":"YulIdentifier","src":"1317:3:54"},"nativeSrc":"1317:12:54","nodeType":"YulFunctionCall","src":"1317:12:54"}],"functionName":{"name":"shr","nativeSrc":"1310:3:54","nodeType":"YulIdentifier","src":"1310:3:54"},"nativeSrc":"1310:20:54","nodeType":"YulFunctionCall","src":"1310:20:54"}],"functionName":{"name":"add","nativeSrc":"1300:3:54","nodeType":"YulIdentifier","src":"1300:3:54"},"nativeSrc":"1300:31:54","nodeType":"YulFunctionCall","src":"1300:31:54"},"variables":[{"name":"_2","nativeSrc":"1294:2:54","nodeType":"YulTypedName","src":"1294:2:54","type":""}]},{"nativeSrc":"1344:24:54","nodeType":"YulVariableDeclaration","src":"1344:24:54","value":{"name":"deleteStart","nativeSrc":"1357:11:54","nodeType":"YulIdentifier","src":"1357:11:54"},"variables":[{"name":"start","nativeSrc":"1348:5:54","nodeType":"YulTypedName","src":"1348:5:54","type":""}]},{"body":{"nativeSrc":"1442:21:54","nodeType":"YulBlock","src":"1442:21:54","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"1451:5:54","nodeType":"YulIdentifier","src":"1451:5:54"},{"name":"_1","nativeSrc":"1458:2:54","nodeType":"YulIdentifier","src":"1458:2:54"}],"functionName":{"name":"sstore","nativeSrc":"1444:6:54","nodeType":"YulIdentifier","src":"1444:6:54"},"nativeSrc":"1444:17:54","nodeType":"YulFunctionCall","src":"1444:17:54"},"nativeSrc":"1444:17:54","nodeType":"YulExpressionStatement","src":"1444:17:54"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"1392:5:54","nodeType":"YulIdentifier","src":"1392:5:54"},{"name":"_2","nativeSrc":"1399:2:54","nodeType":"YulIdentifier","src":"1399:2:54"}],"functionName":{"name":"lt","nativeSrc":"1389:2:54","nodeType":"YulIdentifier","src":"1389:2:54"},"nativeSrc":"1389:13:54","nodeType":"YulFunctionCall","src":"1389:13:54"},"nativeSrc":"1381:82:54","nodeType":"YulForLoop","post":{"nativeSrc":"1403:26:54","nodeType":"YulBlock","src":"1403:26:54","statements":[{"nativeSrc":"1405:22:54","nodeType":"YulAssignment","src":"1405:22:54","value":{"arguments":[{"name":"start","nativeSrc":"1418:5:54","nodeType":"YulIdentifier","src":"1418:5:54"},{"kind":"number","nativeSrc":"1425:1:54","nodeType":"YulLiteral","src":"1425:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1414:3:54","nodeType":"YulIdentifier","src":"1414:3:54"},"nativeSrc":"1414:13:54","nodeType":"YulFunctionCall","src":"1414:13:54"},"variableNames":[{"name":"start","nativeSrc":"1405:5:54","nodeType":"YulIdentifier","src":"1405:5:54"}]}]},"pre":{"nativeSrc":"1385:3:54","nodeType":"YulBlock","src":"1385:3:54","statements":[]},"src":"1381:82:54"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"1033:3:54","nodeType":"YulIdentifier","src":"1033:3:54"},{"kind":"number","nativeSrc":"1038:2:54","nodeType":"YulLiteral","src":"1038:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"1030:2:54","nodeType":"YulIdentifier","src":"1030:2:54"},"nativeSrc":"1030:11:54","nodeType":"YulFunctionCall","src":"1030:11:54"},"nativeSrc":"1027:446:54","nodeType":"YulIf","src":"1027:446:54"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"937:542:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"989:5:54","nodeType":"YulTypedName","src":"989:5:54","type":""},{"name":"len","nativeSrc":"996:3:54","nodeType":"YulTypedName","src":"996:3:54","type":""},{"name":"startIndex","nativeSrc":"1001:10:54","nodeType":"YulTypedName","src":"1001:10:54","type":""}],"src":"937:542:54"},{"body":{"nativeSrc":"1569:81:54","nodeType":"YulBlock","src":"1569:81:54","statements":[{"nativeSrc":"1579:65:54","nodeType":"YulAssignment","src":"1579:65:54","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"1594:4:54","nodeType":"YulIdentifier","src":"1594:4:54"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1612:1:54","nodeType":"YulLiteral","src":"1612:1:54","type":"","value":"3"},{"name":"len","nativeSrc":"1615:3:54","nodeType":"YulIdentifier","src":"1615:3:54"}],"functionName":{"name":"shl","nativeSrc":"1608:3:54","nodeType":"YulIdentifier","src":"1608:3:54"},"nativeSrc":"1608:11:54","nodeType":"YulFunctionCall","src":"1608:11:54"},{"arguments":[{"kind":"number","nativeSrc":"1625:1:54","nodeType":"YulLiteral","src":"1625:1:54","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"1621:3:54","nodeType":"YulIdentifier","src":"1621:3:54"},"nativeSrc":"1621:6:54","nodeType":"YulFunctionCall","src":"1621:6:54"}],"functionName":{"name":"shr","nativeSrc":"1604:3:54","nodeType":"YulIdentifier","src":"1604:3:54"},"nativeSrc":"1604:24:54","nodeType":"YulFunctionCall","src":"1604:24:54"}],"functionName":{"name":"not","nativeSrc":"1600:3:54","nodeType":"YulIdentifier","src":"1600:3:54"},"nativeSrc":"1600:29:54","nodeType":"YulFunctionCall","src":"1600:29:54"}],"functionName":{"name":"and","nativeSrc":"1590:3:54","nodeType":"YulIdentifier","src":"1590:3:54"},"nativeSrc":"1590:40:54","nodeType":"YulFunctionCall","src":"1590:40:54"},{"arguments":[{"kind":"number","nativeSrc":"1636:1:54","nodeType":"YulLiteral","src":"1636:1:54","type":"","value":"1"},{"name":"len","nativeSrc":"1639:3:54","nodeType":"YulIdentifier","src":"1639:3:54"}],"functionName":{"name":"shl","nativeSrc":"1632:3:54","nodeType":"YulIdentifier","src":"1632:3:54"},"nativeSrc":"1632:11:54","nodeType":"YulFunctionCall","src":"1632:11:54"}],"functionName":{"name":"or","nativeSrc":"1587:2:54","nodeType":"YulIdentifier","src":"1587:2:54"},"nativeSrc":"1587:57:54","nodeType":"YulFunctionCall","src":"1587:57:54"},"variableNames":[{"name":"used","nativeSrc":"1579:4:54","nodeType":"YulIdentifier","src":"1579:4:54"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"1484:166:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1546:4:54","nodeType":"YulTypedName","src":"1546:4:54","type":""},{"name":"len","nativeSrc":"1552:3:54","nodeType":"YulTypedName","src":"1552:3:54","type":""}],"returnVariables":[{"name":"used","nativeSrc":"1560:4:54","nodeType":"YulTypedName","src":"1560:4:54","type":""}],"src":"1484:166:54"},{"body":{"nativeSrc":"1749:1247:54","nodeType":"YulBlock","src":"1749:1247:54","statements":[{"nativeSrc":"1759:24:54","nodeType":"YulVariableDeclaration","src":"1759:24:54","value":{"arguments":[{"name":"src","nativeSrc":"1779:3:54","nodeType":"YulIdentifier","src":"1779:3:54"}],"functionName":{"name":"mload","nativeSrc":"1773:5:54","nodeType":"YulIdentifier","src":"1773:5:54"},"nativeSrc":"1773:10:54","nodeType":"YulFunctionCall","src":"1773:10:54"},"variables":[{"name":"newLen","nativeSrc":"1763:6:54","nodeType":"YulTypedName","src":"1763:6:54","type":""}]},{"body":{"nativeSrc":"1826:22:54","nodeType":"YulBlock","src":"1826:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1828:16:54","nodeType":"YulIdentifier","src":"1828:16:54"},"nativeSrc":"1828:18:54","nodeType":"YulFunctionCall","src":"1828:18:54"},"nativeSrc":"1828:18:54","nodeType":"YulExpressionStatement","src":"1828:18:54"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"1798:6:54","nodeType":"YulIdentifier","src":"1798:6:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1814:2:54","nodeType":"YulLiteral","src":"1814:2:54","type":"","value":"64"},{"kind":"number","nativeSrc":"1818:1:54","nodeType":"YulLiteral","src":"1818:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1810:3:54","nodeType":"YulIdentifier","src":"1810:3:54"},"nativeSrc":"1810:10:54","nodeType":"YulFunctionCall","src":"1810:10:54"},{"kind":"number","nativeSrc":"1822:1:54","nodeType":"YulLiteral","src":"1822:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1806:3:54","nodeType":"YulIdentifier","src":"1806:3:54"},"nativeSrc":"1806:18:54","nodeType":"YulFunctionCall","src":"1806:18:54"}],"functionName":{"name":"gt","nativeSrc":"1795:2:54","nodeType":"YulIdentifier","src":"1795:2:54"},"nativeSrc":"1795:30:54","nodeType":"YulFunctionCall","src":"1795:30:54"},"nativeSrc":"1792:56:54","nodeType":"YulIf","src":"1792:56:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"1900:4:54","nodeType":"YulIdentifier","src":"1900:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"1938:4:54","nodeType":"YulIdentifier","src":"1938:4:54"}],"functionName":{"name":"sload","nativeSrc":"1932:5:54","nodeType":"YulIdentifier","src":"1932:5:54"},"nativeSrc":"1932:11:54","nodeType":"YulFunctionCall","src":"1932:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"1906:25:54","nodeType":"YulIdentifier","src":"1906:25:54"},"nativeSrc":"1906:38:54","nodeType":"YulFunctionCall","src":"1906:38:54"},{"name":"newLen","nativeSrc":"1946:6:54","nodeType":"YulIdentifier","src":"1946:6:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"1857:42:54","nodeType":"YulIdentifier","src":"1857:42:54"},"nativeSrc":"1857:96:54","nodeType":"YulFunctionCall","src":"1857:96:54"},"nativeSrc":"1857:96:54","nodeType":"YulExpressionStatement","src":"1857:96:54"},{"nativeSrc":"1962:18:54","nodeType":"YulVariableDeclaration","src":"1962:18:54","value":{"kind":"number","nativeSrc":"1979:1:54","nodeType":"YulLiteral","src":"1979:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"1966:9:54","nodeType":"YulTypedName","src":"1966:9:54","type":""}]},{"nativeSrc":"1989:23:54","nodeType":"YulVariableDeclaration","src":"1989:23:54","value":{"kind":"number","nativeSrc":"2008:4:54","nodeType":"YulLiteral","src":"2008:4:54","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"1993:11:54","nodeType":"YulTypedName","src":"1993:11:54","type":""}]},{"nativeSrc":"2021:17:54","nodeType":"YulAssignment","src":"2021:17:54","value":{"kind":"number","nativeSrc":"2034:4:54","nodeType":"YulLiteral","src":"2034:4:54","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"2021:9:54","nodeType":"YulIdentifier","src":"2021:9:54"}]},{"cases":[{"body":{"nativeSrc":"2084:655:54","nodeType":"YulBlock","src":"2084:655:54","statements":[{"nativeSrc":"2098:35:54","nodeType":"YulVariableDeclaration","src":"2098:35:54","value":{"arguments":[{"name":"newLen","nativeSrc":"2117:6:54","nodeType":"YulIdentifier","src":"2117:6:54"},{"arguments":[{"kind":"number","nativeSrc":"2129:2:54","nodeType":"YulLiteral","src":"2129:2:54","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2125:3:54","nodeType":"YulIdentifier","src":"2125:3:54"},"nativeSrc":"2125:7:54","nodeType":"YulFunctionCall","src":"2125:7:54"}],"functionName":{"name":"and","nativeSrc":"2113:3:54","nodeType":"YulIdentifier","src":"2113:3:54"},"nativeSrc":"2113:20:54","nodeType":"YulFunctionCall","src":"2113:20:54"},"variables":[{"name":"loopEnd","nativeSrc":"2102:7:54","nodeType":"YulTypedName","src":"2102:7:54","type":""}]},{"nativeSrc":"2146:48:54","nodeType":"YulVariableDeclaration","src":"2146:48:54","value":{"arguments":[{"name":"slot","nativeSrc":"2189:4:54","nodeType":"YulIdentifier","src":"2189:4:54"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"2160:28:54","nodeType":"YulIdentifier","src":"2160:28:54"},"nativeSrc":"2160:34:54","nodeType":"YulFunctionCall","src":"2160:34:54"},"variables":[{"name":"dstPtr","nativeSrc":"2150:6:54","nodeType":"YulTypedName","src":"2150:6:54","type":""}]},{"nativeSrc":"2207:10:54","nodeType":"YulVariableDeclaration","src":"2207:10:54","value":{"kind":"number","nativeSrc":"2216:1:54","nodeType":"YulLiteral","src":"2216:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2211:1:54","nodeType":"YulTypedName","src":"2211:1:54","type":""}]},{"body":{"nativeSrc":"2294:172:54","nodeType":"YulBlock","src":"2294:172:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"2319:6:54","nodeType":"YulIdentifier","src":"2319:6:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2337:3:54","nodeType":"YulIdentifier","src":"2337:3:54"},{"name":"srcOffset","nativeSrc":"2342:9:54","nodeType":"YulIdentifier","src":"2342:9:54"}],"functionName":{"name":"add","nativeSrc":"2333:3:54","nodeType":"YulIdentifier","src":"2333:3:54"},"nativeSrc":"2333:19:54","nodeType":"YulFunctionCall","src":"2333:19:54"}],"functionName":{"name":"mload","nativeSrc":"2327:5:54","nodeType":"YulIdentifier","src":"2327:5:54"},"nativeSrc":"2327:26:54","nodeType":"YulFunctionCall","src":"2327:26:54"}],"functionName":{"name":"sstore","nativeSrc":"2312:6:54","nodeType":"YulIdentifier","src":"2312:6:54"},"nativeSrc":"2312:42:54","nodeType":"YulFunctionCall","src":"2312:42:54"},"nativeSrc":"2312:42:54","nodeType":"YulExpressionStatement","src":"2312:42:54"},{"nativeSrc":"2371:24:54","nodeType":"YulAssignment","src":"2371:24:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"2385:6:54","nodeType":"YulIdentifier","src":"2385:6:54"},{"kind":"number","nativeSrc":"2393:1:54","nodeType":"YulLiteral","src":"2393:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2381:3:54","nodeType":"YulIdentifier","src":"2381:3:54"},"nativeSrc":"2381:14:54","nodeType":"YulFunctionCall","src":"2381:14:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"2371:6:54","nodeType":"YulIdentifier","src":"2371:6:54"}]},{"nativeSrc":"2412:40:54","nodeType":"YulAssignment","src":"2412:40:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"2429:9:54","nodeType":"YulIdentifier","src":"2429:9:54"},{"name":"srcOffset_1","nativeSrc":"2440:11:54","nodeType":"YulIdentifier","src":"2440:11:54"}],"functionName":{"name":"add","nativeSrc":"2425:3:54","nodeType":"YulIdentifier","src":"2425:3:54"},"nativeSrc":"2425:27:54","nodeType":"YulFunctionCall","src":"2425:27:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"2412:9:54","nodeType":"YulIdentifier","src":"2412:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2241:1:54","nodeType":"YulIdentifier","src":"2241:1:54"},{"name":"loopEnd","nativeSrc":"2244:7:54","nodeType":"YulIdentifier","src":"2244:7:54"}],"functionName":{"name":"lt","nativeSrc":"2238:2:54","nodeType":"YulIdentifier","src":"2238:2:54"},"nativeSrc":"2238:14:54","nodeType":"YulFunctionCall","src":"2238:14:54"},"nativeSrc":"2230:236:54","nodeType":"YulForLoop","post":{"nativeSrc":"2253:28:54","nodeType":"YulBlock","src":"2253:28:54","statements":[{"nativeSrc":"2255:24:54","nodeType":"YulAssignment","src":"2255:24:54","value":{"arguments":[{"name":"i","nativeSrc":"2264:1:54","nodeType":"YulIdentifier","src":"2264:1:54"},{"name":"srcOffset_1","nativeSrc":"2267:11:54","nodeType":"YulIdentifier","src":"2267:11:54"}],"functionName":{"name":"add","nativeSrc":"2260:3:54","nodeType":"YulIdentifier","src":"2260:3:54"},"nativeSrc":"2260:19:54","nodeType":"YulFunctionCall","src":"2260:19:54"},"variableNames":[{"name":"i","nativeSrc":"2255:1:54","nodeType":"YulIdentifier","src":"2255:1:54"}]}]},"pre":{"nativeSrc":"2234:3:54","nodeType":"YulBlock","src":"2234:3:54","statements":[]},"src":"2230:236:54"},{"body":{"nativeSrc":"2514:166:54","nodeType":"YulBlock","src":"2514:166:54","statements":[{"nativeSrc":"2532:43:54","nodeType":"YulVariableDeclaration","src":"2532:43:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2559:3:54","nodeType":"YulIdentifier","src":"2559:3:54"},{"name":"srcOffset","nativeSrc":"2564:9:54","nodeType":"YulIdentifier","src":"2564:9:54"}],"functionName":{"name":"add","nativeSrc":"2555:3:54","nodeType":"YulIdentifier","src":"2555:3:54"},"nativeSrc":"2555:19:54","nodeType":"YulFunctionCall","src":"2555:19:54"}],"functionName":{"name":"mload","nativeSrc":"2549:5:54","nodeType":"YulIdentifier","src":"2549:5:54"},"nativeSrc":"2549:26:54","nodeType":"YulFunctionCall","src":"2549:26:54"},"variables":[{"name":"lastValue","nativeSrc":"2536:9:54","nodeType":"YulTypedName","src":"2536:9:54","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"2599:6:54","nodeType":"YulIdentifier","src":"2599:6:54"},{"arguments":[{"name":"lastValue","nativeSrc":"2611:9:54","nodeType":"YulIdentifier","src":"2611:9:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2638:1:54","nodeType":"YulLiteral","src":"2638:1:54","type":"","value":"3"},{"name":"newLen","nativeSrc":"2641:6:54","nodeType":"YulIdentifier","src":"2641:6:54"}],"functionName":{"name":"shl","nativeSrc":"2634:3:54","nodeType":"YulIdentifier","src":"2634:3:54"},"nativeSrc":"2634:14:54","nodeType":"YulFunctionCall","src":"2634:14:54"},{"kind":"number","nativeSrc":"2650:3:54","nodeType":"YulLiteral","src":"2650:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"2630:3:54","nodeType":"YulIdentifier","src":"2630:3:54"},"nativeSrc":"2630:24:54","nodeType":"YulFunctionCall","src":"2630:24:54"},{"arguments":[{"kind":"number","nativeSrc":"2660:1:54","nodeType":"YulLiteral","src":"2660:1:54","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2656:3:54","nodeType":"YulIdentifier","src":"2656:3:54"},"nativeSrc":"2656:6:54","nodeType":"YulFunctionCall","src":"2656:6:54"}],"functionName":{"name":"shr","nativeSrc":"2626:3:54","nodeType":"YulIdentifier","src":"2626:3:54"},"nativeSrc":"2626:37:54","nodeType":"YulFunctionCall","src":"2626:37:54"}],"functionName":{"name":"not","nativeSrc":"2622:3:54","nodeType":"YulIdentifier","src":"2622:3:54"},"nativeSrc":"2622:42:54","nodeType":"YulFunctionCall","src":"2622:42:54"}],"functionName":{"name":"and","nativeSrc":"2607:3:54","nodeType":"YulIdentifier","src":"2607:3:54"},"nativeSrc":"2607:58:54","nodeType":"YulFunctionCall","src":"2607:58:54"}],"functionName":{"name":"sstore","nativeSrc":"2592:6:54","nodeType":"YulIdentifier","src":"2592:6:54"},"nativeSrc":"2592:74:54","nodeType":"YulFunctionCall","src":"2592:74:54"},"nativeSrc":"2592:74:54","nodeType":"YulExpressionStatement","src":"2592:74:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"2485:7:54","nodeType":"YulIdentifier","src":"2485:7:54"},{"name":"newLen","nativeSrc":"2494:6:54","nodeType":"YulIdentifier","src":"2494:6:54"}],"functionName":{"name":"lt","nativeSrc":"2482:2:54","nodeType":"YulIdentifier","src":"2482:2:54"},"nativeSrc":"2482:19:54","nodeType":"YulFunctionCall","src":"2482:19:54"},"nativeSrc":"2479:201:54","nodeType":"YulIf","src":"2479:201:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2700:4:54","nodeType":"YulIdentifier","src":"2700:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2714:1:54","nodeType":"YulLiteral","src":"2714:1:54","type":"","value":"1"},{"name":"newLen","nativeSrc":"2717:6:54","nodeType":"YulIdentifier","src":"2717:6:54"}],"functionName":{"name":"shl","nativeSrc":"2710:3:54","nodeType":"YulIdentifier","src":"2710:3:54"},"nativeSrc":"2710:14:54","nodeType":"YulFunctionCall","src":"2710:14:54"},{"kind":"number","nativeSrc":"2726:1:54","nodeType":"YulLiteral","src":"2726:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2706:3:54","nodeType":"YulIdentifier","src":"2706:3:54"},"nativeSrc":"2706:22:54","nodeType":"YulFunctionCall","src":"2706:22:54"}],"functionName":{"name":"sstore","nativeSrc":"2693:6:54","nodeType":"YulIdentifier","src":"2693:6:54"},"nativeSrc":"2693:36:54","nodeType":"YulFunctionCall","src":"2693:36:54"},"nativeSrc":"2693:36:54","nodeType":"YulExpressionStatement","src":"2693:36:54"}]},"nativeSrc":"2077:662:54","nodeType":"YulCase","src":"2077:662:54","value":{"kind":"number","nativeSrc":"2082:1:54","nodeType":"YulLiteral","src":"2082:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"2756:234:54","nodeType":"YulBlock","src":"2756:234:54","statements":[{"nativeSrc":"2770:14:54","nodeType":"YulVariableDeclaration","src":"2770:14:54","value":{"kind":"number","nativeSrc":"2783:1:54","nodeType":"YulLiteral","src":"2783:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2774:5:54","nodeType":"YulTypedName","src":"2774:5:54","type":""}]},{"body":{"nativeSrc":"2819:67:54","nodeType":"YulBlock","src":"2819:67:54","statements":[{"nativeSrc":"2837:35:54","nodeType":"YulAssignment","src":"2837:35:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2856:3:54","nodeType":"YulIdentifier","src":"2856:3:54"},{"name":"srcOffset","nativeSrc":"2861:9:54","nodeType":"YulIdentifier","src":"2861:9:54"}],"functionName":{"name":"add","nativeSrc":"2852:3:54","nodeType":"YulIdentifier","src":"2852:3:54"},"nativeSrc":"2852:19:54","nodeType":"YulFunctionCall","src":"2852:19:54"}],"functionName":{"name":"mload","nativeSrc":"2846:5:54","nodeType":"YulIdentifier","src":"2846:5:54"},"nativeSrc":"2846:26:54","nodeType":"YulFunctionCall","src":"2846:26:54"},"variableNames":[{"name":"value","nativeSrc":"2837:5:54","nodeType":"YulIdentifier","src":"2837:5:54"}]}]},"condition":{"name":"newLen","nativeSrc":"2800:6:54","nodeType":"YulIdentifier","src":"2800:6:54"},"nativeSrc":"2797:89:54","nodeType":"YulIf","src":"2797:89:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2906:4:54","nodeType":"YulIdentifier","src":"2906:4:54"},{"arguments":[{"name":"value","nativeSrc":"2965:5:54","nodeType":"YulIdentifier","src":"2965:5:54"},{"name":"newLen","nativeSrc":"2972:6:54","nodeType":"YulIdentifier","src":"2972:6:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2912:52:54","nodeType":"YulIdentifier","src":"2912:52:54"},"nativeSrc":"2912:67:54","nodeType":"YulFunctionCall","src":"2912:67:54"}],"functionName":{"name":"sstore","nativeSrc":"2899:6:54","nodeType":"YulIdentifier","src":"2899:6:54"},"nativeSrc":"2899:81:54","nodeType":"YulFunctionCall","src":"2899:81:54"},"nativeSrc":"2899:81:54","nodeType":"YulExpressionStatement","src":"2899:81:54"}]},"nativeSrc":"2748:242:54","nodeType":"YulCase","src":"2748:242:54","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"2057:6:54","nodeType":"YulIdentifier","src":"2057:6:54"},{"kind":"number","nativeSrc":"2065:2:54","nodeType":"YulLiteral","src":"2065:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2054:2:54","nodeType":"YulIdentifier","src":"2054:2:54"},"nativeSrc":"2054:14:54","nodeType":"YulFunctionCall","src":"2054:14:54"},"nativeSrc":"2047:943:54","nodeType":"YulSwitch","src":"2047:943:54"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"1655:1341:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"1734:4:54","nodeType":"YulTypedName","src":"1734:4:54","type":""},{"name":"src","nativeSrc":"1740:3:54","nodeType":"YulTypedName","src":"1740:3:54","type":""}],"src":"1655:1341:54"},{"body":{"nativeSrc":"3146:131:54","nodeType":"YulBlock","src":"3146:131:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3163:3:54","nodeType":"YulIdentifier","src":"3163:3:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3176:3:54","nodeType":"YulLiteral","src":"3176:3:54","type":"","value":"240"},{"name":"value0","nativeSrc":"3181:6:54","nodeType":"YulIdentifier","src":"3181:6:54"}],"functionName":{"name":"shl","nativeSrc":"3172:3:54","nodeType":"YulIdentifier","src":"3172:3:54"},"nativeSrc":"3172:16:54","nodeType":"YulFunctionCall","src":"3172:16:54"},{"arguments":[{"kind":"number","nativeSrc":"3194:3:54","nodeType":"YulLiteral","src":"3194:3:54","type":"","value":"240"},{"kind":"number","nativeSrc":"3199:5:54","nodeType":"YulLiteral","src":"3199:5:54","type":"","value":"65535"}],"functionName":{"name":"shl","nativeSrc":"3190:3:54","nodeType":"YulIdentifier","src":"3190:3:54"},"nativeSrc":"3190:15:54","nodeType":"YulFunctionCall","src":"3190:15:54"}],"functionName":{"name":"and","nativeSrc":"3168:3:54","nodeType":"YulIdentifier","src":"3168:3:54"},"nativeSrc":"3168:38:54","nodeType":"YulFunctionCall","src":"3168:38:54"}],"functionName":{"name":"mstore","nativeSrc":"3156:6:54","nodeType":"YulIdentifier","src":"3156:6:54"},"nativeSrc":"3156:51:54","nodeType":"YulFunctionCall","src":"3156:51:54"},"nativeSrc":"3156:51:54","nodeType":"YulExpressionStatement","src":"3156:51:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3227:3:54","nodeType":"YulIdentifier","src":"3227:3:54"},{"kind":"number","nativeSrc":"3232:1:54","nodeType":"YulLiteral","src":"3232:1:54","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"3223:3:54","nodeType":"YulIdentifier","src":"3223:3:54"},"nativeSrc":"3223:11:54","nodeType":"YulFunctionCall","src":"3223:11:54"},{"name":"value1","nativeSrc":"3236:6:54","nodeType":"YulIdentifier","src":"3236:6:54"}],"functionName":{"name":"mstore","nativeSrc":"3216:6:54","nodeType":"YulIdentifier","src":"3216:6:54"},"nativeSrc":"3216:27:54","nodeType":"YulFunctionCall","src":"3216:27:54"},"nativeSrc":"3216:27:54","nodeType":"YulExpressionStatement","src":"3216:27:54"},{"nativeSrc":"3252:19:54","nodeType":"YulAssignment","src":"3252:19:54","value":{"arguments":[{"name":"pos","nativeSrc":"3263:3:54","nodeType":"YulIdentifier","src":"3263:3:54"},{"kind":"number","nativeSrc":"3268:2:54","nodeType":"YulLiteral","src":"3268:2:54","type":"","value":"34"}],"functionName":{"name":"add","nativeSrc":"3259:3:54","nodeType":"YulIdentifier","src":"3259:3:54"},"nativeSrc":"3259:12:54","nodeType":"YulFunctionCall","src":"3259:12:54"},"variableNames":[{"name":"end","nativeSrc":"3252:3:54","nodeType":"YulIdentifier","src":"3252:3:54"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"3001:276:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3114:3:54","nodeType":"YulTypedName","src":"3114:3:54","type":""},{"name":"value1","nativeSrc":"3119:6:54","nodeType":"YulTypedName","src":"3119:6:54","type":""},{"name":"value0","nativeSrc":"3127:6:54","nodeType":"YulTypedName","src":"3127:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3138:3:54","nodeType":"YulTypedName","src":"3138:3:54","type":""}],"src":"3001:276:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_bytes_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\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    function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(240, value0), shl(240, 65535)))\n        mstore(add(pos, 2), value1)\n        end := add(pos, 34)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff191661010117905534801561001f57600080fd5b5060405161399a38038061399a83398101604081905261003e91610134565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e891909201819052600491909155600555662386f26fc1000060065561012062030d4060408051600160f01b602082015260228082019390935281518082039093018352604201905290565b60079061012d9082610200565b50506102bf565b60006020828403121561014657600080fd5b815161ffff8116811461015857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061018957607f821691505b6020821081036101a957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fb576000816000526020600020601f850160051c810160208610156101d85750805b601f850160051c820191505b818110156101f7578281556001016101e4565b5050505b505050565b81516001600160401b038111156102195761021961015f565b61022d816102278454610175565b846101af565b602080601f831160018114610262576000841561024a5750858301515b600019600386901b1c1916600185901b1785556101f7565b600085815260208120601f198616915b8281101561029157888601518255948401946001909101908401610272565b50858210156102af5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6136cc806102ce6000396000f3fe60806040526004361061026a5760003560e01c80639924d33b11610153578063ca066b35116100cb578063e97a448a1161007f578063f9cd3ceb11610064578063f9cd3ceb146109b2578063fbba623b146109c8578063fdc07c70146109e857600080fd5b8063e97a448a14610964578063f5ecbdbc1461098057600080fd5b8063d23104f1116100b0578063d23104f11461090a578063da1a7c9a146102c4578063db14f3051461094957600080fd5b8063ca066b35146108c8578063cbed8b9c146108e957600080fd5b8063b6d9ef6011610122578063c2fa481311610107578063c2fa481314610852578063c580310014610872578063c81b383a1461088557600080fd5b8063b6d9ef60146107c4578063c08f15a1146107e457600080fd5b80639924d33b1461070f5780639c729da1146104e3578063aaff5f1614610762578063b20864991461078257600080fd5b80633408e470116101e657806371ba2fd6116101b55780637a1457481161019a5780637a145748146105e25780637f6df8e61461061b578063907c5e7e1461064957600080fd5b806371ba2fd6146104e357806376a386dc1461052857600080fd5b80633408e4701461046a5780633e0dd83e1461048357806340a7bb10146104a357806342d65a8d146104c357600080fd5b806310ddb1371161023d578063240de27711610222578063240de27714610357578063272bd3841461037d5780632c365e251461039f57600080fd5b806310ddb137146102a457806312a9ee6b1461032857600080fd5b806307d3277f1461026f57806307e0db17146102a4578063096568f6146102c45780630eaf6ea6146102f8575b600080fd5b34801561027b57600080fd5b5060045460055461028a919082565b604080519283526020830191909152015b60405180910390f35b3480156102b057600080fd5b506102c26102bf3660046127d7565b50565b005b3480156102d057600080fd5b506102e56102df366004612814565b50600190565b60405161ffff909116815260200161029b565b34801561030457600080fd5b5061031861031336600461287a565b610a08565b604051901515815260200161029b565b34801561033457600080fd5b506103486103433660046129a7565b610a4e565b60405161029b93929190612a62565b34801561036357600080fd5b506102c2610372366004612aaa565b600491909155600555565b34801561038957600080fd5b50610392610b6a565b60405161029b9190612acc565b3480156103ab57600080fd5b506102c26103ba366004612b17565b6fffffffffffffffffffffffffffffffff94851670010000000000000000000000000000000094861685021760025560038054939095167fffffffffffffffff0000000000000000000000000000000000000000000000009093169290921767ffffffffffffffff9182169093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602179055565b34801561047657600080fd5b5060015461ffff166102e5565b34801561048f57600080fd5b506001546103189062010000900460ff1681565b3480156104af57600080fd5b5061028a6104be366004612b7c565b610bf8565b3480156104cf57600080fd5b506102c26104de36600461287a565b610cf7565b3480156104ef57600080fd5b506105036104fe366004612814565b503090565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161029b565b34801561053457600080fd5b506105a7610543366004612c1d565b600a60209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff82169168010000000000000000900473ffffffffffffffffffffffffffffffffffffffff169083565b6040805167ffffffffffffffff909416845273ffffffffffffffffffffffffffffffffffffffff90921660208401529082015260600161029b565b3480156105ee57600080fd5b506106026105fd366004612c6b565b610e68565b60405167ffffffffffffffff909116815260200161029b565b34801561062757600080fd5b5061063b61063636600461287a565b610eae565b60405190815260200161029b565b34801561065557600080fd5b506002546003546106c1916fffffffffffffffffffffffffffffffff80821692700100000000000000000000000000000000928390048216929181169167ffffffffffffffff908204811691780100000000000000000000000000000000000000000000000090041685565b604080516fffffffffffffffffffffffffffffffff96871681529486166020860152929094169183019190915267ffffffffffffffff9081166060830152909116608082015260a00161029b565b34801561071b57600080fd5b5061060261072a366004612c1d565b6008602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b34801561076e57600080fd5b506102c261077d366004612ca2565b610eea565b34801561078e57600080fd5b5061060261079d366004612c6b565b600960209081526000928352604080842090915290825290205467ffffffffffffffff1681565b3480156107d057600080fd5b506102c26107df366004612d23565b600655565b3480156107f057600080fd5b506102c26107ff366004612d3c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b34801561085e57600080fd5b506102c261086d366004612d5a565b611152565b6102c2610880366004612e0a565b611aab565b34801561089157600080fd5b506105036108a0366004612814565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b3480156108d457600080fd5b50610318600c54610100900460ff1660021490565b3480156108f557600080fd5b506102c2610904366004612ed2565b50505050565b34801561091657600080fd5b506102c2600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1662010000179055565b34801561095557600080fd5b506001546102e59061ffff1681565b34801561097057600080fd5b50610318600c5460ff1660021490565b34801561098c57600080fd5b5061039261099b366004612f3a565b604080516020810190915260008152949350505050565b3480156109be57600080fd5b5061063b60065481565b3480156109d457600080fd5b506102c26109e3366004612f87565b612127565b3480156109f457600080fd5b50610602610a0336600461287a565b612137565b61ffff83166000908152600a60205260408082209051829190610a2e9086908690612fc4565b9081526040519081900360200190206001015415159150505b9392505050565b600b6020908152600084815260409020835180850183018051928152908301928501929092209152805482908110610a8557600080fd5b60009182526020909120600290910201805460018201805473ffffffffffffffffffffffffffffffffffffffff831696507401000000000000000000000000000000000000000090920467ffffffffffffffff169450919250610ae790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1390612fd4565b8015610b605780601f10610b3557610100808354040283529160200191610b60565b820191906000526020600020905b815481529060010190602001808311610b4357829003601f168201915b5050505050905083565b60078054610b7790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba390612fd4565b8015610bf05780601f10610bc557610100808354040283529160200191610bf0565b820191906000526020600020905b815481529060010190602001808311610bd357829003601f168201915b505050505081565b600080600080845111610c955760078054610c1290612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3e90612fd4565b8015610c8b5780601f10610c6057610100808354040283529160200191610c8b565b820191906000526020600020905b815481529060010190602001808311610c6e57829003601f168201915b5050505050610c97565b835b90506000610caa8960018a8a518661217d565b90506000610cbb8783600654612398565b905086610ccb5780945084610cd0565b809350835b50600654610cde8387613056565b610ce89190613056565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610d1a9085908590612fc4565b9081526040519081900360200190206001810154909150610d825760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b805468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff163314610df45760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610d79565b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610e55908690869086906130b2565b60405180910390a16109048484846123d5565b61ffff8216600090815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205467ffffffffffffffff165b92915050565b61ffff83166000908152600b60205260408082209051610ed19085908590612fc4565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610f0d9087908790612fc4565b9081526040519081900360200190206001810154909150610f705760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610d79565b805467ffffffffffffffff1682148015610fa4575080600101548383604051610f9a929190612fc4565b6040518091039020145b610ff05760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610d79565b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff881681526008602052604080822090516801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16926110649089908990612fc4565b908152604051908190036020018120547e1d356700000000000000000000000000000000000000000000000000000000825267ffffffffffffffff16915073ffffffffffffffffffffffffffffffffffffffff831690621d3567906110d7908b908b908b9087908c908c906004016130d0565b600060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d888888848660405161114095949392919061311e565b60405180910390a15050505050505050565b600c54610100900460ff166001146111d15760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e747260448201527f616e6379000000000000000000000000000000000000000000000000000000006064820152608401610d79565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff88166000908152600a60205260408082209051611220908a908a90612fc4565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161125b929190612fc4565b90815260405190819003602001902080546000906112829067ffffffffffffffff16613174565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905567ffffffffffffffff168567ffffffffffffffff16146113095760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610d79565b6001810154156116d15761ffff89166000908152600b60205260408082209051611336908b908b90612fc4565b90815260200160405180910390209050600060405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018867ffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561162b578154600181810184556000848152602090819020845160029094020180549185015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff90941693909317178255604083015183929182019061145c90826131ec565b50505060005b825461147090600190613306565b8110156115795782818154811061148957611489613319565b9060005260206000209060020201838260016114a59190613056565b815481106114b5576114b5613319565b600091825260209091208254600290920201805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117825583547fffffffff0000000000000000000000000000000000000000000000000000000090931617740100000000000000000000000000000000000000009283900467ffffffffffffffff1690920291909117815560018082019061156e90840182613348565b505050600101611462565b50808260008154811061158e5761158e613319565b6000918252602091829020835160029092020180549284015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff909216919091179190911781556040820151600182019061162290826131ec565b509050506116ca565b8154600181810184556000848152602090819020845160029094020180549185015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff9094169390931717825560408301518392918201906116c690826131ec565b5050505b5050611a74565b60015462010000900460ff16156118545760405180606001604052808484905067ffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001848460405161172c929190612fc4565b604080519182900390912090915261ffff8b166000908152600a602052819020905161175b908b908b90612fc4565b908152604080519182900360209081018320845181548684015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090911667ffffffffffffffff909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db9161181f918c918c918c918c918c918b918b919061347d565b60405180910390a1600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff169055611a74565b6040517e1d356700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690621d35679086906118b0908d908d908d908c908b908b906004016130d0565b600060405180830381600088803b1580156118ca57600080fd5b5087f1935050505080156118dc575060015b611a74573d80801561190a576040519150601f19603f3d011682016040523d82523d6000602084013e61190f565b606091505b5060405180606001604052808585905067ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001858560405161195a929190612fc4565b604080519182900390912090915261ffff8c166000908152600a6020528190209051611989908c908c90612fc4565b908152604080519182900360209081018320845181549286015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611a42908c908c908c908c908c908b908b908a9061347d565b60405180910390a150600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690555b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905550505050505050565b600c5460ff16600114611b265760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6360448201527f79000000000000000000000000000000000000000000000000000000000000006064820152608401610d79565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790558551602814611bc85760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201527f616464726573732073697a6500000000000000000000000000000000000000006064820152608401610d79565b601486015173ffffffffffffffffffffffffffffffffffffffff8082166000908152602081905260409020541680611c685760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610d79565b600080845111611d025760078054611c7f90612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054611cab90612fd4565b8015611cf85780601f10611ccd57610100808354040283529160200191611cf8565b820191906000526020600020905b815481529060010190602001808311611cdb57829003601f168201915b5050505050611d04565b835b90506000611d628b338b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505073ffffffffffffffffffffffffffffffffffffffff8a16151586610bf8565b50905080341015611ddb5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201527f20666f72206665657300000000000000000000000000000000000000000000006064820152608401610d79565b61ffff8b166000908152600960209081526040808320338452909152812080548290611e109067ffffffffffffffff16613174565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055905060008234611e459190613306565b90508015611eff5760008973ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611ea7576040519150601f19603f3d011682016040523d82523d6000602084013e611eac565b606091505b5050905080611efd5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610d79565b505b6000806000611f0d8761262e565b91955093509150508115611fc95760008173ffffffffffffffffffffffffffffffffffffffff168360405160006040518083038185875af1925050503d8060008114611f75576040519150601f19603f3d011682016040523d82523d6000602084013e611f7a565b606091505b5050905080611fc757604051839073ffffffffffffffffffffffffffffffffffffffff8416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508973ffffffffffffffffffffffffffffffffffffffff1663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b81526004016120b6969594939291906134fd565b600060405180830381600087803b1580156120d057600080fd5b505af11580156120e4573d6000803e3d6000fd5b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050505050505050565b600761213382826131ec565b5050565b61ffff8316600090815260086020526040808220905161215a9085908590612fc4565b9081526040519081900360200190205467ffffffffffffffff1690509392505050565b60008060008061218c8561262e565b5092509250925060008361ffff16600203612238576003546fffffffffffffffffffffffffffffffff1682111561222b5760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201527f6c617267652000000000000000000000000000000000000000000000000000006064820152608401610d79565b6122358282613056565b90505b600354600090612267908590700100000000000000000000000000000000900467ffffffffffffffff16613056565b60025461229a919070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661355e565b90506122a68183613056565b6002549092506000906402540be400906122d2906fffffffffffffffffffffffffffffffff168561355e565b6122dc91906135a4565b6002546003549192506000916402540be400916fffffffffffffffffffffffffffffffff8082169261234b92780100000000000000000000000000000000000000000000000090910467ffffffffffffffff1691700100000000000000000000000000000000909104166135b8565b61235591906135b8565b61235f91906135ec565b6fffffffffffffffffffffffffffffffff16905061237d818b61355e565b6123879083613056565b9d9c50505050505050505050505050565b600083156123a95750600454610a47565b600554612710906123ba8486613056565b6123c4919061355e565b6123ce91906135a4565b9050610a47565b61ffff83166000908152600b602052604080822090516123f89085908590612fc4565b908152602001604051809103902090505b805415610904578054600090829061242390600190613306565b8154811061243357612433613319565b6000918252602091829020604080516060810182526002909302909101805473ffffffffffffffffffffffffffffffffffffffff8116845267ffffffffffffffff740100000000000000000000000000000000000000009091041693830193909352600183018054929392918401916124ab90612fd4565b80601f01602080910402602001604051908101604052809291908181526020018280546124d790612fd4565b80156125245780601f106124f957610100808354040283529160200191612524565b820191906000526020600020905b81548152906001019060200180831161250757829003601f168201915b5050505050815250509050806000015173ffffffffffffffffffffffffffffffffffffffff16621d3567868686856020015186604001516040518663ffffffff1660e01b815260040161257b95949392919061361b565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b50505050818054806125bd576125bd613667565b60008281526020812060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffff00000000000000000000000000000000000000000000000000000000168155906126246001830182612772565b5050905550612409565b600080600080845160221480612645575060428551115b6126915760405162461bcd60e51b815260206004820152601560248201527f496e76616c69642061646170746572506172616d7300000000000000000000006044820152606401610d79565b60028501519350602285015192508361ffff16600114806126b657508361ffff166002145b6127025760405162461bcd60e51b815260206004820152601260248201527f556e737570706f727465642074785479706500000000000000000000000000006044820152606401610d79565b600083116127525760405162461bcd60e51b815260206004820152600b60248201527f47617320746f6f206c6f770000000000000000000000000000000000000000006044820152606401610d79565b8361ffff1660020361276b575050604283015160568401515b9193509193565b50805461277e90612fd4565b6000825580601f1061278e575050565b601f0160209004906000526020600020908101906102bf91905b808211156127bc57600081556001016127a8565b5090565b803561ffff811681146127d257600080fd5b919050565b6000602082840312156127e957600080fd5b610a47826127c0565b73ffffffffffffffffffffffffffffffffffffffff811681146102bf57600080fd5b60006020828403121561282657600080fd5b8135610a47816127f2565b60008083601f84011261284357600080fd5b50813567ffffffffffffffff81111561285b57600080fd5b60208301915083602082850101111561287357600080fd5b9250929050565b60008060006040848603121561288f57600080fd5b612898846127c0565b9250602084013567ffffffffffffffff8111156128b457600080fd5b6128c086828701612831565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261290d57600080fd5b813567ffffffffffffffff80821115612928576129286128cd565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561296e5761296e6128cd565b8160405283815286602085880101111561298757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156129bc57600080fd5b6129c5846127c0565b9250602084013567ffffffffffffffff8111156129e157600080fd5b6129ed868287016128fc565b925050604084013590509250925092565b6000815180845260005b81811015612a2457602081850181015186830182015201612a08565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff83166020820152606060408201526000612aa160608301846129fe565b95945050505050565b60008060408385031215612abd57600080fd5b50508035926020909101359150565b602081526000610a4760208301846129fe565b80356fffffffffffffffffffffffffffffffff811681146127d257600080fd5b803567ffffffffffffffff811681146127d257600080fd5b600080600080600060a08688031215612b2f57600080fd5b612b3886612adf565b9450612b4660208701612adf565b9350612b5460408701612adf565b9250612b6260608701612aff565b9150612b7060808701612aff565b90509295509295909350565b600080600080600060a08688031215612b9457600080fd5b612b9d866127c0565b94506020860135612bad816127f2565b9350604086013567ffffffffffffffff80821115612bca57600080fd5b612bd689838a016128fc565b9450606088013591508115158214612bed57600080fd5b90925060808701359080821115612c0357600080fd5b50612c10888289016128fc565b9150509295509295909350565b60008060408385031215612c3057600080fd5b612c39836127c0565b9150602083013567ffffffffffffffff811115612c5557600080fd5b612c61858286016128fc565b9150509250929050565b60008060408385031215612c7e57600080fd5b612c87836127c0565b91506020830135612c97816127f2565b809150509250929050565b600080600080600060608688031215612cba57600080fd5b612cc3866127c0565b9450602086013567ffffffffffffffff80821115612ce057600080fd5b612cec89838a01612831565b90965094506040880135915080821115612d0557600080fd5b50612d1288828901612831565b969995985093965092949392505050565b600060208284031215612d3557600080fd5b5035919050565b60008060408385031215612d4f57600080fd5b8235612c87816127f2565b60008060008060008060008060c0898b031215612d7657600080fd5b612d7f896127c0565b9750602089013567ffffffffffffffff80821115612d9c57600080fd5b612da88c838d01612831565b909950975060408b01359150612dbd826127f2565b819650612dcc60608c01612aff565b955060808b0135945060a08b0135915080821115612de957600080fd5b50612df68b828c01612831565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a031215612e2557600080fd5b612e2e886127c0565b9650602088013567ffffffffffffffff80821115612e4b57600080fd5b612e578b838c016128fc565b975060408a0135915080821115612e6d57600080fd5b612e798b838c01612831565b909750955060608a01359150612e8e826127f2565b909350608089013590612ea0826127f2565b90925060a08901359080821115612eb657600080fd5b50612ec38a828b016128fc565b91505092959891949750929550565b60008060008060808587031215612ee857600080fd5b612ef1856127c0565b9350612eff602086016127c0565b925060408501359150606085013567ffffffffffffffff811115612f2257600080fd5b612f2e878288016128fc565b91505092959194509250565b60008060008060808587031215612f5057600080fd5b612f59856127c0565b9350612f67602086016127c0565b92506040850135612f77816127f2565b9396929550929360600135925050565b600060208284031215612f9957600080fd5b813567ffffffffffffffff811115612fb057600080fd5b612fbc848285016128fc565b949350505050565b8183823760009101908152919050565b600181811c90821680612fe857607f821691505b602082108103613021577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ea857610ea8613027565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b61ffff84168152604060208201526000612aa1604083018486613069565b61ffff871681526080602082015260006130ee608083018789613069565b67ffffffffffffffff861660408401528281036060840152613111818587613069565b9998505050505050505050565b61ffff8616815260806020820152600061313c608083018688613069565b905067ffffffffffffffff8416604083015273ffffffffffffffffffffffffffffffffffffffff831660608301529695505050505050565b600067ffffffffffffffff80831681810361319157613191613027565b6001019392505050565b601f8211156131e7576000816000526020600020601f850160051c810160208610156131c45750805b601f850160051c820191505b818110156131e3578281556001016131d0565b5050505b505050565b815167ffffffffffffffff811115613206576132066128cd565b61321a816132148454612fd4565b8461319b565b602080601f83116001811461326d57600084156132375750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556131e3565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156132ba5788860151825594840194600190910190840161329b565b50858210156132f657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610ea857610ea8613027565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b818103613353575050565b61335d8254612fd4565b67ffffffffffffffff811115613375576133756128cd565b613383816132148454612fd4565b6000601f8211600181146133d5576000831561339f5750848201545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455613476565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690600086815260209020845b8381101561342d578286015482556001958601959091019060200161340d565b508583101561346957818501547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b61ffff8916815260c06020820152600061349b60c08301898b613069565b73ffffffffffffffffffffffffffffffffffffffff8816604084015267ffffffffffffffff8716606084015282810360808401526134da818688613069565b905082810360a08401526134ee81856129fe565b9b9a5050505050505050505050565b61ffff8716815260c06020820152600061351a60c08301886129fe565b73ffffffffffffffffffffffffffffffffffffffff8716604084015267ffffffffffffffff8616606084015284608084015282810360a084015261311181856129fe565b8082028115828204841417610ea857610ea8613027565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826135b3576135b3613575565b500490565b6fffffffffffffffffffffffffffffffff8181168382160280821691908281146135e4576135e4613027565b505092915050565b60006fffffffffffffffffffffffffffffffff8084168061360f5761360f613575565b92169190910492915050565b61ffff86168152608060208201526000613639608083018688613069565b67ffffffffffffffff85166040840152828103606084015261365b81856129fe565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220b0ab817030528fa2895fd39b9e3a47c1921762205d7e5ede8791dca3421d241b64736f6c63430008190033","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 0x399A CODESIZE SUB DUP1 PUSH2 0x399A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x3E SWAP2 PUSH2 0x134 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 0x120 PUSH3 0x30D40 PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0x42 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x12D SWAP1 DUP3 PUSH2 0x200 JUMP JUMPDEST POP POP PUSH2 0x2BF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x189 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1A9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FB JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1D8 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F7 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1E4 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x219 JUMPI PUSH2 0x219 PUSH2 0x15F JUMP JUMPDEST PUSH2 0x22D DUP2 PUSH2 0x227 DUP5 SLOAD PUSH2 0x175 JUMP JUMPDEST DUP5 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x262 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x24A JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1F7 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x291 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x272 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x2AF JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x36CC DUP1 PUSH2 0x2CE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x26A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x153 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xF9CD3CEB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x9B2 JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x9C8 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x9E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE97A448A EQ PUSH2 0x964 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x980 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD23104F1 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x90A JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x949 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x8C8 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x8E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0x122 JUMPI DUP1 PUSH4 0xC2FA4813 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x852 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x872 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x7C4 JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x70F JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x762 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x7A145748 GT PUSH2 0x19A JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x23D JUMPI DUP1 PUSH4 0x240DE277 GT PUSH2 0x222 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x357 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x37D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x39F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2F8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x28A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x2BF CALLDATASIZE PUSH1 0x4 PUSH2 0x27D7 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x304 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xA08 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0xA4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x372 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AAA JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x392 PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x2ACC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x3BA CALLDATASIZE PUSH1 0x4 PUSH2 0x2B17 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND PUSH17 0x100000000000000000000000000000000 SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH8 0xFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH24 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x2E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x318 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x4BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2B7C JUMP JUMPDEST PUSH2 0xBF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x503 PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A7 PUSH2 0x543 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D 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 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP2 PUSH9 0x10000000000000000 SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND DUP5 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x5FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6B JUMP JUMPDEST PUSH2 0xE68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63B PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xEAE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x6C1 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH17 0x100000000000000000000000000000000 SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x72A CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D 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 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x77D CALLDATASIZE PUSH1 0x4 PUSH2 0x2CA2 JUMP JUMPDEST PUSH2 0xEEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x79D CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6B 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 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x7DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2D23 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x7FF CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x86D CALLDATASIZE PUSH1 0x4 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1152 JUMP JUMPDEST PUSH2 0x2C2 PUSH2 0x880 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E0A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x503 PUSH2 0x8A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x904 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x955 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x392 PUSH2 0x99B CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63B PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x9E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F87 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0xA03 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0x2137 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 0xA2E SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2FC4 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 0xA85 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP7 POP PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP3 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0xAE7 SWAP1 PUSH2 0x2FD4 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 0xB13 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB60 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB35 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB60 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 0xB43 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 0xB77 SWAP1 PUSH2 0x2FD4 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 0xBA3 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBF0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBF0 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 0xBD3 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 0xC95 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xC12 SWAP1 PUSH2 0x2FD4 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 0xC3E SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC8B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC60 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC8B 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 0xC6E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xC97 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCAA DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x217D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCBB DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x2398 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xCCB JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xCD0 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xCDE DUP4 DUP8 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x3056 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 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 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 0xD82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xDF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xE55 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x30B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x904 DUP5 DUP5 DUP5 PUSH2 0x23D5 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF 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 0xED1 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 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 0xF0D SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2FC4 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 0xF70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 EQ DUP1 ISZERO PUSH2 0xFA4 JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xF9A SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xFF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 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 PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 PUSH2 0x1064 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH31 0x1D356700000000000000000000000000000000000000000000000000000000 DUP3 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0x10D7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1105 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 0x1140 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x311E 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 0x11D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E637900000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF 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 0x1220 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2FC4 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 0x125B SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1282 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3174 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE PUSH8 0xFFFFFFFFFFFFFFFF AND DUP6 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1309 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x16D1 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1336 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2FC4 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH8 0xFFFFFFFFFFFFFFFF 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 0x162B 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 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x145C SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x1470 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3306 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x1579 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1489 JUMPI PUSH2 0x1489 PUSH2 0x3319 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x14A5 SWAP2 SWAP1 PUSH2 0x3056 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x14B5 JUMPI PUSH2 0x14B5 PUSH2 0x3319 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND OR PUSH21 0x10000000000000000000000000000000000000000 SWAP3 DUP4 SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP3 ADD SWAP1 PUSH2 0x156E SWAP1 DUP5 ADD DUP3 PUSH2 0x3348 JUMP JUMPDEST POP POP POP PUSH1 0x1 ADD PUSH2 0x1462 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x158E JUMPI PUSH2 0x158E PUSH2 0x3319 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 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x1622 SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x16CA 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 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x16C6 SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x1A74 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1854 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x172C SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 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 0x175B SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2FC4 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH9 0x10000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND PUSH8 0xFFFFFFFFFFFFFFFF 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 0x181F SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND SWAP1 SSTORE PUSH2 0x1A74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH31 0x1D356700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x18B0 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x18DC JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1A74 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x190A 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 0x190F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x195A SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 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 0x1989 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2FC4 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH9 0x10000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND PUSH8 0xFFFFFFFFFFFFFFFF 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 0x1A42 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF 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 0x1B26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1BC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616464726573732073697A650000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x1C68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x1D02 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1C7F SWAP1 PUSH2 0x2FD4 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 0x1CAB SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CF8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CCD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CF8 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 0x1CDB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x1D04 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D62 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xBF8 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x1DDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20666F7220666565730000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 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 0x1E10 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3174 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x1E45 SWAP2 SWAP1 PUSH2 0x3306 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1EFF JUMPI PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1EA7 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 0x1EAC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1EFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1F0D DUP8 PUSH2 0x262E JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F75 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 0x1F7A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 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 0x20B6 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 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 0x7 PUSH2 0x2133 DUP3 DUP3 PUSH2 0x31EC 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 0x215A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x218C DUP6 PUSH2 0x262E JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x2238 JUMPI PUSH1 0x3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 GT ISZERO PUSH2 0x222B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C61726765200000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x2235 DUP3 DUP3 PUSH2 0x3056 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2267 SWAP1 DUP6 SWAP1 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x229A SWAP2 SWAP1 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x355E JUMP JUMPDEST SWAP1 POP PUSH2 0x22A6 DUP2 DUP4 PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x22D2 SWAP1 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x22DC SWAP2 SWAP1 PUSH2 0x35A4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH2 0x234B SWAP3 PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP1 SWAP2 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 PUSH17 0x100000000000000000000000000000000 SWAP1 SWAP2 DIV AND PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x2355 SWAP2 SWAP1 PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x235F SWAP2 SWAP1 PUSH2 0x35EC JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x237D DUP2 DUP12 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x2387 SWAP1 DUP4 PUSH2 0x3056 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x23A9 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x23BA DUP5 DUP7 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0x23C4 SWAP2 SWAP1 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x23CE SWAP2 SWAP1 PUSH2 0x35A4 JUMP JUMPDEST SWAP1 POP PUSH2 0xA47 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x23F8 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x904 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x2423 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3306 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2433 JUMPI PUSH2 0x2433 PUSH2 0x3319 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP5 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF PUSH21 0x10000000000000000000000000000000000000000 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 0x24AB SWAP1 PUSH2 0x2FD4 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 0x24D7 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2524 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x24F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2524 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 0x2507 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 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 0x257B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x361B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x25BD JUMPI PUSH2 0x25BD PUSH2 0x3667 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 SSTORE SWAP1 PUSH2 0x2624 PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x2772 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x2409 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x2645 JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x2691 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C69642061646170746572506172616D730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 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 0x26B6 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E737570706F72746564207478547970650000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2752 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x47617320746F6F206C6F77000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x276B 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 0x277E SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x278E 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 0x2BF SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27BC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x27A8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA47 DUP3 PUSH2 0x27C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA47 DUP2 PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2843 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x285B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2873 JUMPI 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 0x288F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2898 DUP5 PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C0 DUP7 DUP3 DUP8 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x290D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x28CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x296E JUMPI PUSH2 0x296E PUSH2 0x28CD JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x2987 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x29BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29C5 DUP5 PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29ED DUP7 DUP3 DUP8 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2A24 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x2A08 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AA1 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x29FE JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2ABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA47 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29FE JUMP JUMPDEST DUP1 CALLDATALOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B38 DUP7 PUSH2 0x2ADF JUMP JUMPDEST SWAP5 POP PUSH2 0x2B46 PUSH1 0x20 DUP8 ADD PUSH2 0x2ADF JUMP JUMPDEST SWAP4 POP PUSH2 0x2B54 PUSH1 0x40 DUP8 ADD PUSH2 0x2ADF JUMP JUMPDEST SWAP3 POP PUSH2 0x2B62 PUSH1 0x60 DUP8 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP2 POP PUSH2 0x2B70 PUSH1 0x80 DUP8 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B9D DUP7 PUSH2 0x27C0 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2BAD DUP2 PUSH2 0x27F2 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2BCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BD6 DUP10 DUP4 DUP11 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x2BED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C10 DUP9 DUP3 DUP10 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C39 DUP4 PUSH2 0x27C0 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C61 DUP6 DUP3 DUP7 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C87 DUP4 PUSH2 0x27C0 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2C97 DUP2 PUSH2 0x27F2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2CBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CC3 DUP7 PUSH2 0x27C0 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CEC DUP10 DUP4 DUP11 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D12 DUP9 DUP3 DUP10 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C87 DUP2 PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2D76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D7F DUP10 PUSH2 0x27C0 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DA8 DUP13 DUP4 DUP14 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2DBD DUP3 PUSH2 0x27F2 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2DCC PUSH1 0x60 DUP13 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DF6 DUP12 DUP3 DUP13 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2E DUP9 PUSH2 0x27C0 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2E4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E57 DUP12 DUP4 DUP13 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2E6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E79 DUP12 DUP4 DUP13 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2E8E DUP3 PUSH2 0x27F2 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2EA0 DUP3 PUSH2 0x27F2 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2EB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC3 DUP11 DUP3 DUP12 ADD PUSH2 0x28FC 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 0x2EE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF1 DUP6 PUSH2 0x27C0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EFF PUSH1 0x20 DUP7 ADD PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2F22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F2E DUP8 DUP3 DUP9 ADD PUSH2 0x28FC 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 0x2F50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F59 DUP6 PUSH2 0x27C0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2F67 PUSH1 0x20 DUP7 ADD PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2F77 DUP2 PUSH2 0x27F2 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FBC DUP5 DUP3 DUP6 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2FE8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3021 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AA1 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x3069 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x30EE PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x3069 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3111 DUP2 DUP6 DUP8 PUSH2 0x3069 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x313C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 SUB PUSH2 0x3191 JUMPI PUSH2 0x3191 PUSH2 0x3027 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x31E7 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x31C4 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x31E3 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x31D0 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3206 JUMPI PUSH2 0x3206 PUSH2 0x28CD JUMP JUMPDEST PUSH2 0x321A DUP2 PUSH2 0x3214 DUP5 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST DUP5 PUSH2 0x319B JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x326D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3237 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x31E3 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x32BA JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x329B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x32F6 JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB PUSH2 0x3353 JUMPI POP POP JUMP JUMPDEST PUSH2 0x335D DUP3 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3375 JUMPI PUSH2 0x3375 PUSH2 0x28CD JUMP JUMPDEST PUSH2 0x3383 DUP2 PUSH2 0x3214 DUP5 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x33D5 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x339F JUMPI POP DUP5 DUP3 ADD SLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x3476 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP5 AND SWAP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x342D JUMPI DUP3 DUP7 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x340D JUMP JUMPDEST POP DUP6 DUP4 LT ISZERO PUSH2 0x3469 JUMPI DUP2 DUP6 ADD SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP PUSH1 0x1 DUP4 PUSH1 0x1 SHL ADD DUP5 SSTORE JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x349B PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x3069 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x34DA DUP2 DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x34EE DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x351A PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x29FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE DUP5 PUSH1 0x80 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x3111 DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x35B3 JUMPI PUSH2 0x35B3 PUSH2 0x3575 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 DUP2 AND DUP4 DUP3 AND MUL DUP1 DUP3 AND SWAP2 SWAP1 DUP3 DUP2 EQ PUSH2 0x35E4 JUMPI PUSH2 0x35E4 PUSH2 0x3027 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND DUP1 PUSH2 0x360F JUMPI PUSH2 0x360F PUSH2 0x3575 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3639 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x365B DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xAB DUP2 PUSH17 0x30528FA2895FD39B9E3A47C1921762205D PUSH31 0x5EDE8791DCA3421D241B64736F6C6343000819003300000000000000000000 ","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;1114:35:7;;;-1:-1:-1;;;1114:35:7;;;3156:51:54;3223:11;;;;3216:27;;;;1114:35:7;;;;;;;;;;3259:12:54;;1114:35:7;;;918:238;3858:39:8;3835:20;;:62;;:20;:62;:::i;:::-;;3374:530;812:15736;;14:276:54;83:6;136:2;124:9;115:7;111:23;107:32;104:52;;;152:1;149;142:12;104:52;184:9;178:16;234:6;227:5;223:18;216:5;213:29;203:57;;256:1;253;246:12;203:57;279:5;14:276;-1:-1:-1;;;14:276:54:o;295:127::-;356:10;351:3;347:20;344:1;337:31;387:4;384:1;377:15;411:4;408:1;401:15;427:380;506:1;502:12;;;;549;;;570:61;;624:4;616:6;612:17;602:27;;570:61;677:2;669:6;666:14;646:18;643:38;640:161;;723:10;718:3;714:20;711:1;704:31;758:4;755:1;748:15;786:4;783:1;776:15;640:161;;427:380;;;:::o;937:542::-;1038:2;1033:3;1030:11;1027:446;;;1074:1;1098:5;1095:1;1088:16;1142:4;1139:1;1129:18;1212:2;1200:10;1196:19;1193:1;1189:27;1183:4;1179:38;1248:4;1236:10;1233:20;1230:47;;;-1:-1:-1;1271:4:54;1230:47;1326:2;1321:3;1317:12;1314:1;1310:20;1304:4;1300:31;1290:41;;1381:82;1399:2;1392:5;1389:13;1381:82;;;1444:17;;;1425:1;1414:13;1381:82;;;1385:3;;;1027:446;937:542;;;:::o;1655:1341::-;1773:10;;-1:-1:-1;;;;;1795:30:54;;1792:56;;;1828:18;;:::i;:::-;1857:96;1946:6;1906:38;1938:4;1932:11;1906:38;:::i;:::-;1900:4;1857:96;:::i;:::-;2008:4;;2065:2;2054:14;;2082:1;2077:662;;;;2783:1;2800:6;2797:89;;;-1:-1:-1;2852:19:54;;;2846:26;2797:89;-1:-1:-1;;1612:1:54;1608:11;;;1604:24;1600:29;1590:40;1636:1;1632:11;;;1587:57;2899:81;;2047:943;;2077:662;884:1;877:14;;;921:4;908:18;;-1:-1:-1;;2113:20:54;;;2230:236;2244:7;2241:1;2238:14;2230:236;;;2333:19;;;2327:26;2312:42;;2425:27;;;;2393:1;2381:14;;;;2260:19;;2230:236;;;2234:3;2494:6;2485:7;2482:19;2479:201;;;2555:19;;;2549:26;-1:-1:-1;;2638:1:54;2634:14;;;2650:3;2630:24;2626:37;2622:42;2607:58;2592:74;;2479:201;-1:-1:-1;;;;;2726:1:54;2710:14;;;2706:22;2693:36;;-1:-1:-1;1655:1341:54:o;3001:276::-;812:15736:8;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_2818":{"entryPoint":9173,"id":2818,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_2848":{"entryPoint":9112,"id":2848,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_2944":{"entryPoint":8573,"id":2944,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_2667":{"entryPoint":null,"id":2667,"parameterSlots":0,"returnSlots":0},"@decodeAdapterParams_1588":{"entryPoint":9774,"id":1588,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_1659":{"entryPoint":2922,"id":1659,"parameterSlots":0,"returnSlots":0},"@estimateFees_2316":{"entryPoint":3064,"id":2316,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_2642":{"entryPoint":3319,"id":2642,"parameterSlots":3,"returnSlots":0},"@getChainId_2325":{"entryPoint":null,"id":2325,"parameterSlots":0,"returnSlots":1},"@getConfig_2521":{"entryPoint":null,"id":2521,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_2234":{"entryPoint":8503,"id":2234,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_2659":{"entryPoint":3758,"id":2659,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_2251":{"entryPoint":3688,"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":2568,"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":2638,"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":4434,"id":2217,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_1652":{"entryPoint":null,"id":1652,"parameterSlots":0,"returnSlots":0},"@retryPayload_2426":{"entryPoint":3818,"id":2426,"parameterSlots":5,"returnSlots":0},"@send_2010":{"entryPoint":6827,"id":2010,"parameterSlots":7,"returnSlots":0},"@setConfig_2556":{"entryPoint":null,"id":2556,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_2765":{"entryPoint":8487,"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_bytes":{"entryPoint":10492,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":10289,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":10260,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":11580,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":12167,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":11031,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":10199,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":11371,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":11132,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":10362,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":11610,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":11426,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":11293,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":11786,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":10663,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":12090,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":11986,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":11555,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":10922,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint128":{"entryPoint":10975,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint16":{"entryPoint":10176,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":11007,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":10750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":12393,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":12228,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"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":10850,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__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":10956,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"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":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"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":12466,"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":13437,"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":12574,"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":12496,"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":13851,"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":13565,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"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":null,"id":null,"parameterSlots":4,"returnSlots":1},"array_dataslot_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":12374,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":13804,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":13732,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":13752,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":13662,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":13062,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":12699,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":12780,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage":{"entryPoint":13128,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":12244,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint64":{"entryPoint":12660,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":12327,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":13685,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":13927,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":13081,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":10445,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":10226,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:30755:54","nodeType":"YulBlock","src":"0:30755:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"143:119:54","nodeType":"YulBlock","src":"143:119:54","statements":[{"nativeSrc":"153:26:54","nodeType":"YulAssignment","src":"153:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"165:9:54","nodeType":"YulIdentifier","src":"165:9:54"},{"kind":"number","nativeSrc":"176:2:54","nodeType":"YulLiteral","src":"176:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"161:3:54","nodeType":"YulIdentifier","src":"161:3:54"},"nativeSrc":"161:18:54","nodeType":"YulFunctionCall","src":"161:18:54"},"variableNames":[{"name":"tail","nativeSrc":"153:4:54","nodeType":"YulIdentifier","src":"153:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"195:9:54","nodeType":"YulIdentifier","src":"195:9:54"},{"name":"value0","nativeSrc":"206:6:54","nodeType":"YulIdentifier","src":"206:6:54"}],"functionName":{"name":"mstore","nativeSrc":"188:6:54","nodeType":"YulIdentifier","src":"188:6:54"},"nativeSrc":"188:25:54","nodeType":"YulFunctionCall","src":"188:25:54"},"nativeSrc":"188:25:54","nodeType":"YulExpressionStatement","src":"188:25:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"233:9:54","nodeType":"YulIdentifier","src":"233:9:54"},{"kind":"number","nativeSrc":"244:2:54","nodeType":"YulLiteral","src":"244:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"229:3:54","nodeType":"YulIdentifier","src":"229:3:54"},"nativeSrc":"229:18:54","nodeType":"YulFunctionCall","src":"229:18:54"},{"name":"value1","nativeSrc":"249:6:54","nodeType":"YulIdentifier","src":"249:6:54"}],"functionName":{"name":"mstore","nativeSrc":"222:6:54","nodeType":"YulIdentifier","src":"222:6:54"},"nativeSrc":"222:34:54","nodeType":"YulFunctionCall","src":"222:34:54"},"nativeSrc":"222:34:54","nodeType":"YulExpressionStatement","src":"222:34:54"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"14:248:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"104:9:54","nodeType":"YulTypedName","src":"104:9:54","type":""},{"name":"value1","nativeSrc":"115:6:54","nodeType":"YulTypedName","src":"115:6:54","type":""},{"name":"value0","nativeSrc":"123:6:54","nodeType":"YulTypedName","src":"123:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"134:4:54","nodeType":"YulTypedName","src":"134:4:54","type":""}],"src":"14:248:54"},{"body":{"nativeSrc":"315:111:54","nodeType":"YulBlock","src":"315:111:54","statements":[{"nativeSrc":"325:29:54","nodeType":"YulAssignment","src":"325:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"347:6:54","nodeType":"YulIdentifier","src":"347:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"334:12:54","nodeType":"YulIdentifier","src":"334:12:54"},"nativeSrc":"334:20:54","nodeType":"YulFunctionCall","src":"334:20:54"},"variableNames":[{"name":"value","nativeSrc":"325:5:54","nodeType":"YulIdentifier","src":"325:5:54"}]},{"body":{"nativeSrc":"404:16:54","nodeType":"YulBlock","src":"404:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"413:1:54","nodeType":"YulLiteral","src":"413:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"416:1:54","nodeType":"YulLiteral","src":"416:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"406:6:54","nodeType":"YulIdentifier","src":"406:6:54"},"nativeSrc":"406:12:54","nodeType":"YulFunctionCall","src":"406:12:54"},"nativeSrc":"406:12:54","nodeType":"YulExpressionStatement","src":"406:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"376:5:54","nodeType":"YulIdentifier","src":"376:5:54"},{"arguments":[{"name":"value","nativeSrc":"387:5:54","nodeType":"YulIdentifier","src":"387:5:54"},{"kind":"number","nativeSrc":"394:6:54","nodeType":"YulLiteral","src":"394:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"383:3:54","nodeType":"YulIdentifier","src":"383:3:54"},"nativeSrc":"383:18:54","nodeType":"YulFunctionCall","src":"383:18:54"}],"functionName":{"name":"eq","nativeSrc":"373:2:54","nodeType":"YulIdentifier","src":"373:2:54"},"nativeSrc":"373:29:54","nodeType":"YulFunctionCall","src":"373:29:54"}],"functionName":{"name":"iszero","nativeSrc":"366:6:54","nodeType":"YulIdentifier","src":"366:6:54"},"nativeSrc":"366:37:54","nodeType":"YulFunctionCall","src":"366:37:54"},"nativeSrc":"363:57:54","nodeType":"YulIf","src":"363:57:54"}]},"name":"abi_decode_uint16","nativeSrc":"267:159:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"294:6:54","nodeType":"YulTypedName","src":"294:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"305:5:54","nodeType":"YulTypedName","src":"305:5:54","type":""}],"src":"267:159:54"},{"body":{"nativeSrc":"500:115:54","nodeType":"YulBlock","src":"500:115:54","statements":[{"body":{"nativeSrc":"546:16:54","nodeType":"YulBlock","src":"546:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"555:1:54","nodeType":"YulLiteral","src":"555:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"558:1:54","nodeType":"YulLiteral","src":"558:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"548:6:54","nodeType":"YulIdentifier","src":"548:6:54"},"nativeSrc":"548:12:54","nodeType":"YulFunctionCall","src":"548:12:54"},"nativeSrc":"548:12:54","nodeType":"YulExpressionStatement","src":"548:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"521:7:54","nodeType":"YulIdentifier","src":"521:7:54"},{"name":"headStart","nativeSrc":"530:9:54","nodeType":"YulIdentifier","src":"530:9:54"}],"functionName":{"name":"sub","nativeSrc":"517:3:54","nodeType":"YulIdentifier","src":"517:3:54"},"nativeSrc":"517:23:54","nodeType":"YulFunctionCall","src":"517:23:54"},{"kind":"number","nativeSrc":"542:2:54","nodeType":"YulLiteral","src":"542:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"513:3:54","nodeType":"YulIdentifier","src":"513:3:54"},"nativeSrc":"513:32:54","nodeType":"YulFunctionCall","src":"513:32:54"},"nativeSrc":"510:52:54","nodeType":"YulIf","src":"510:52:54"},{"nativeSrc":"571:38:54","nodeType":"YulAssignment","src":"571:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"599:9:54","nodeType":"YulIdentifier","src":"599:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"581:17:54","nodeType":"YulIdentifier","src":"581:17:54"},"nativeSrc":"581:28:54","nodeType":"YulFunctionCall","src":"581:28:54"},"variableNames":[{"name":"value0","nativeSrc":"571:6:54","nodeType":"YulIdentifier","src":"571:6:54"}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"431:184:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"466:9:54","nodeType":"YulTypedName","src":"466:9:54","type":""},{"name":"dataEnd","nativeSrc":"477:7:54","nodeType":"YulTypedName","src":"477:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"489:6:54","nodeType":"YulTypedName","src":"489:6:54","type":""}],"src":"431:184:54"},{"body":{"nativeSrc":"665:109:54","nodeType":"YulBlock","src":"665:109:54","statements":[{"body":{"nativeSrc":"752:16:54","nodeType":"YulBlock","src":"752:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"761:1:54","nodeType":"YulLiteral","src":"761:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"764:1:54","nodeType":"YulLiteral","src":"764:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"754:6:54","nodeType":"YulIdentifier","src":"754:6:54"},"nativeSrc":"754:12:54","nodeType":"YulFunctionCall","src":"754:12:54"},"nativeSrc":"754:12:54","nodeType":"YulExpressionStatement","src":"754:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"688:5:54","nodeType":"YulIdentifier","src":"688:5:54"},{"arguments":[{"name":"value","nativeSrc":"699:5:54","nodeType":"YulIdentifier","src":"699:5:54"},{"kind":"number","nativeSrc":"706:42:54","nodeType":"YulLiteral","src":"706:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"695:3:54","nodeType":"YulIdentifier","src":"695:3:54"},"nativeSrc":"695:54:54","nodeType":"YulFunctionCall","src":"695:54:54"}],"functionName":{"name":"eq","nativeSrc":"685:2:54","nodeType":"YulIdentifier","src":"685:2:54"},"nativeSrc":"685:65:54","nodeType":"YulFunctionCall","src":"685:65:54"}],"functionName":{"name":"iszero","nativeSrc":"678:6:54","nodeType":"YulIdentifier","src":"678:6:54"},"nativeSrc":"678:73:54","nodeType":"YulFunctionCall","src":"678:73:54"},"nativeSrc":"675:93:54","nodeType":"YulIf","src":"675:93:54"}]},"name":"validator_revert_address","nativeSrc":"620:154:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"654:5:54","nodeType":"YulTypedName","src":"654:5:54","type":""}],"src":"620:154:54"},{"body":{"nativeSrc":"849:177:54","nodeType":"YulBlock","src":"849:177:54","statements":[{"body":{"nativeSrc":"895:16:54","nodeType":"YulBlock","src":"895:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"904:1:54","nodeType":"YulLiteral","src":"904:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"907:1:54","nodeType":"YulLiteral","src":"907:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"897:6:54","nodeType":"YulIdentifier","src":"897:6:54"},"nativeSrc":"897:12:54","nodeType":"YulFunctionCall","src":"897:12:54"},"nativeSrc":"897:12:54","nodeType":"YulExpressionStatement","src":"897:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"870:7:54","nodeType":"YulIdentifier","src":"870:7:54"},{"name":"headStart","nativeSrc":"879:9:54","nodeType":"YulIdentifier","src":"879:9:54"}],"functionName":{"name":"sub","nativeSrc":"866:3:54","nodeType":"YulIdentifier","src":"866:3:54"},"nativeSrc":"866:23:54","nodeType":"YulFunctionCall","src":"866:23:54"},{"kind":"number","nativeSrc":"891:2:54","nodeType":"YulLiteral","src":"891:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"862:3:54","nodeType":"YulIdentifier","src":"862:3:54"},"nativeSrc":"862:32:54","nodeType":"YulFunctionCall","src":"862:32:54"},"nativeSrc":"859:52:54","nodeType":"YulIf","src":"859:52:54"},{"nativeSrc":"920:36:54","nodeType":"YulVariableDeclaration","src":"920:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"946:9:54","nodeType":"YulIdentifier","src":"946:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"933:12:54","nodeType":"YulIdentifier","src":"933:12:54"},"nativeSrc":"933:23:54","nodeType":"YulFunctionCall","src":"933:23:54"},"variables":[{"name":"value","nativeSrc":"924:5:54","nodeType":"YulTypedName","src":"924:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"990:5:54","nodeType":"YulIdentifier","src":"990:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"965:24:54","nodeType":"YulIdentifier","src":"965:24:54"},"nativeSrc":"965:31:54","nodeType":"YulFunctionCall","src":"965:31:54"},"nativeSrc":"965:31:54","nodeType":"YulExpressionStatement","src":"965:31:54"},{"nativeSrc":"1005:15:54","nodeType":"YulAssignment","src":"1005:15:54","value":{"name":"value","nativeSrc":"1015:5:54","nodeType":"YulIdentifier","src":"1015:5:54"},"variableNames":[{"name":"value0","nativeSrc":"1005:6:54","nodeType":"YulIdentifier","src":"1005:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"779:247:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"815:9:54","nodeType":"YulTypedName","src":"815:9:54","type":""},{"name":"dataEnd","nativeSrc":"826:7:54","nodeType":"YulTypedName","src":"826:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"838:6:54","nodeType":"YulTypedName","src":"838:6:54","type":""}],"src":"779:247:54"},{"body":{"nativeSrc":"1130:89:54","nodeType":"YulBlock","src":"1130:89:54","statements":[{"nativeSrc":"1140:26:54","nodeType":"YulAssignment","src":"1140:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1152:9:54","nodeType":"YulIdentifier","src":"1152:9:54"},{"kind":"number","nativeSrc":"1163:2:54","nodeType":"YulLiteral","src":"1163:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1148:3:54","nodeType":"YulIdentifier","src":"1148:3:54"},"nativeSrc":"1148:18:54","nodeType":"YulFunctionCall","src":"1148:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1140:4:54","nodeType":"YulIdentifier","src":"1140:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1182:9:54","nodeType":"YulIdentifier","src":"1182:9:54"},{"arguments":[{"name":"value0","nativeSrc":"1197:6:54","nodeType":"YulIdentifier","src":"1197:6:54"},{"kind":"number","nativeSrc":"1205:6:54","nodeType":"YulLiteral","src":"1205:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"1193:3:54","nodeType":"YulIdentifier","src":"1193:3:54"},"nativeSrc":"1193:19:54","nodeType":"YulFunctionCall","src":"1193:19:54"}],"functionName":{"name":"mstore","nativeSrc":"1175:6:54","nodeType":"YulIdentifier","src":"1175:6:54"},"nativeSrc":"1175:38:54","nodeType":"YulFunctionCall","src":"1175:38:54"},"nativeSrc":"1175:38:54","nodeType":"YulExpressionStatement","src":"1175:38:54"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"1031:188:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1099:9:54","nodeType":"YulTypedName","src":"1099:9:54","type":""},{"name":"value0","nativeSrc":"1110:6:54","nodeType":"YulTypedName","src":"1110:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1121:4:54","nodeType":"YulTypedName","src":"1121:4:54","type":""}],"src":"1031:188:54"},{"body":{"nativeSrc":"1296:275:54","nodeType":"YulBlock","src":"1296:275:54","statements":[{"body":{"nativeSrc":"1345:16:54","nodeType":"YulBlock","src":"1345:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1354:1:54","nodeType":"YulLiteral","src":"1354:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1357:1:54","nodeType":"YulLiteral","src":"1357:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1347:6:54","nodeType":"YulIdentifier","src":"1347:6:54"},"nativeSrc":"1347:12:54","nodeType":"YulFunctionCall","src":"1347:12:54"},"nativeSrc":"1347:12:54","nodeType":"YulExpressionStatement","src":"1347:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1324:6:54","nodeType":"YulIdentifier","src":"1324:6:54"},{"kind":"number","nativeSrc":"1332:4:54","nodeType":"YulLiteral","src":"1332:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1320:3:54","nodeType":"YulIdentifier","src":"1320:3:54"},"nativeSrc":"1320:17:54","nodeType":"YulFunctionCall","src":"1320:17:54"},{"name":"end","nativeSrc":"1339:3:54","nodeType":"YulIdentifier","src":"1339:3:54"}],"functionName":{"name":"slt","nativeSrc":"1316:3:54","nodeType":"YulIdentifier","src":"1316:3:54"},"nativeSrc":"1316:27:54","nodeType":"YulFunctionCall","src":"1316:27:54"}],"functionName":{"name":"iszero","nativeSrc":"1309:6:54","nodeType":"YulIdentifier","src":"1309:6:54"},"nativeSrc":"1309:35:54","nodeType":"YulFunctionCall","src":"1309:35:54"},"nativeSrc":"1306:55:54","nodeType":"YulIf","src":"1306:55:54"},{"nativeSrc":"1370:30:54","nodeType":"YulAssignment","src":"1370:30:54","value":{"arguments":[{"name":"offset","nativeSrc":"1393:6:54","nodeType":"YulIdentifier","src":"1393:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"1380:12:54","nodeType":"YulIdentifier","src":"1380:12:54"},"nativeSrc":"1380:20:54","nodeType":"YulFunctionCall","src":"1380:20:54"},"variableNames":[{"name":"length","nativeSrc":"1370:6:54","nodeType":"YulIdentifier","src":"1370:6:54"}]},{"body":{"nativeSrc":"1443:16:54","nodeType":"YulBlock","src":"1443:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1452:1:54","nodeType":"YulLiteral","src":"1452:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1455:1:54","nodeType":"YulLiteral","src":"1455:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1445:6:54","nodeType":"YulIdentifier","src":"1445:6:54"},"nativeSrc":"1445:12:54","nodeType":"YulFunctionCall","src":"1445:12:54"},"nativeSrc":"1445:12:54","nodeType":"YulExpressionStatement","src":"1445:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1415:6:54","nodeType":"YulIdentifier","src":"1415:6:54"},{"kind":"number","nativeSrc":"1423:18:54","nodeType":"YulLiteral","src":"1423:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1412:2:54","nodeType":"YulIdentifier","src":"1412:2:54"},"nativeSrc":"1412:30:54","nodeType":"YulFunctionCall","src":"1412:30:54"},"nativeSrc":"1409:50:54","nodeType":"YulIf","src":"1409:50:54"},{"nativeSrc":"1468:29:54","nodeType":"YulAssignment","src":"1468:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"1484:6:54","nodeType":"YulIdentifier","src":"1484:6:54"},{"kind":"number","nativeSrc":"1492:4:54","nodeType":"YulLiteral","src":"1492:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1480:3:54","nodeType":"YulIdentifier","src":"1480:3:54"},"nativeSrc":"1480:17:54","nodeType":"YulFunctionCall","src":"1480:17:54"},"variableNames":[{"name":"arrayPos","nativeSrc":"1468:8:54","nodeType":"YulIdentifier","src":"1468:8:54"}]},{"body":{"nativeSrc":"1549:16:54","nodeType":"YulBlock","src":"1549:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1558:1:54","nodeType":"YulLiteral","src":"1558:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1561:1:54","nodeType":"YulLiteral","src":"1561:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1551:6:54","nodeType":"YulIdentifier","src":"1551:6:54"},"nativeSrc":"1551:12:54","nodeType":"YulFunctionCall","src":"1551:12:54"},"nativeSrc":"1551:12:54","nodeType":"YulExpressionStatement","src":"1551:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1520:6:54","nodeType":"YulIdentifier","src":"1520:6:54"},{"name":"length","nativeSrc":"1528:6:54","nodeType":"YulIdentifier","src":"1528:6:54"}],"functionName":{"name":"add","nativeSrc":"1516:3:54","nodeType":"YulIdentifier","src":"1516:3:54"},"nativeSrc":"1516:19:54","nodeType":"YulFunctionCall","src":"1516:19:54"},{"kind":"number","nativeSrc":"1537:4:54","nodeType":"YulLiteral","src":"1537:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1512:3:54","nodeType":"YulIdentifier","src":"1512:3:54"},"nativeSrc":"1512:30:54","nodeType":"YulFunctionCall","src":"1512:30:54"},{"name":"end","nativeSrc":"1544:3:54","nodeType":"YulIdentifier","src":"1544:3:54"}],"functionName":{"name":"gt","nativeSrc":"1509:2:54","nodeType":"YulIdentifier","src":"1509:2:54"},"nativeSrc":"1509:39:54","nodeType":"YulFunctionCall","src":"1509:39:54"},"nativeSrc":"1506:59:54","nodeType":"YulIf","src":"1506:59:54"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"1224:347:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1259:6:54","nodeType":"YulTypedName","src":"1259:6:54","type":""},{"name":"end","nativeSrc":"1267:3:54","nodeType":"YulTypedName","src":"1267:3:54","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1275:8:54","nodeType":"YulTypedName","src":"1275:8:54","type":""},{"name":"length","nativeSrc":"1285:6:54","nodeType":"YulTypedName","src":"1285:6:54","type":""}],"src":"1224:347:54"},{"body":{"nativeSrc":"1681:376:54","nodeType":"YulBlock","src":"1681:376:54","statements":[{"body":{"nativeSrc":"1727:16:54","nodeType":"YulBlock","src":"1727:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1736:1:54","nodeType":"YulLiteral","src":"1736:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1739:1:54","nodeType":"YulLiteral","src":"1739:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1729:6:54","nodeType":"YulIdentifier","src":"1729:6:54"},"nativeSrc":"1729:12:54","nodeType":"YulFunctionCall","src":"1729:12:54"},"nativeSrc":"1729:12:54","nodeType":"YulExpressionStatement","src":"1729:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1702:7:54","nodeType":"YulIdentifier","src":"1702:7:54"},{"name":"headStart","nativeSrc":"1711:9:54","nodeType":"YulIdentifier","src":"1711:9:54"}],"functionName":{"name":"sub","nativeSrc":"1698:3:54","nodeType":"YulIdentifier","src":"1698:3:54"},"nativeSrc":"1698:23:54","nodeType":"YulFunctionCall","src":"1698:23:54"},{"kind":"number","nativeSrc":"1723:2:54","nodeType":"YulLiteral","src":"1723:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1694:3:54","nodeType":"YulIdentifier","src":"1694:3:54"},"nativeSrc":"1694:32:54","nodeType":"YulFunctionCall","src":"1694:32:54"},"nativeSrc":"1691:52:54","nodeType":"YulIf","src":"1691:52:54"},{"nativeSrc":"1752:38:54","nodeType":"YulAssignment","src":"1752:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1780:9:54","nodeType":"YulIdentifier","src":"1780:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"1762:17:54","nodeType":"YulIdentifier","src":"1762:17:54"},"nativeSrc":"1762:28:54","nodeType":"YulFunctionCall","src":"1762:28:54"},"variableNames":[{"name":"value0","nativeSrc":"1752:6:54","nodeType":"YulIdentifier","src":"1752:6:54"}]},{"nativeSrc":"1799:46:54","nodeType":"YulVariableDeclaration","src":"1799:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1830:9:54","nodeType":"YulIdentifier","src":"1830:9:54"},{"kind":"number","nativeSrc":"1841:2:54","nodeType":"YulLiteral","src":"1841:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1826:3:54","nodeType":"YulIdentifier","src":"1826:3:54"},"nativeSrc":"1826:18:54","nodeType":"YulFunctionCall","src":"1826:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1813:12:54","nodeType":"YulIdentifier","src":"1813:12:54"},"nativeSrc":"1813:32:54","nodeType":"YulFunctionCall","src":"1813:32:54"},"variables":[{"name":"offset","nativeSrc":"1803:6:54","nodeType":"YulTypedName","src":"1803:6:54","type":""}]},{"body":{"nativeSrc":"1888:16:54","nodeType":"YulBlock","src":"1888:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1897:1:54","nodeType":"YulLiteral","src":"1897:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1900:1:54","nodeType":"YulLiteral","src":"1900:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1890:6:54","nodeType":"YulIdentifier","src":"1890:6:54"},"nativeSrc":"1890:12:54","nodeType":"YulFunctionCall","src":"1890:12:54"},"nativeSrc":"1890:12:54","nodeType":"YulExpressionStatement","src":"1890:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1860:6:54","nodeType":"YulIdentifier","src":"1860:6:54"},{"kind":"number","nativeSrc":"1868:18:54","nodeType":"YulLiteral","src":"1868:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1857:2:54","nodeType":"YulIdentifier","src":"1857:2:54"},"nativeSrc":"1857:30:54","nodeType":"YulFunctionCall","src":"1857:30:54"},"nativeSrc":"1854:50:54","nodeType":"YulIf","src":"1854:50:54"},{"nativeSrc":"1913:84:54","nodeType":"YulVariableDeclaration","src":"1913:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1969:9:54","nodeType":"YulIdentifier","src":"1969:9:54"},{"name":"offset","nativeSrc":"1980:6:54","nodeType":"YulIdentifier","src":"1980:6:54"}],"functionName":{"name":"add","nativeSrc":"1965:3:54","nodeType":"YulIdentifier","src":"1965:3:54"},"nativeSrc":"1965:22:54","nodeType":"YulFunctionCall","src":"1965:22:54"},{"name":"dataEnd","nativeSrc":"1989:7:54","nodeType":"YulIdentifier","src":"1989:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1939:25:54","nodeType":"YulIdentifier","src":"1939:25:54"},"nativeSrc":"1939:58:54","nodeType":"YulFunctionCall","src":"1939:58:54"},"variables":[{"name":"value1_1","nativeSrc":"1917:8:54","nodeType":"YulTypedName","src":"1917:8:54","type":""},{"name":"value2_1","nativeSrc":"1927:8:54","nodeType":"YulTypedName","src":"1927:8:54","type":""}]},{"nativeSrc":"2006:18:54","nodeType":"YulAssignment","src":"2006:18:54","value":{"name":"value1_1","nativeSrc":"2016:8:54","nodeType":"YulIdentifier","src":"2016:8:54"},"variableNames":[{"name":"value1","nativeSrc":"2006:6:54","nodeType":"YulIdentifier","src":"2006:6:54"}]},{"nativeSrc":"2033:18:54","nodeType":"YulAssignment","src":"2033:18:54","value":{"name":"value2_1","nativeSrc":"2043:8:54","nodeType":"YulIdentifier","src":"2043:8:54"},"variableNames":[{"name":"value2","nativeSrc":"2033:6:54","nodeType":"YulIdentifier","src":"2033:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"1576:481:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1631:9:54","nodeType":"YulTypedName","src":"1631:9:54","type":""},{"name":"dataEnd","nativeSrc":"1642:7:54","nodeType":"YulTypedName","src":"1642:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1654:6:54","nodeType":"YulTypedName","src":"1654:6:54","type":""},{"name":"value1","nativeSrc":"1662:6:54","nodeType":"YulTypedName","src":"1662:6:54","type":""},{"name":"value2","nativeSrc":"1670:6:54","nodeType":"YulTypedName","src":"1670:6:54","type":""}],"src":"1576:481:54"},{"body":{"nativeSrc":"2157:92:54","nodeType":"YulBlock","src":"2157:92:54","statements":[{"nativeSrc":"2167:26:54","nodeType":"YulAssignment","src":"2167:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2179:9:54","nodeType":"YulIdentifier","src":"2179:9:54"},{"kind":"number","nativeSrc":"2190:2:54","nodeType":"YulLiteral","src":"2190:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2175:3:54","nodeType":"YulIdentifier","src":"2175:3:54"},"nativeSrc":"2175:18:54","nodeType":"YulFunctionCall","src":"2175:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2167:4:54","nodeType":"YulIdentifier","src":"2167:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2209:9:54","nodeType":"YulIdentifier","src":"2209:9:54"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2234:6:54","nodeType":"YulIdentifier","src":"2234:6:54"}],"functionName":{"name":"iszero","nativeSrc":"2227:6:54","nodeType":"YulIdentifier","src":"2227:6:54"},"nativeSrc":"2227:14:54","nodeType":"YulFunctionCall","src":"2227:14:54"}],"functionName":{"name":"iszero","nativeSrc":"2220:6:54","nodeType":"YulIdentifier","src":"2220:6:54"},"nativeSrc":"2220:22:54","nodeType":"YulFunctionCall","src":"2220:22:54"}],"functionName":{"name":"mstore","nativeSrc":"2202:6:54","nodeType":"YulIdentifier","src":"2202:6:54"},"nativeSrc":"2202:41:54","nodeType":"YulFunctionCall","src":"2202:41:54"},"nativeSrc":"2202:41:54","nodeType":"YulExpressionStatement","src":"2202:41:54"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"2062:187:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2126:9:54","nodeType":"YulTypedName","src":"2126:9:54","type":""},{"name":"value0","nativeSrc":"2137:6:54","nodeType":"YulTypedName","src":"2137:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2148:4:54","nodeType":"YulTypedName","src":"2148:4:54","type":""}],"src":"2062:187:54"},{"body":{"nativeSrc":"2286:152:54","nodeType":"YulBlock","src":"2286:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2303:1:54","nodeType":"YulLiteral","src":"2303:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2306:77:54","nodeType":"YulLiteral","src":"2306:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2296:6:54","nodeType":"YulIdentifier","src":"2296:6:54"},"nativeSrc":"2296:88:54","nodeType":"YulFunctionCall","src":"2296:88:54"},"nativeSrc":"2296:88:54","nodeType":"YulExpressionStatement","src":"2296:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2400:1:54","nodeType":"YulLiteral","src":"2400:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"2403:4:54","nodeType":"YulLiteral","src":"2403:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2393:6:54","nodeType":"YulIdentifier","src":"2393:6:54"},"nativeSrc":"2393:15:54","nodeType":"YulFunctionCall","src":"2393:15:54"},"nativeSrc":"2393:15:54","nodeType":"YulExpressionStatement","src":"2393:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2424:1:54","nodeType":"YulLiteral","src":"2424:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2427:4:54","nodeType":"YulLiteral","src":"2427:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2417:6:54","nodeType":"YulIdentifier","src":"2417:6:54"},"nativeSrc":"2417:15:54","nodeType":"YulFunctionCall","src":"2417:15:54"},"nativeSrc":"2417:15:54","nodeType":"YulExpressionStatement","src":"2417:15:54"}]},"name":"panic_error_0x41","nativeSrc":"2254:184:54","nodeType":"YulFunctionDefinition","src":"2254:184:54"},{"body":{"nativeSrc":"2495:725:54","nodeType":"YulBlock","src":"2495:725:54","statements":[{"body":{"nativeSrc":"2544:16:54","nodeType":"YulBlock","src":"2544:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2553:1:54","nodeType":"YulLiteral","src":"2553:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2556:1:54","nodeType":"YulLiteral","src":"2556:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2546:6:54","nodeType":"YulIdentifier","src":"2546:6:54"},"nativeSrc":"2546:12:54","nodeType":"YulFunctionCall","src":"2546:12:54"},"nativeSrc":"2546:12:54","nodeType":"YulExpressionStatement","src":"2546:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2523:6:54","nodeType":"YulIdentifier","src":"2523:6:54"},{"kind":"number","nativeSrc":"2531:4:54","nodeType":"YulLiteral","src":"2531:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2519:3:54","nodeType":"YulIdentifier","src":"2519:3:54"},"nativeSrc":"2519:17:54","nodeType":"YulFunctionCall","src":"2519:17:54"},{"name":"end","nativeSrc":"2538:3:54","nodeType":"YulIdentifier","src":"2538:3:54"}],"functionName":{"name":"slt","nativeSrc":"2515:3:54","nodeType":"YulIdentifier","src":"2515:3:54"},"nativeSrc":"2515:27:54","nodeType":"YulFunctionCall","src":"2515:27:54"}],"functionName":{"name":"iszero","nativeSrc":"2508:6:54","nodeType":"YulIdentifier","src":"2508:6:54"},"nativeSrc":"2508:35:54","nodeType":"YulFunctionCall","src":"2508:35:54"},"nativeSrc":"2505:55:54","nodeType":"YulIf","src":"2505:55:54"},{"nativeSrc":"2569:30:54","nodeType":"YulVariableDeclaration","src":"2569:30:54","value":{"arguments":[{"name":"offset","nativeSrc":"2592:6:54","nodeType":"YulIdentifier","src":"2592:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"2579:12:54","nodeType":"YulIdentifier","src":"2579:12:54"},"nativeSrc":"2579:20:54","nodeType":"YulFunctionCall","src":"2579:20:54"},"variables":[{"name":"_1","nativeSrc":"2573:2:54","nodeType":"YulTypedName","src":"2573:2:54","type":""}]},{"nativeSrc":"2608:28:54","nodeType":"YulVariableDeclaration","src":"2608:28:54","value":{"kind":"number","nativeSrc":"2618:18:54","nodeType":"YulLiteral","src":"2618:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"2612:2:54","nodeType":"YulTypedName","src":"2612:2:54","type":""}]},{"body":{"nativeSrc":"2659:22:54","nodeType":"YulBlock","src":"2659:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2661:16:54","nodeType":"YulIdentifier","src":"2661:16:54"},"nativeSrc":"2661:18:54","nodeType":"YulFunctionCall","src":"2661:18:54"},"nativeSrc":"2661:18:54","nodeType":"YulExpressionStatement","src":"2661:18:54"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"2651:2:54","nodeType":"YulIdentifier","src":"2651:2:54"},{"name":"_2","nativeSrc":"2655:2:54","nodeType":"YulIdentifier","src":"2655:2:54"}],"functionName":{"name":"gt","nativeSrc":"2648:2:54","nodeType":"YulIdentifier","src":"2648:2:54"},"nativeSrc":"2648:10:54","nodeType":"YulFunctionCall","src":"2648:10:54"},"nativeSrc":"2645:36:54","nodeType":"YulIf","src":"2645:36:54"},{"nativeSrc":"2690:76:54","nodeType":"YulVariableDeclaration","src":"2690:76:54","value":{"kind":"number","nativeSrc":"2700:66:54","nodeType":"YulLiteral","src":"2700:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_3","nativeSrc":"2694:2:54","nodeType":"YulTypedName","src":"2694:2:54","type":""}]},{"nativeSrc":"2775:23:54","nodeType":"YulVariableDeclaration","src":"2775:23:54","value":{"arguments":[{"kind":"number","nativeSrc":"2795:2:54","nodeType":"YulLiteral","src":"2795:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2789:5:54","nodeType":"YulIdentifier","src":"2789:5:54"},"nativeSrc":"2789:9:54","nodeType":"YulFunctionCall","src":"2789:9:54"},"variables":[{"name":"memPtr","nativeSrc":"2779:6:54","nodeType":"YulTypedName","src":"2779:6:54","type":""}]},{"nativeSrc":"2807:71:54","nodeType":"YulVariableDeclaration","src":"2807:71:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"2829:6:54","nodeType":"YulIdentifier","src":"2829:6:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"2853:2:54","nodeType":"YulIdentifier","src":"2853:2:54"},{"kind":"number","nativeSrc":"2857:4:54","nodeType":"YulLiteral","src":"2857:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2849:3:54","nodeType":"YulIdentifier","src":"2849:3:54"},"nativeSrc":"2849:13:54","nodeType":"YulFunctionCall","src":"2849:13:54"},{"name":"_3","nativeSrc":"2864:2:54","nodeType":"YulIdentifier","src":"2864:2:54"}],"functionName":{"name":"and","nativeSrc":"2845:3:54","nodeType":"YulIdentifier","src":"2845:3:54"},"nativeSrc":"2845:22:54","nodeType":"YulFunctionCall","src":"2845:22:54"},{"kind":"number","nativeSrc":"2869:2:54","nodeType":"YulLiteral","src":"2869:2:54","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2841:3:54","nodeType":"YulIdentifier","src":"2841:3:54"},"nativeSrc":"2841:31:54","nodeType":"YulFunctionCall","src":"2841:31:54"},{"name":"_3","nativeSrc":"2874:2:54","nodeType":"YulIdentifier","src":"2874:2:54"}],"functionName":{"name":"and","nativeSrc":"2837:3:54","nodeType":"YulIdentifier","src":"2837:3:54"},"nativeSrc":"2837:40:54","nodeType":"YulFunctionCall","src":"2837:40:54"}],"functionName":{"name":"add","nativeSrc":"2825:3:54","nodeType":"YulIdentifier","src":"2825:3:54"},"nativeSrc":"2825:53:54","nodeType":"YulFunctionCall","src":"2825:53:54"},"variables":[{"name":"newFreePtr","nativeSrc":"2811:10:54","nodeType":"YulTypedName","src":"2811:10:54","type":""}]},{"body":{"nativeSrc":"2937:22:54","nodeType":"YulBlock","src":"2937:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2939:16:54","nodeType":"YulIdentifier","src":"2939:16:54"},"nativeSrc":"2939:18:54","nodeType":"YulFunctionCall","src":"2939:18:54"},"nativeSrc":"2939:18:54","nodeType":"YulExpressionStatement","src":"2939:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2896:10:54","nodeType":"YulIdentifier","src":"2896:10:54"},{"name":"_2","nativeSrc":"2908:2:54","nodeType":"YulIdentifier","src":"2908:2:54"}],"functionName":{"name":"gt","nativeSrc":"2893:2:54","nodeType":"YulIdentifier","src":"2893:2:54"},"nativeSrc":"2893:18:54","nodeType":"YulFunctionCall","src":"2893:18:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2916:10:54","nodeType":"YulIdentifier","src":"2916:10:54"},{"name":"memPtr","nativeSrc":"2928:6:54","nodeType":"YulIdentifier","src":"2928:6:54"}],"functionName":{"name":"lt","nativeSrc":"2913:2:54","nodeType":"YulIdentifier","src":"2913:2:54"},"nativeSrc":"2913:22:54","nodeType":"YulFunctionCall","src":"2913:22:54"}],"functionName":{"name":"or","nativeSrc":"2890:2:54","nodeType":"YulIdentifier","src":"2890:2:54"},"nativeSrc":"2890:46:54","nodeType":"YulFunctionCall","src":"2890:46:54"},"nativeSrc":"2887:72:54","nodeType":"YulIf","src":"2887:72:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2975:2:54","nodeType":"YulLiteral","src":"2975:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2979:10:54","nodeType":"YulIdentifier","src":"2979:10:54"}],"functionName":{"name":"mstore","nativeSrc":"2968:6:54","nodeType":"YulIdentifier","src":"2968:6:54"},"nativeSrc":"2968:22:54","nodeType":"YulFunctionCall","src":"2968:22:54"},"nativeSrc":"2968:22:54","nodeType":"YulExpressionStatement","src":"2968:22:54"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3006:6:54","nodeType":"YulIdentifier","src":"3006:6:54"},{"name":"_1","nativeSrc":"3014:2:54","nodeType":"YulIdentifier","src":"3014:2:54"}],"functionName":{"name":"mstore","nativeSrc":"2999:6:54","nodeType":"YulIdentifier","src":"2999:6:54"},"nativeSrc":"2999:18:54","nodeType":"YulFunctionCall","src":"2999:18:54"},"nativeSrc":"2999:18:54","nodeType":"YulExpressionStatement","src":"2999:18:54"},{"body":{"nativeSrc":"3065:16:54","nodeType":"YulBlock","src":"3065:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3074:1:54","nodeType":"YulLiteral","src":"3074:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3077:1:54","nodeType":"YulLiteral","src":"3077:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3067:6:54","nodeType":"YulIdentifier","src":"3067:6:54"},"nativeSrc":"3067:12:54","nodeType":"YulFunctionCall","src":"3067:12:54"},"nativeSrc":"3067:12:54","nodeType":"YulExpressionStatement","src":"3067:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3040:6:54","nodeType":"YulIdentifier","src":"3040:6:54"},{"name":"_1","nativeSrc":"3048:2:54","nodeType":"YulIdentifier","src":"3048:2:54"}],"functionName":{"name":"add","nativeSrc":"3036:3:54","nodeType":"YulIdentifier","src":"3036:3:54"},"nativeSrc":"3036:15:54","nodeType":"YulFunctionCall","src":"3036:15:54"},{"kind":"number","nativeSrc":"3053:4:54","nodeType":"YulLiteral","src":"3053:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:54","nodeType":"YulIdentifier","src":"3032:3:54"},"nativeSrc":"3032:26:54","nodeType":"YulFunctionCall","src":"3032:26:54"},{"name":"end","nativeSrc":"3060:3:54","nodeType":"YulIdentifier","src":"3060:3:54"}],"functionName":{"name":"gt","nativeSrc":"3029:2:54","nodeType":"YulIdentifier","src":"3029:2:54"},"nativeSrc":"3029:35:54","nodeType":"YulFunctionCall","src":"3029:35:54"},"nativeSrc":"3026:55:54","nodeType":"YulIf","src":"3026:55:54"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3107:6:54","nodeType":"YulIdentifier","src":"3107:6:54"},{"kind":"number","nativeSrc":"3115:4:54","nodeType":"YulLiteral","src":"3115:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3103:3:54","nodeType":"YulIdentifier","src":"3103:3:54"},"nativeSrc":"3103:17:54","nodeType":"YulFunctionCall","src":"3103:17:54"},{"arguments":[{"name":"offset","nativeSrc":"3126:6:54","nodeType":"YulIdentifier","src":"3126:6:54"},{"kind":"number","nativeSrc":"3134:4:54","nodeType":"YulLiteral","src":"3134:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3122:3:54","nodeType":"YulIdentifier","src":"3122:3:54"},"nativeSrc":"3122:17:54","nodeType":"YulFunctionCall","src":"3122:17:54"},{"name":"_1","nativeSrc":"3141:2:54","nodeType":"YulIdentifier","src":"3141:2:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"3090:12:54","nodeType":"YulIdentifier","src":"3090:12:54"},"nativeSrc":"3090:54:54","nodeType":"YulFunctionCall","src":"3090:54:54"},"nativeSrc":"3090:54:54","nodeType":"YulExpressionStatement","src":"3090:54:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3168:6:54","nodeType":"YulIdentifier","src":"3168:6:54"},{"name":"_1","nativeSrc":"3176:2:54","nodeType":"YulIdentifier","src":"3176:2:54"}],"functionName":{"name":"add","nativeSrc":"3164:3:54","nodeType":"YulIdentifier","src":"3164:3:54"},"nativeSrc":"3164:15:54","nodeType":"YulFunctionCall","src":"3164:15:54"},{"kind":"number","nativeSrc":"3181:4:54","nodeType":"YulLiteral","src":"3181:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3160:3:54","nodeType":"YulIdentifier","src":"3160:3:54"},"nativeSrc":"3160:26:54","nodeType":"YulFunctionCall","src":"3160:26:54"},{"kind":"number","nativeSrc":"3188:1:54","nodeType":"YulLiteral","src":"3188:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3153:6:54","nodeType":"YulIdentifier","src":"3153:6:54"},"nativeSrc":"3153:37:54","nodeType":"YulFunctionCall","src":"3153:37:54"},"nativeSrc":"3153:37:54","nodeType":"YulExpressionStatement","src":"3153:37:54"},{"nativeSrc":"3199:15:54","nodeType":"YulAssignment","src":"3199:15:54","value":{"name":"memPtr","nativeSrc":"3208:6:54","nodeType":"YulIdentifier","src":"3208:6:54"},"variableNames":[{"name":"array","nativeSrc":"3199:5:54","nodeType":"YulIdentifier","src":"3199:5:54"}]}]},"name":"abi_decode_bytes","nativeSrc":"2443:777:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2469:6:54","nodeType":"YulTypedName","src":"2469:6:54","type":""},{"name":"end","nativeSrc":"2477:3:54","nodeType":"YulTypedName","src":"2477:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2485:5:54","nodeType":"YulTypedName","src":"2485:5:54","type":""}],"src":"2443:777:54"},{"body":{"nativeSrc":"3337:348:54","nodeType":"YulBlock","src":"3337:348:54","statements":[{"body":{"nativeSrc":"3383:16:54","nodeType":"YulBlock","src":"3383:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3392:1:54","nodeType":"YulLiteral","src":"3392:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3395:1:54","nodeType":"YulLiteral","src":"3395:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3385:6:54","nodeType":"YulIdentifier","src":"3385:6:54"},"nativeSrc":"3385:12:54","nodeType":"YulFunctionCall","src":"3385:12:54"},"nativeSrc":"3385:12:54","nodeType":"YulExpressionStatement","src":"3385:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3358:7:54","nodeType":"YulIdentifier","src":"3358:7:54"},{"name":"headStart","nativeSrc":"3367:9:54","nodeType":"YulIdentifier","src":"3367:9:54"}],"functionName":{"name":"sub","nativeSrc":"3354:3:54","nodeType":"YulIdentifier","src":"3354:3:54"},"nativeSrc":"3354:23:54","nodeType":"YulFunctionCall","src":"3354:23:54"},{"kind":"number","nativeSrc":"3379:2:54","nodeType":"YulLiteral","src":"3379:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3350:3:54","nodeType":"YulIdentifier","src":"3350:3:54"},"nativeSrc":"3350:32:54","nodeType":"YulFunctionCall","src":"3350:32:54"},"nativeSrc":"3347:52:54","nodeType":"YulIf","src":"3347:52:54"},{"nativeSrc":"3408:38:54","nodeType":"YulAssignment","src":"3408:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3436:9:54","nodeType":"YulIdentifier","src":"3436:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3418:17:54","nodeType":"YulIdentifier","src":"3418:17:54"},"nativeSrc":"3418:28:54","nodeType":"YulFunctionCall","src":"3418:28:54"},"variableNames":[{"name":"value0","nativeSrc":"3408:6:54","nodeType":"YulIdentifier","src":"3408:6:54"}]},{"nativeSrc":"3455:46:54","nodeType":"YulVariableDeclaration","src":"3455:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3486:9:54","nodeType":"YulIdentifier","src":"3486:9:54"},{"kind":"number","nativeSrc":"3497:2:54","nodeType":"YulLiteral","src":"3497:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3482:3:54","nodeType":"YulIdentifier","src":"3482:3:54"},"nativeSrc":"3482:18:54","nodeType":"YulFunctionCall","src":"3482:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"3469:12:54","nodeType":"YulIdentifier","src":"3469:12:54"},"nativeSrc":"3469:32:54","nodeType":"YulFunctionCall","src":"3469:32:54"},"variables":[{"name":"offset","nativeSrc":"3459:6:54","nodeType":"YulTypedName","src":"3459:6:54","type":""}]},{"body":{"nativeSrc":"3544:16:54","nodeType":"YulBlock","src":"3544:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3553:1:54","nodeType":"YulLiteral","src":"3553:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3556:1:54","nodeType":"YulLiteral","src":"3556:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3546:6:54","nodeType":"YulIdentifier","src":"3546:6:54"},"nativeSrc":"3546:12:54","nodeType":"YulFunctionCall","src":"3546:12:54"},"nativeSrc":"3546:12:54","nodeType":"YulExpressionStatement","src":"3546:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3516:6:54","nodeType":"YulIdentifier","src":"3516:6:54"},{"kind":"number","nativeSrc":"3524:18:54","nodeType":"YulLiteral","src":"3524:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3513:2:54","nodeType":"YulIdentifier","src":"3513:2:54"},"nativeSrc":"3513:30:54","nodeType":"YulFunctionCall","src":"3513:30:54"},"nativeSrc":"3510:50:54","nodeType":"YulIf","src":"3510:50:54"},{"nativeSrc":"3569:59:54","nodeType":"YulAssignment","src":"3569:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3600:9:54","nodeType":"YulIdentifier","src":"3600:9:54"},{"name":"offset","nativeSrc":"3611:6:54","nodeType":"YulIdentifier","src":"3611:6:54"}],"functionName":{"name":"add","nativeSrc":"3596:3:54","nodeType":"YulIdentifier","src":"3596:3:54"},"nativeSrc":"3596:22:54","nodeType":"YulFunctionCall","src":"3596:22:54"},{"name":"dataEnd","nativeSrc":"3620:7:54","nodeType":"YulIdentifier","src":"3620:7:54"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"3579:16:54","nodeType":"YulIdentifier","src":"3579:16:54"},"nativeSrc":"3579:49:54","nodeType":"YulFunctionCall","src":"3579:49:54"},"variableNames":[{"name":"value1","nativeSrc":"3569:6:54","nodeType":"YulIdentifier","src":"3569:6:54"}]},{"nativeSrc":"3637:42:54","nodeType":"YulAssignment","src":"3637:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3664:9:54","nodeType":"YulIdentifier","src":"3664:9:54"},{"kind":"number","nativeSrc":"3675:2:54","nodeType":"YulLiteral","src":"3675:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3660:3:54","nodeType":"YulIdentifier","src":"3660:3:54"},"nativeSrc":"3660:18:54","nodeType":"YulFunctionCall","src":"3660:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"3647:12:54","nodeType":"YulIdentifier","src":"3647:12:54"},"nativeSrc":"3647:32:54","nodeType":"YulFunctionCall","src":"3647:32:54"},"variableNames":[{"name":"value2","nativeSrc":"3637:6:54","nodeType":"YulIdentifier","src":"3637:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nativeSrc":"3225:460:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3287:9:54","nodeType":"YulTypedName","src":"3287:9:54","type":""},{"name":"dataEnd","nativeSrc":"3298:7:54","nodeType":"YulTypedName","src":"3298:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3310:6:54","nodeType":"YulTypedName","src":"3310:6:54","type":""},{"name":"value1","nativeSrc":"3318:6:54","nodeType":"YulTypedName","src":"3318:6:54","type":""},{"name":"value2","nativeSrc":"3326:6:54","nodeType":"YulTypedName","src":"3326:6:54","type":""}],"src":"3225:460:54"},{"body":{"nativeSrc":"3739:432:54","nodeType":"YulBlock","src":"3739:432:54","statements":[{"nativeSrc":"3749:26:54","nodeType":"YulVariableDeclaration","src":"3749:26:54","value":{"arguments":[{"name":"value","nativeSrc":"3769:5:54","nodeType":"YulIdentifier","src":"3769:5:54"}],"functionName":{"name":"mload","nativeSrc":"3763:5:54","nodeType":"YulIdentifier","src":"3763:5:54"},"nativeSrc":"3763:12:54","nodeType":"YulFunctionCall","src":"3763:12:54"},"variables":[{"name":"length","nativeSrc":"3753:6:54","nodeType":"YulTypedName","src":"3753:6:54","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3791:3:54","nodeType":"YulIdentifier","src":"3791:3:54"},{"name":"length","nativeSrc":"3796:6:54","nodeType":"YulIdentifier","src":"3796:6:54"}],"functionName":{"name":"mstore","nativeSrc":"3784:6:54","nodeType":"YulIdentifier","src":"3784:6:54"},"nativeSrc":"3784:19:54","nodeType":"YulFunctionCall","src":"3784:19:54"},"nativeSrc":"3784:19:54","nodeType":"YulExpressionStatement","src":"3784:19:54"},{"nativeSrc":"3812:10:54","nodeType":"YulVariableDeclaration","src":"3812:10:54","value":{"kind":"number","nativeSrc":"3821:1:54","nodeType":"YulLiteral","src":"3821:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3816:1:54","nodeType":"YulTypedName","src":"3816:1:54","type":""}]},{"body":{"nativeSrc":"3883:110:54","nodeType":"YulBlock","src":"3883:110:54","statements":[{"nativeSrc":"3897:14:54","nodeType":"YulVariableDeclaration","src":"3897:14:54","value":{"kind":"number","nativeSrc":"3907:4:54","nodeType":"YulLiteral","src":"3907:4:54","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"3901:2:54","nodeType":"YulTypedName","src":"3901:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3939:3:54","nodeType":"YulIdentifier","src":"3939:3:54"},{"name":"i","nativeSrc":"3944:1:54","nodeType":"YulIdentifier","src":"3944:1:54"}],"functionName":{"name":"add","nativeSrc":"3935:3:54","nodeType":"YulIdentifier","src":"3935:3:54"},"nativeSrc":"3935:11:54","nodeType":"YulFunctionCall","src":"3935:11:54"},{"name":"_1","nativeSrc":"3948:2:54","nodeType":"YulIdentifier","src":"3948:2:54"}],"functionName":{"name":"add","nativeSrc":"3931:3:54","nodeType":"YulIdentifier","src":"3931:3:54"},"nativeSrc":"3931:20:54","nodeType":"YulFunctionCall","src":"3931:20:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3967:5:54","nodeType":"YulIdentifier","src":"3967:5:54"},{"name":"i","nativeSrc":"3974:1:54","nodeType":"YulIdentifier","src":"3974:1:54"}],"functionName":{"name":"add","nativeSrc":"3963:3:54","nodeType":"YulIdentifier","src":"3963:3:54"},"nativeSrc":"3963:13:54","nodeType":"YulFunctionCall","src":"3963:13:54"},{"name":"_1","nativeSrc":"3978:2:54","nodeType":"YulIdentifier","src":"3978:2:54"}],"functionName":{"name":"add","nativeSrc":"3959:3:54","nodeType":"YulIdentifier","src":"3959:3:54"},"nativeSrc":"3959:22:54","nodeType":"YulFunctionCall","src":"3959:22:54"}],"functionName":{"name":"mload","nativeSrc":"3953:5:54","nodeType":"YulIdentifier","src":"3953:5:54"},"nativeSrc":"3953:29:54","nodeType":"YulFunctionCall","src":"3953:29:54"}],"functionName":{"name":"mstore","nativeSrc":"3924:6:54","nodeType":"YulIdentifier","src":"3924:6:54"},"nativeSrc":"3924:59:54","nodeType":"YulFunctionCall","src":"3924:59:54"},"nativeSrc":"3924:59:54","nodeType":"YulExpressionStatement","src":"3924:59:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3842:1:54","nodeType":"YulIdentifier","src":"3842:1:54"},{"name":"length","nativeSrc":"3845:6:54","nodeType":"YulIdentifier","src":"3845:6:54"}],"functionName":{"name":"lt","nativeSrc":"3839:2:54","nodeType":"YulIdentifier","src":"3839:2:54"},"nativeSrc":"3839:13:54","nodeType":"YulFunctionCall","src":"3839:13:54"},"nativeSrc":"3831:162:54","nodeType":"YulForLoop","post":{"nativeSrc":"3853:21:54","nodeType":"YulBlock","src":"3853:21:54","statements":[{"nativeSrc":"3855:17:54","nodeType":"YulAssignment","src":"3855:17:54","value":{"arguments":[{"name":"i","nativeSrc":"3864:1:54","nodeType":"YulIdentifier","src":"3864:1:54"},{"kind":"number","nativeSrc":"3867:4:54","nodeType":"YulLiteral","src":"3867:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3860:3:54","nodeType":"YulIdentifier","src":"3860:3:54"},"nativeSrc":"3860:12:54","nodeType":"YulFunctionCall","src":"3860:12:54"},"variableNames":[{"name":"i","nativeSrc":"3855:1:54","nodeType":"YulIdentifier","src":"3855:1:54"}]}]},"pre":{"nativeSrc":"3835:3:54","nodeType":"YulBlock","src":"3835:3:54","statements":[]},"src":"3831:162:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4017:3:54","nodeType":"YulIdentifier","src":"4017:3:54"},{"name":"length","nativeSrc":"4022:6:54","nodeType":"YulIdentifier","src":"4022:6:54"}],"functionName":{"name":"add","nativeSrc":"4013:3:54","nodeType":"YulIdentifier","src":"4013:3:54"},"nativeSrc":"4013:16:54","nodeType":"YulFunctionCall","src":"4013:16:54"},{"kind":"number","nativeSrc":"4031:4:54","nodeType":"YulLiteral","src":"4031:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4009:3:54","nodeType":"YulIdentifier","src":"4009:3:54"},"nativeSrc":"4009:27:54","nodeType":"YulFunctionCall","src":"4009:27:54"},{"kind":"number","nativeSrc":"4038:1:54","nodeType":"YulLiteral","src":"4038:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4002:6:54","nodeType":"YulIdentifier","src":"4002:6:54"},"nativeSrc":"4002:38:54","nodeType":"YulFunctionCall","src":"4002:38:54"},"nativeSrc":"4002:38:54","nodeType":"YulExpressionStatement","src":"4002:38:54"},{"nativeSrc":"4049:116:54","nodeType":"YulAssignment","src":"4049:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4064:3:54","nodeType":"YulIdentifier","src":"4064:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4077:6:54","nodeType":"YulIdentifier","src":"4077:6:54"},{"kind":"number","nativeSrc":"4085:2:54","nodeType":"YulLiteral","src":"4085:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4073:3:54","nodeType":"YulIdentifier","src":"4073:3:54"},"nativeSrc":"4073:15:54","nodeType":"YulFunctionCall","src":"4073:15:54"},{"kind":"number","nativeSrc":"4090:66:54","nodeType":"YulLiteral","src":"4090:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4069:3:54","nodeType":"YulIdentifier","src":"4069:3:54"},"nativeSrc":"4069:88:54","nodeType":"YulFunctionCall","src":"4069:88:54"}],"functionName":{"name":"add","nativeSrc":"4060:3:54","nodeType":"YulIdentifier","src":"4060:3:54"},"nativeSrc":"4060:98:54","nodeType":"YulFunctionCall","src":"4060:98:54"},{"kind":"number","nativeSrc":"4160:4:54","nodeType":"YulLiteral","src":"4160:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4056:3:54","nodeType":"YulIdentifier","src":"4056:3:54"},"nativeSrc":"4056:109:54","nodeType":"YulFunctionCall","src":"4056:109:54"},"variableNames":[{"name":"end","nativeSrc":"4049:3:54","nodeType":"YulIdentifier","src":"4049:3:54"}]}]},"name":"abi_encode_bytes","nativeSrc":"3690:481:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3716:5:54","nodeType":"YulTypedName","src":"3716:5:54","type":""},{"name":"pos","nativeSrc":"3723:3:54","nodeType":"YulTypedName","src":"3723:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3731:3:54","nodeType":"YulTypedName","src":"3731:3:54","type":""}],"src":"3690:481:54"},{"body":{"nativeSrc":"4349:258:54","nodeType":"YulBlock","src":"4349:258:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4366:9:54","nodeType":"YulIdentifier","src":"4366:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4381:6:54","nodeType":"YulIdentifier","src":"4381:6:54"},{"kind":"number","nativeSrc":"4389:42:54","nodeType":"YulLiteral","src":"4389:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4377:3:54","nodeType":"YulIdentifier","src":"4377:3:54"},"nativeSrc":"4377:55:54","nodeType":"YulFunctionCall","src":"4377:55:54"}],"functionName":{"name":"mstore","nativeSrc":"4359:6:54","nodeType":"YulIdentifier","src":"4359:6:54"},"nativeSrc":"4359:74:54","nodeType":"YulFunctionCall","src":"4359:74:54"},"nativeSrc":"4359:74:54","nodeType":"YulExpressionStatement","src":"4359:74:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4453:9:54","nodeType":"YulIdentifier","src":"4453:9:54"},{"kind":"number","nativeSrc":"4464:2:54","nodeType":"YulLiteral","src":"4464:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4449:3:54","nodeType":"YulIdentifier","src":"4449:3:54"},"nativeSrc":"4449:18:54","nodeType":"YulFunctionCall","src":"4449:18:54"},{"arguments":[{"name":"value1","nativeSrc":"4473:6:54","nodeType":"YulIdentifier","src":"4473:6:54"},{"kind":"number","nativeSrc":"4481:18:54","nodeType":"YulLiteral","src":"4481:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4469:3:54","nodeType":"YulIdentifier","src":"4469:3:54"},"nativeSrc":"4469:31:54","nodeType":"YulFunctionCall","src":"4469:31:54"}],"functionName":{"name":"mstore","nativeSrc":"4442:6:54","nodeType":"YulIdentifier","src":"4442:6:54"},"nativeSrc":"4442:59:54","nodeType":"YulFunctionCall","src":"4442:59:54"},"nativeSrc":"4442:59:54","nodeType":"YulExpressionStatement","src":"4442:59:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4521:9:54","nodeType":"YulIdentifier","src":"4521:9:54"},{"kind":"number","nativeSrc":"4532:2:54","nodeType":"YulLiteral","src":"4532:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4517:3:54","nodeType":"YulIdentifier","src":"4517:3:54"},"nativeSrc":"4517:18:54","nodeType":"YulFunctionCall","src":"4517:18:54"},{"kind":"number","nativeSrc":"4537:2:54","nodeType":"YulLiteral","src":"4537:2:54","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"4510:6:54","nodeType":"YulIdentifier","src":"4510:6:54"},"nativeSrc":"4510:30:54","nodeType":"YulFunctionCall","src":"4510:30:54"},"nativeSrc":"4510:30:54","nodeType":"YulExpressionStatement","src":"4510:30:54"},{"nativeSrc":"4549:52:54","nodeType":"YulAssignment","src":"4549:52:54","value":{"arguments":[{"name":"value2","nativeSrc":"4574:6:54","nodeType":"YulIdentifier","src":"4574:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"4586:9:54","nodeType":"YulIdentifier","src":"4586:9:54"},{"kind":"number","nativeSrc":"4597:2:54","nodeType":"YulLiteral","src":"4597:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4582:3:54","nodeType":"YulIdentifier","src":"4582:3:54"},"nativeSrc":"4582:18:54","nodeType":"YulFunctionCall","src":"4582:18:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"4557:16:54","nodeType":"YulIdentifier","src":"4557:16:54"},"nativeSrc":"4557:44:54","nodeType":"YulFunctionCall","src":"4557:44:54"},"variableNames":[{"name":"tail","nativeSrc":"4549:4:54","nodeType":"YulIdentifier","src":"4549:4:54"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4176:431:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4302:9:54","nodeType":"YulTypedName","src":"4302:9:54","type":""},{"name":"value2","nativeSrc":"4313:6:54","nodeType":"YulTypedName","src":"4313:6:54","type":""},{"name":"value1","nativeSrc":"4321:6:54","nodeType":"YulTypedName","src":"4321:6:54","type":""},{"name":"value0","nativeSrc":"4329:6:54","nodeType":"YulTypedName","src":"4329:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4340:4:54","nodeType":"YulTypedName","src":"4340:4:54","type":""}],"src":"4176:431:54"},{"body":{"nativeSrc":"4699:161:54","nodeType":"YulBlock","src":"4699:161:54","statements":[{"body":{"nativeSrc":"4745:16:54","nodeType":"YulBlock","src":"4745:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4754:1:54","nodeType":"YulLiteral","src":"4754:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4757:1:54","nodeType":"YulLiteral","src":"4757:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4747:6:54","nodeType":"YulIdentifier","src":"4747:6:54"},"nativeSrc":"4747:12:54","nodeType":"YulFunctionCall","src":"4747:12:54"},"nativeSrc":"4747:12:54","nodeType":"YulExpressionStatement","src":"4747:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4720:7:54","nodeType":"YulIdentifier","src":"4720:7:54"},{"name":"headStart","nativeSrc":"4729:9:54","nodeType":"YulIdentifier","src":"4729:9:54"}],"functionName":{"name":"sub","nativeSrc":"4716:3:54","nodeType":"YulIdentifier","src":"4716:3:54"},"nativeSrc":"4716:23:54","nodeType":"YulFunctionCall","src":"4716:23:54"},{"kind":"number","nativeSrc":"4741:2:54","nodeType":"YulLiteral","src":"4741:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4712:3:54","nodeType":"YulIdentifier","src":"4712:3:54"},"nativeSrc":"4712:32:54","nodeType":"YulFunctionCall","src":"4712:32:54"},"nativeSrc":"4709:52:54","nodeType":"YulIf","src":"4709:52:54"},{"nativeSrc":"4770:33:54","nodeType":"YulAssignment","src":"4770:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4793:9:54","nodeType":"YulIdentifier","src":"4793:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"4780:12:54","nodeType":"YulIdentifier","src":"4780:12:54"},"nativeSrc":"4780:23:54","nodeType":"YulFunctionCall","src":"4780:23:54"},"variableNames":[{"name":"value0","nativeSrc":"4770:6:54","nodeType":"YulIdentifier","src":"4770:6:54"}]},{"nativeSrc":"4812:42:54","nodeType":"YulAssignment","src":"4812:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4839:9:54","nodeType":"YulIdentifier","src":"4839:9:54"},{"kind":"number","nativeSrc":"4850:2:54","nodeType":"YulLiteral","src":"4850:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4835:3:54","nodeType":"YulIdentifier","src":"4835:3:54"},"nativeSrc":"4835:18:54","nodeType":"YulFunctionCall","src":"4835:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"4822:12:54","nodeType":"YulIdentifier","src":"4822:12:54"},"nativeSrc":"4822:32:54","nodeType":"YulFunctionCall","src":"4822:32:54"},"variableNames":[{"name":"value1","nativeSrc":"4812:6:54","nodeType":"YulIdentifier","src":"4812:6:54"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"4612:248:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4657:9:54","nodeType":"YulTypedName","src":"4657:9:54","type":""},{"name":"dataEnd","nativeSrc":"4668:7:54","nodeType":"YulTypedName","src":"4668:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4680:6:54","nodeType":"YulTypedName","src":"4680:6:54","type":""},{"name":"value1","nativeSrc":"4688:6:54","nodeType":"YulTypedName","src":"4688:6:54","type":""}],"src":"4612:248:54"},{"body":{"nativeSrc":"4984:98:54","nodeType":"YulBlock","src":"4984:98:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5001:9:54","nodeType":"YulIdentifier","src":"5001:9:54"},{"kind":"number","nativeSrc":"5012:2:54","nodeType":"YulLiteral","src":"5012:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4994:6:54","nodeType":"YulIdentifier","src":"4994:6:54"},"nativeSrc":"4994:21:54","nodeType":"YulFunctionCall","src":"4994:21:54"},"nativeSrc":"4994:21:54","nodeType":"YulExpressionStatement","src":"4994:21:54"},{"nativeSrc":"5024:52:54","nodeType":"YulAssignment","src":"5024:52:54","value":{"arguments":[{"name":"value0","nativeSrc":"5049:6:54","nodeType":"YulIdentifier","src":"5049:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"5061:9:54","nodeType":"YulIdentifier","src":"5061:9:54"},{"kind":"number","nativeSrc":"5072:2:54","nodeType":"YulLiteral","src":"5072:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5057:3:54","nodeType":"YulIdentifier","src":"5057:3:54"},"nativeSrc":"5057:18:54","nodeType":"YulFunctionCall","src":"5057:18:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"5032:16:54","nodeType":"YulIdentifier","src":"5032:16:54"},"nativeSrc":"5032:44:54","nodeType":"YulFunctionCall","src":"5032:44:54"},"variableNames":[{"name":"tail","nativeSrc":"5024:4:54","nodeType":"YulIdentifier","src":"5024:4:54"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4865:217:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4953:9:54","nodeType":"YulTypedName","src":"4953:9:54","type":""},{"name":"value0","nativeSrc":"4964:6:54","nodeType":"YulTypedName","src":"4964:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4975:4:54","nodeType":"YulTypedName","src":"4975:4:54","type":""}],"src":"4865:217:54"},{"body":{"nativeSrc":"5136:139:54","nodeType":"YulBlock","src":"5136:139:54","statements":[{"nativeSrc":"5146:29:54","nodeType":"YulAssignment","src":"5146:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"5168:6:54","nodeType":"YulIdentifier","src":"5168:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"5155:12:54","nodeType":"YulIdentifier","src":"5155:12:54"},"nativeSrc":"5155:20:54","nodeType":"YulFunctionCall","src":"5155:20:54"},"variableNames":[{"name":"value","nativeSrc":"5146:5:54","nodeType":"YulIdentifier","src":"5146:5:54"}]},{"body":{"nativeSrc":"5253:16:54","nodeType":"YulBlock","src":"5253:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5262:1:54","nodeType":"YulLiteral","src":"5262:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5265:1:54","nodeType":"YulLiteral","src":"5265:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5255:6:54","nodeType":"YulIdentifier","src":"5255:6:54"},"nativeSrc":"5255:12:54","nodeType":"YulFunctionCall","src":"5255:12:54"},"nativeSrc":"5255:12:54","nodeType":"YulExpressionStatement","src":"5255:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5197:5:54","nodeType":"YulIdentifier","src":"5197:5:54"},{"arguments":[{"name":"value","nativeSrc":"5208:5:54","nodeType":"YulIdentifier","src":"5208:5:54"},{"kind":"number","nativeSrc":"5215:34:54","nodeType":"YulLiteral","src":"5215:34:54","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5204:3:54","nodeType":"YulIdentifier","src":"5204:3:54"},"nativeSrc":"5204:46:54","nodeType":"YulFunctionCall","src":"5204:46:54"}],"functionName":{"name":"eq","nativeSrc":"5194:2:54","nodeType":"YulIdentifier","src":"5194:2:54"},"nativeSrc":"5194:57:54","nodeType":"YulFunctionCall","src":"5194:57:54"}],"functionName":{"name":"iszero","nativeSrc":"5187:6:54","nodeType":"YulIdentifier","src":"5187:6:54"},"nativeSrc":"5187:65:54","nodeType":"YulFunctionCall","src":"5187:65:54"},"nativeSrc":"5184:85:54","nodeType":"YulIf","src":"5184:85:54"}]},"name":"abi_decode_uint128","nativeSrc":"5087:188:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5115:6:54","nodeType":"YulTypedName","src":"5115:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5126:5:54","nodeType":"YulTypedName","src":"5126:5:54","type":""}],"src":"5087:188:54"},{"body":{"nativeSrc":"5328:123:54","nodeType":"YulBlock","src":"5328:123:54","statements":[{"nativeSrc":"5338:29:54","nodeType":"YulAssignment","src":"5338:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"5360:6:54","nodeType":"YulIdentifier","src":"5360:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"5347:12:54","nodeType":"YulIdentifier","src":"5347:12:54"},"nativeSrc":"5347:20:54","nodeType":"YulFunctionCall","src":"5347:20:54"},"variableNames":[{"name":"value","nativeSrc":"5338:5:54","nodeType":"YulIdentifier","src":"5338:5:54"}]},{"body":{"nativeSrc":"5429:16:54","nodeType":"YulBlock","src":"5429:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5438:1:54","nodeType":"YulLiteral","src":"5438:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5441:1:54","nodeType":"YulLiteral","src":"5441:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5431:6:54","nodeType":"YulIdentifier","src":"5431:6:54"},"nativeSrc":"5431:12:54","nodeType":"YulFunctionCall","src":"5431:12:54"},"nativeSrc":"5431:12:54","nodeType":"YulExpressionStatement","src":"5431:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5389:5:54","nodeType":"YulIdentifier","src":"5389:5:54"},{"arguments":[{"name":"value","nativeSrc":"5400:5:54","nodeType":"YulIdentifier","src":"5400:5:54"},{"kind":"number","nativeSrc":"5407:18:54","nodeType":"YulLiteral","src":"5407:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5396:3:54","nodeType":"YulIdentifier","src":"5396:3:54"},"nativeSrc":"5396:30:54","nodeType":"YulFunctionCall","src":"5396:30:54"}],"functionName":{"name":"eq","nativeSrc":"5386:2:54","nodeType":"YulIdentifier","src":"5386:2:54"},"nativeSrc":"5386:41:54","nodeType":"YulFunctionCall","src":"5386:41:54"}],"functionName":{"name":"iszero","nativeSrc":"5379:6:54","nodeType":"YulIdentifier","src":"5379:6:54"},"nativeSrc":"5379:49:54","nodeType":"YulFunctionCall","src":"5379:49:54"},"nativeSrc":"5376:69:54","nodeType":"YulIf","src":"5376:69:54"}]},"name":"abi_decode_uint64","nativeSrc":"5280:171:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5307:6:54","nodeType":"YulTypedName","src":"5307:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5318:5:54","nodeType":"YulTypedName","src":"5318:5:54","type":""}],"src":"5280:171:54"},{"body":{"nativeSrc":"5592:344:54","nodeType":"YulBlock","src":"5592:344:54","statements":[{"body":{"nativeSrc":"5639:16:54","nodeType":"YulBlock","src":"5639:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5648:1:54","nodeType":"YulLiteral","src":"5648:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5651:1:54","nodeType":"YulLiteral","src":"5651:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5641:6:54","nodeType":"YulIdentifier","src":"5641:6:54"},"nativeSrc":"5641:12:54","nodeType":"YulFunctionCall","src":"5641:12:54"},"nativeSrc":"5641:12:54","nodeType":"YulExpressionStatement","src":"5641:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5613:7:54","nodeType":"YulIdentifier","src":"5613:7:54"},{"name":"headStart","nativeSrc":"5622:9:54","nodeType":"YulIdentifier","src":"5622:9:54"}],"functionName":{"name":"sub","nativeSrc":"5609:3:54","nodeType":"YulIdentifier","src":"5609:3:54"},"nativeSrc":"5609:23:54","nodeType":"YulFunctionCall","src":"5609:23:54"},{"kind":"number","nativeSrc":"5634:3:54","nodeType":"YulLiteral","src":"5634:3:54","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"5605:3:54","nodeType":"YulIdentifier","src":"5605:3:54"},"nativeSrc":"5605:33:54","nodeType":"YulFunctionCall","src":"5605:33:54"},"nativeSrc":"5602:53:54","nodeType":"YulIf","src":"5602:53:54"},{"nativeSrc":"5664:39:54","nodeType":"YulAssignment","src":"5664:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5693:9:54","nodeType":"YulIdentifier","src":"5693:9:54"}],"functionName":{"name":"abi_decode_uint128","nativeSrc":"5674:18:54","nodeType":"YulIdentifier","src":"5674:18:54"},"nativeSrc":"5674:29:54","nodeType":"YulFunctionCall","src":"5674:29:54"},"variableNames":[{"name":"value0","nativeSrc":"5664:6:54","nodeType":"YulIdentifier","src":"5664:6:54"}]},{"nativeSrc":"5712:48:54","nodeType":"YulAssignment","src":"5712:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5745:9:54","nodeType":"YulIdentifier","src":"5745:9:54"},{"kind":"number","nativeSrc":"5756:2:54","nodeType":"YulLiteral","src":"5756:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5741:3:54","nodeType":"YulIdentifier","src":"5741:3:54"},"nativeSrc":"5741:18:54","nodeType":"YulFunctionCall","src":"5741:18:54"}],"functionName":{"name":"abi_decode_uint128","nativeSrc":"5722:18:54","nodeType":"YulIdentifier","src":"5722:18:54"},"nativeSrc":"5722:38:54","nodeType":"YulFunctionCall","src":"5722:38:54"},"variableNames":[{"name":"value1","nativeSrc":"5712:6:54","nodeType":"YulIdentifier","src":"5712:6:54"}]},{"nativeSrc":"5769:48:54","nodeType":"YulAssignment","src":"5769:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5802:9:54","nodeType":"YulIdentifier","src":"5802:9:54"},{"kind":"number","nativeSrc":"5813:2:54","nodeType":"YulLiteral","src":"5813:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5798:3:54","nodeType":"YulIdentifier","src":"5798:3:54"},"nativeSrc":"5798:18:54","nodeType":"YulFunctionCall","src":"5798:18:54"}],"functionName":{"name":"abi_decode_uint128","nativeSrc":"5779:18:54","nodeType":"YulIdentifier","src":"5779:18:54"},"nativeSrc":"5779:38:54","nodeType":"YulFunctionCall","src":"5779:38:54"},"variableNames":[{"name":"value2","nativeSrc":"5769:6:54","nodeType":"YulIdentifier","src":"5769:6:54"}]},{"nativeSrc":"5826:47:54","nodeType":"YulAssignment","src":"5826:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5858:9:54","nodeType":"YulIdentifier","src":"5858:9:54"},{"kind":"number","nativeSrc":"5869:2:54","nodeType":"YulLiteral","src":"5869:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5854:3:54","nodeType":"YulIdentifier","src":"5854:3:54"},"nativeSrc":"5854:18:54","nodeType":"YulFunctionCall","src":"5854:18:54"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"5836:17:54","nodeType":"YulIdentifier","src":"5836:17:54"},"nativeSrc":"5836:37:54","nodeType":"YulFunctionCall","src":"5836:37:54"},"variableNames":[{"name":"value3","nativeSrc":"5826:6:54","nodeType":"YulIdentifier","src":"5826:6:54"}]},{"nativeSrc":"5882:48:54","nodeType":"YulAssignment","src":"5882:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5914:9:54","nodeType":"YulIdentifier","src":"5914:9:54"},{"kind":"number","nativeSrc":"5925:3:54","nodeType":"YulLiteral","src":"5925:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5910:3:54","nodeType":"YulIdentifier","src":"5910:3:54"},"nativeSrc":"5910:19:54","nodeType":"YulFunctionCall","src":"5910:19:54"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"5892:17:54","nodeType":"YulIdentifier","src":"5892:17:54"},"nativeSrc":"5892:38:54","nodeType":"YulFunctionCall","src":"5892:38:54"},"variableNames":[{"name":"value4","nativeSrc":"5882:6:54","nodeType":"YulIdentifier","src":"5882:6:54"}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nativeSrc":"5456:480:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5526:9:54","nodeType":"YulTypedName","src":"5526:9:54","type":""},{"name":"dataEnd","nativeSrc":"5537:7:54","nodeType":"YulTypedName","src":"5537:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5549:6:54","nodeType":"YulTypedName","src":"5549:6:54","type":""},{"name":"value1","nativeSrc":"5557:6:54","nodeType":"YulTypedName","src":"5557:6:54","type":""},{"name":"value2","nativeSrc":"5565:6:54","nodeType":"YulTypedName","src":"5565:6:54","type":""},{"name":"value3","nativeSrc":"5573:6:54","nodeType":"YulTypedName","src":"5573:6:54","type":""},{"name":"value4","nativeSrc":"5581:6:54","nodeType":"YulTypedName","src":"5581:6:54","type":""}],"src":"5456:480:54"},{"body":{"nativeSrc":"6093:765:54","nodeType":"YulBlock","src":"6093:765:54","statements":[{"body":{"nativeSrc":"6140:16:54","nodeType":"YulBlock","src":"6140:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6149:1:54","nodeType":"YulLiteral","src":"6149:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6152:1:54","nodeType":"YulLiteral","src":"6152:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6142:6:54","nodeType":"YulIdentifier","src":"6142:6:54"},"nativeSrc":"6142:12:54","nodeType":"YulFunctionCall","src":"6142:12:54"},"nativeSrc":"6142:12:54","nodeType":"YulExpressionStatement","src":"6142:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6114:7:54","nodeType":"YulIdentifier","src":"6114:7:54"},{"name":"headStart","nativeSrc":"6123:9:54","nodeType":"YulIdentifier","src":"6123:9:54"}],"functionName":{"name":"sub","nativeSrc":"6110:3:54","nodeType":"YulIdentifier","src":"6110:3:54"},"nativeSrc":"6110:23:54","nodeType":"YulFunctionCall","src":"6110:23:54"},{"kind":"number","nativeSrc":"6135:3:54","nodeType":"YulLiteral","src":"6135:3:54","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"6106:3:54","nodeType":"YulIdentifier","src":"6106:3:54"},"nativeSrc":"6106:33:54","nodeType":"YulFunctionCall","src":"6106:33:54"},"nativeSrc":"6103:53:54","nodeType":"YulIf","src":"6103:53:54"},{"nativeSrc":"6165:38:54","nodeType":"YulAssignment","src":"6165:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6193:9:54","nodeType":"YulIdentifier","src":"6193:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"6175:17:54","nodeType":"YulIdentifier","src":"6175:17:54"},"nativeSrc":"6175:28:54","nodeType":"YulFunctionCall","src":"6175:28:54"},"variableNames":[{"name":"value0","nativeSrc":"6165:6:54","nodeType":"YulIdentifier","src":"6165:6:54"}]},{"nativeSrc":"6212:45:54","nodeType":"YulVariableDeclaration","src":"6212:45:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6242:9:54","nodeType":"YulIdentifier","src":"6242:9:54"},{"kind":"number","nativeSrc":"6253:2:54","nodeType":"YulLiteral","src":"6253:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6238:3:54","nodeType":"YulIdentifier","src":"6238:3:54"},"nativeSrc":"6238:18:54","nodeType":"YulFunctionCall","src":"6238:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"6225:12:54","nodeType":"YulIdentifier","src":"6225:12:54"},"nativeSrc":"6225:32:54","nodeType":"YulFunctionCall","src":"6225:32:54"},"variables":[{"name":"value","nativeSrc":"6216:5:54","nodeType":"YulTypedName","src":"6216:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6291:5:54","nodeType":"YulIdentifier","src":"6291:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"6266:24:54","nodeType":"YulIdentifier","src":"6266:24:54"},"nativeSrc":"6266:31:54","nodeType":"YulFunctionCall","src":"6266:31:54"},"nativeSrc":"6266:31:54","nodeType":"YulExpressionStatement","src":"6266:31:54"},{"nativeSrc":"6306:15:54","nodeType":"YulAssignment","src":"6306:15:54","value":{"name":"value","nativeSrc":"6316:5:54","nodeType":"YulIdentifier","src":"6316:5:54"},"variableNames":[{"name":"value1","nativeSrc":"6306:6:54","nodeType":"YulIdentifier","src":"6306:6:54"}]},{"nativeSrc":"6330:46:54","nodeType":"YulVariableDeclaration","src":"6330:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6361:9:54","nodeType":"YulIdentifier","src":"6361:9:54"},{"kind":"number","nativeSrc":"6372:2:54","nodeType":"YulLiteral","src":"6372:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6357:3:54","nodeType":"YulIdentifier","src":"6357:3:54"},"nativeSrc":"6357:18:54","nodeType":"YulFunctionCall","src":"6357:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"6344:12:54","nodeType":"YulIdentifier","src":"6344:12:54"},"nativeSrc":"6344:32:54","nodeType":"YulFunctionCall","src":"6344:32:54"},"variables":[{"name":"offset","nativeSrc":"6334:6:54","nodeType":"YulTypedName","src":"6334:6:54","type":""}]},{"nativeSrc":"6385:28:54","nodeType":"YulVariableDeclaration","src":"6385:28:54","value":{"kind":"number","nativeSrc":"6395:18:54","nodeType":"YulLiteral","src":"6395:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6389:2:54","nodeType":"YulTypedName","src":"6389:2:54","type":""}]},{"body":{"nativeSrc":"6440:16:54","nodeType":"YulBlock","src":"6440:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6449:1:54","nodeType":"YulLiteral","src":"6449:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6452:1:54","nodeType":"YulLiteral","src":"6452:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6442:6:54","nodeType":"YulIdentifier","src":"6442:6:54"},"nativeSrc":"6442:12:54","nodeType":"YulFunctionCall","src":"6442:12:54"},"nativeSrc":"6442:12:54","nodeType":"YulExpressionStatement","src":"6442:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6428:6:54","nodeType":"YulIdentifier","src":"6428:6:54"},{"name":"_1","nativeSrc":"6436:2:54","nodeType":"YulIdentifier","src":"6436:2:54"}],"functionName":{"name":"gt","nativeSrc":"6425:2:54","nodeType":"YulIdentifier","src":"6425:2:54"},"nativeSrc":"6425:14:54","nodeType":"YulFunctionCall","src":"6425:14:54"},"nativeSrc":"6422:34:54","nodeType":"YulIf","src":"6422:34:54"},{"nativeSrc":"6465:59:54","nodeType":"YulAssignment","src":"6465:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6496:9:54","nodeType":"YulIdentifier","src":"6496:9:54"},{"name":"offset","nativeSrc":"6507:6:54","nodeType":"YulIdentifier","src":"6507:6:54"}],"functionName":{"name":"add","nativeSrc":"6492:3:54","nodeType":"YulIdentifier","src":"6492:3:54"},"nativeSrc":"6492:22:54","nodeType":"YulFunctionCall","src":"6492:22:54"},{"name":"dataEnd","nativeSrc":"6516:7:54","nodeType":"YulIdentifier","src":"6516:7:54"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"6475:16:54","nodeType":"YulIdentifier","src":"6475:16:54"},"nativeSrc":"6475:49:54","nodeType":"YulFunctionCall","src":"6475:49:54"},"variableNames":[{"name":"value2","nativeSrc":"6465:6:54","nodeType":"YulIdentifier","src":"6465:6:54"}]},{"nativeSrc":"6533:47:54","nodeType":"YulVariableDeclaration","src":"6533:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6565:9:54","nodeType":"YulIdentifier","src":"6565:9:54"},{"kind":"number","nativeSrc":"6576:2:54","nodeType":"YulLiteral","src":"6576:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6561:3:54","nodeType":"YulIdentifier","src":"6561:3:54"},"nativeSrc":"6561:18:54","nodeType":"YulFunctionCall","src":"6561:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"6548:12:54","nodeType":"YulIdentifier","src":"6548:12:54"},"nativeSrc":"6548:32:54","nodeType":"YulFunctionCall","src":"6548:32:54"},"variables":[{"name":"value_1","nativeSrc":"6537:7:54","nodeType":"YulTypedName","src":"6537:7:54","type":""}]},{"body":{"nativeSrc":"6637:16:54","nodeType":"YulBlock","src":"6637:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6646:1:54","nodeType":"YulLiteral","src":"6646:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6649:1:54","nodeType":"YulLiteral","src":"6649:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6639:6:54","nodeType":"YulIdentifier","src":"6639:6:54"},"nativeSrc":"6639:12:54","nodeType":"YulFunctionCall","src":"6639:12:54"},"nativeSrc":"6639:12:54","nodeType":"YulExpressionStatement","src":"6639:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6602:7:54","nodeType":"YulIdentifier","src":"6602:7:54"},{"arguments":[{"arguments":[{"name":"value_1","nativeSrc":"6625:7:54","nodeType":"YulIdentifier","src":"6625:7:54"}],"functionName":{"name":"iszero","nativeSrc":"6618:6:54","nodeType":"YulIdentifier","src":"6618:6:54"},"nativeSrc":"6618:15:54","nodeType":"YulFunctionCall","src":"6618:15:54"}],"functionName":{"name":"iszero","nativeSrc":"6611:6:54","nodeType":"YulIdentifier","src":"6611:6:54"},"nativeSrc":"6611:23:54","nodeType":"YulFunctionCall","src":"6611:23:54"}],"functionName":{"name":"eq","nativeSrc":"6599:2:54","nodeType":"YulIdentifier","src":"6599:2:54"},"nativeSrc":"6599:36:54","nodeType":"YulFunctionCall","src":"6599:36:54"}],"functionName":{"name":"iszero","nativeSrc":"6592:6:54","nodeType":"YulIdentifier","src":"6592:6:54"},"nativeSrc":"6592:44:54","nodeType":"YulFunctionCall","src":"6592:44:54"},"nativeSrc":"6589:64:54","nodeType":"YulIf","src":"6589:64:54"},{"nativeSrc":"6662:17:54","nodeType":"YulAssignment","src":"6662:17:54","value":{"name":"value_1","nativeSrc":"6672:7:54","nodeType":"YulIdentifier","src":"6672:7:54"},"variableNames":[{"name":"value3","nativeSrc":"6662:6:54","nodeType":"YulIdentifier","src":"6662:6:54"}]},{"nativeSrc":"6688:49:54","nodeType":"YulVariableDeclaration","src":"6688:49:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6721:9:54","nodeType":"YulIdentifier","src":"6721:9:54"},{"kind":"number","nativeSrc":"6732:3:54","nodeType":"YulLiteral","src":"6732:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6717:3:54","nodeType":"YulIdentifier","src":"6717:3:54"},"nativeSrc":"6717:19:54","nodeType":"YulFunctionCall","src":"6717:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"6704:12:54","nodeType":"YulIdentifier","src":"6704:12:54"},"nativeSrc":"6704:33:54","nodeType":"YulFunctionCall","src":"6704:33:54"},"variables":[{"name":"offset_1","nativeSrc":"6692:8:54","nodeType":"YulTypedName","src":"6692:8:54","type":""}]},{"body":{"nativeSrc":"6766:16:54","nodeType":"YulBlock","src":"6766:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6775:1:54","nodeType":"YulLiteral","src":"6775:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6778:1:54","nodeType":"YulLiteral","src":"6778:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6768:6:54","nodeType":"YulIdentifier","src":"6768:6:54"},"nativeSrc":"6768:12:54","nodeType":"YulFunctionCall","src":"6768:12:54"},"nativeSrc":"6768:12:54","nodeType":"YulExpressionStatement","src":"6768:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"6752:8:54","nodeType":"YulIdentifier","src":"6752:8:54"},{"name":"_1","nativeSrc":"6762:2:54","nodeType":"YulIdentifier","src":"6762:2:54"}],"functionName":{"name":"gt","nativeSrc":"6749:2:54","nodeType":"YulIdentifier","src":"6749:2:54"},"nativeSrc":"6749:16:54","nodeType":"YulFunctionCall","src":"6749:16:54"},"nativeSrc":"6746:36:54","nodeType":"YulIf","src":"6746:36:54"},{"nativeSrc":"6791:61:54","nodeType":"YulAssignment","src":"6791:61:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6822:9:54","nodeType":"YulIdentifier","src":"6822:9:54"},{"name":"offset_1","nativeSrc":"6833:8:54","nodeType":"YulIdentifier","src":"6833:8:54"}],"functionName":{"name":"add","nativeSrc":"6818:3:54","nodeType":"YulIdentifier","src":"6818:3:54"},"nativeSrc":"6818:24:54","nodeType":"YulFunctionCall","src":"6818:24:54"},{"name":"dataEnd","nativeSrc":"6844:7:54","nodeType":"YulIdentifier","src":"6844:7:54"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"6801:16:54","nodeType":"YulIdentifier","src":"6801:16:54"},"nativeSrc":"6801:51:54","nodeType":"YulFunctionCall","src":"6801:51:54"},"variableNames":[{"name":"value4","nativeSrc":"6791:6:54","nodeType":"YulIdentifier","src":"6791:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nativeSrc":"5941:917:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6027:9:54","nodeType":"YulTypedName","src":"6027:9:54","type":""},{"name":"dataEnd","nativeSrc":"6038:7:54","nodeType":"YulTypedName","src":"6038:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6050:6:54","nodeType":"YulTypedName","src":"6050:6:54","type":""},{"name":"value1","nativeSrc":"6058:6:54","nodeType":"YulTypedName","src":"6058:6:54","type":""},{"name":"value2","nativeSrc":"6066:6:54","nodeType":"YulTypedName","src":"6066:6:54","type":""},{"name":"value3","nativeSrc":"6074:6:54","nodeType":"YulTypedName","src":"6074:6:54","type":""},{"name":"value4","nativeSrc":"6082:6:54","nodeType":"YulTypedName","src":"6082:6:54","type":""}],"src":"5941:917:54"},{"body":{"nativeSrc":"6964:125:54","nodeType":"YulBlock","src":"6964:125:54","statements":[{"nativeSrc":"6974:26:54","nodeType":"YulAssignment","src":"6974:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6986:9:54","nodeType":"YulIdentifier","src":"6986:9:54"},{"kind":"number","nativeSrc":"6997:2:54","nodeType":"YulLiteral","src":"6997:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6982:3:54","nodeType":"YulIdentifier","src":"6982:3:54"},"nativeSrc":"6982:18:54","nodeType":"YulFunctionCall","src":"6982:18:54"},"variableNames":[{"name":"tail","nativeSrc":"6974:4:54","nodeType":"YulIdentifier","src":"6974:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7016:9:54","nodeType":"YulIdentifier","src":"7016:9:54"},{"arguments":[{"name":"value0","nativeSrc":"7031:6:54","nodeType":"YulIdentifier","src":"7031:6:54"},{"kind":"number","nativeSrc":"7039:42:54","nodeType":"YulLiteral","src":"7039:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7027:3:54","nodeType":"YulIdentifier","src":"7027:3:54"},"nativeSrc":"7027:55:54","nodeType":"YulFunctionCall","src":"7027:55:54"}],"functionName":{"name":"mstore","nativeSrc":"7009:6:54","nodeType":"YulIdentifier","src":"7009:6:54"},"nativeSrc":"7009:74:54","nodeType":"YulFunctionCall","src":"7009:74:54"},"nativeSrc":"7009:74:54","nodeType":"YulExpressionStatement","src":"7009:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6863:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6933:9:54","nodeType":"YulTypedName","src":"6933:9:54","type":""},{"name":"value0","nativeSrc":"6944:6:54","nodeType":"YulTypedName","src":"6944:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6955:4:54","nodeType":"YulTypedName","src":"6955:4:54","type":""}],"src":"6863:226:54"},{"body":{"nativeSrc":"7189:297:54","nodeType":"YulBlock","src":"7189:297:54","statements":[{"body":{"nativeSrc":"7235:16:54","nodeType":"YulBlock","src":"7235:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7244:1:54","nodeType":"YulLiteral","src":"7244:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7247:1:54","nodeType":"YulLiteral","src":"7247:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7237:6:54","nodeType":"YulIdentifier","src":"7237:6:54"},"nativeSrc":"7237:12:54","nodeType":"YulFunctionCall","src":"7237:12:54"},"nativeSrc":"7237:12:54","nodeType":"YulExpressionStatement","src":"7237:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7210:7:54","nodeType":"YulIdentifier","src":"7210:7:54"},{"name":"headStart","nativeSrc":"7219:9:54","nodeType":"YulIdentifier","src":"7219:9:54"}],"functionName":{"name":"sub","nativeSrc":"7206:3:54","nodeType":"YulIdentifier","src":"7206:3:54"},"nativeSrc":"7206:23:54","nodeType":"YulFunctionCall","src":"7206:23:54"},{"kind":"number","nativeSrc":"7231:2:54","nodeType":"YulLiteral","src":"7231:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7202:3:54","nodeType":"YulIdentifier","src":"7202:3:54"},"nativeSrc":"7202:32:54","nodeType":"YulFunctionCall","src":"7202:32:54"},"nativeSrc":"7199:52:54","nodeType":"YulIf","src":"7199:52:54"},{"nativeSrc":"7260:38:54","nodeType":"YulAssignment","src":"7260:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"7288:9:54","nodeType":"YulIdentifier","src":"7288:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7270:17:54","nodeType":"YulIdentifier","src":"7270:17:54"},"nativeSrc":"7270:28:54","nodeType":"YulFunctionCall","src":"7270:28:54"},"variableNames":[{"name":"value0","nativeSrc":"7260:6:54","nodeType":"YulIdentifier","src":"7260:6:54"}]},{"nativeSrc":"7307:46:54","nodeType":"YulVariableDeclaration","src":"7307:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7338:9:54","nodeType":"YulIdentifier","src":"7338:9:54"},{"kind":"number","nativeSrc":"7349:2:54","nodeType":"YulLiteral","src":"7349:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7334:3:54","nodeType":"YulIdentifier","src":"7334:3:54"},"nativeSrc":"7334:18:54","nodeType":"YulFunctionCall","src":"7334:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"7321:12:54","nodeType":"YulIdentifier","src":"7321:12:54"},"nativeSrc":"7321:32:54","nodeType":"YulFunctionCall","src":"7321:32:54"},"variables":[{"name":"offset","nativeSrc":"7311:6:54","nodeType":"YulTypedName","src":"7311:6:54","type":""}]},{"body":{"nativeSrc":"7396:16:54","nodeType":"YulBlock","src":"7396:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7405:1:54","nodeType":"YulLiteral","src":"7405:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7408:1:54","nodeType":"YulLiteral","src":"7408:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7398:6:54","nodeType":"YulIdentifier","src":"7398:6:54"},"nativeSrc":"7398:12:54","nodeType":"YulFunctionCall","src":"7398:12:54"},"nativeSrc":"7398:12:54","nodeType":"YulExpressionStatement","src":"7398:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7368:6:54","nodeType":"YulIdentifier","src":"7368:6:54"},{"kind":"number","nativeSrc":"7376:18:54","nodeType":"YulLiteral","src":"7376:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7365:2:54","nodeType":"YulIdentifier","src":"7365:2:54"},"nativeSrc":"7365:30:54","nodeType":"YulFunctionCall","src":"7365:30:54"},"nativeSrc":"7362:50:54","nodeType":"YulIf","src":"7362:50:54"},{"nativeSrc":"7421:59:54","nodeType":"YulAssignment","src":"7421:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7452:9:54","nodeType":"YulIdentifier","src":"7452:9:54"},{"name":"offset","nativeSrc":"7463:6:54","nodeType":"YulIdentifier","src":"7463:6:54"}],"functionName":{"name":"add","nativeSrc":"7448:3:54","nodeType":"YulIdentifier","src":"7448:3:54"},"nativeSrc":"7448:22:54","nodeType":"YulFunctionCall","src":"7448:22:54"},{"name":"dataEnd","nativeSrc":"7472:7:54","nodeType":"YulIdentifier","src":"7472:7:54"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"7431:16:54","nodeType":"YulIdentifier","src":"7431:16:54"},"nativeSrc":"7431:49:54","nodeType":"YulFunctionCall","src":"7431:49:54"},"variableNames":[{"name":"value1","nativeSrc":"7421:6:54","nodeType":"YulIdentifier","src":"7421:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nativeSrc":"7094:392:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7147:9:54","nodeType":"YulTypedName","src":"7147:9:54","type":""},{"name":"dataEnd","nativeSrc":"7158:7:54","nodeType":"YulTypedName","src":"7158:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7170:6:54","nodeType":"YulTypedName","src":"7170:6:54","type":""},{"name":"value1","nativeSrc":"7178:6:54","nodeType":"YulTypedName","src":"7178:6:54","type":""}],"src":"7094:392:54"},{"body":{"nativeSrc":"7646:236:54","nodeType":"YulBlock","src":"7646:236:54","statements":[{"nativeSrc":"7656:26:54","nodeType":"YulAssignment","src":"7656:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"7668:9:54","nodeType":"YulIdentifier","src":"7668:9:54"},{"kind":"number","nativeSrc":"7679:2:54","nodeType":"YulLiteral","src":"7679:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7664:3:54","nodeType":"YulIdentifier","src":"7664:3:54"},"nativeSrc":"7664:18:54","nodeType":"YulFunctionCall","src":"7664:18:54"},"variableNames":[{"name":"tail","nativeSrc":"7656:4:54","nodeType":"YulIdentifier","src":"7656:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7698:9:54","nodeType":"YulIdentifier","src":"7698:9:54"},{"arguments":[{"name":"value0","nativeSrc":"7713:6:54","nodeType":"YulIdentifier","src":"7713:6:54"},{"kind":"number","nativeSrc":"7721:18:54","nodeType":"YulLiteral","src":"7721:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7709:3:54","nodeType":"YulIdentifier","src":"7709:3:54"},"nativeSrc":"7709:31:54","nodeType":"YulFunctionCall","src":"7709:31:54"}],"functionName":{"name":"mstore","nativeSrc":"7691:6:54","nodeType":"YulIdentifier","src":"7691:6:54"},"nativeSrc":"7691:50:54","nodeType":"YulFunctionCall","src":"7691:50:54"},"nativeSrc":"7691:50:54","nodeType":"YulExpressionStatement","src":"7691:50:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7761:9:54","nodeType":"YulIdentifier","src":"7761:9:54"},{"kind":"number","nativeSrc":"7772:2:54","nodeType":"YulLiteral","src":"7772:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7757:3:54","nodeType":"YulIdentifier","src":"7757:3:54"},"nativeSrc":"7757:18:54","nodeType":"YulFunctionCall","src":"7757:18:54"},{"arguments":[{"name":"value1","nativeSrc":"7781:6:54","nodeType":"YulIdentifier","src":"7781:6:54"},{"kind":"number","nativeSrc":"7789:42:54","nodeType":"YulLiteral","src":"7789:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7777:3:54","nodeType":"YulIdentifier","src":"7777:3:54"},"nativeSrc":"7777:55:54","nodeType":"YulFunctionCall","src":"7777:55:54"}],"functionName":{"name":"mstore","nativeSrc":"7750:6:54","nodeType":"YulIdentifier","src":"7750:6:54"},"nativeSrc":"7750:83:54","nodeType":"YulFunctionCall","src":"7750:83:54"},"nativeSrc":"7750:83:54","nodeType":"YulExpressionStatement","src":"7750:83:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7853:9:54","nodeType":"YulIdentifier","src":"7853:9:54"},{"kind":"number","nativeSrc":"7864:2:54","nodeType":"YulLiteral","src":"7864:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7849:3:54","nodeType":"YulIdentifier","src":"7849:3:54"},"nativeSrc":"7849:18:54","nodeType":"YulFunctionCall","src":"7849:18:54"},{"name":"value2","nativeSrc":"7869:6:54","nodeType":"YulIdentifier","src":"7869:6:54"}],"functionName":{"name":"mstore","nativeSrc":"7842:6:54","nodeType":"YulIdentifier","src":"7842:6:54"},"nativeSrc":"7842:34:54","nodeType":"YulFunctionCall","src":"7842:34:54"},"nativeSrc":"7842:34:54","nodeType":"YulExpressionStatement","src":"7842:34:54"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nativeSrc":"7491:391:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7599:9:54","nodeType":"YulTypedName","src":"7599:9:54","type":""},{"name":"value2","nativeSrc":"7610:6:54","nodeType":"YulTypedName","src":"7610:6:54","type":""},{"name":"value1","nativeSrc":"7618:6:54","nodeType":"YulTypedName","src":"7618:6:54","type":""},{"name":"value0","nativeSrc":"7626:6:54","nodeType":"YulTypedName","src":"7626:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7637:4:54","nodeType":"YulTypedName","src":"7637:4:54","type":""}],"src":"7491:391:54"},{"body":{"nativeSrc":"7973:233:54","nodeType":"YulBlock","src":"7973:233:54","statements":[{"body":{"nativeSrc":"8019:16:54","nodeType":"YulBlock","src":"8019:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8028:1:54","nodeType":"YulLiteral","src":"8028:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8031:1:54","nodeType":"YulLiteral","src":"8031:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8021:6:54","nodeType":"YulIdentifier","src":"8021:6:54"},"nativeSrc":"8021:12:54","nodeType":"YulFunctionCall","src":"8021:12:54"},"nativeSrc":"8021:12:54","nodeType":"YulExpressionStatement","src":"8021:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7994:7:54","nodeType":"YulIdentifier","src":"7994:7:54"},{"name":"headStart","nativeSrc":"8003:9:54","nodeType":"YulIdentifier","src":"8003:9:54"}],"functionName":{"name":"sub","nativeSrc":"7990:3:54","nodeType":"YulIdentifier","src":"7990:3:54"},"nativeSrc":"7990:23:54","nodeType":"YulFunctionCall","src":"7990:23:54"},{"kind":"number","nativeSrc":"8015:2:54","nodeType":"YulLiteral","src":"8015:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7986:3:54","nodeType":"YulIdentifier","src":"7986:3:54"},"nativeSrc":"7986:32:54","nodeType":"YulFunctionCall","src":"7986:32:54"},"nativeSrc":"7983:52:54","nodeType":"YulIf","src":"7983:52:54"},{"nativeSrc":"8044:38:54","nodeType":"YulAssignment","src":"8044:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8072:9:54","nodeType":"YulIdentifier","src":"8072:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8054:17:54","nodeType":"YulIdentifier","src":"8054:17:54"},"nativeSrc":"8054:28:54","nodeType":"YulFunctionCall","src":"8054:28:54"},"variableNames":[{"name":"value0","nativeSrc":"8044:6:54","nodeType":"YulIdentifier","src":"8044:6:54"}]},{"nativeSrc":"8091:45:54","nodeType":"YulVariableDeclaration","src":"8091:45:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8121:9:54","nodeType":"YulIdentifier","src":"8121:9:54"},{"kind":"number","nativeSrc":"8132:2:54","nodeType":"YulLiteral","src":"8132:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8117:3:54","nodeType":"YulIdentifier","src":"8117:3:54"},"nativeSrc":"8117:18:54","nodeType":"YulFunctionCall","src":"8117:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"8104:12:54","nodeType":"YulIdentifier","src":"8104:12:54"},"nativeSrc":"8104:32:54","nodeType":"YulFunctionCall","src":"8104:32:54"},"variables":[{"name":"value","nativeSrc":"8095:5:54","nodeType":"YulTypedName","src":"8095:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8170:5:54","nodeType":"YulIdentifier","src":"8170:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8145:24:54","nodeType":"YulIdentifier","src":"8145:24:54"},"nativeSrc":"8145:31:54","nodeType":"YulFunctionCall","src":"8145:31:54"},"nativeSrc":"8145:31:54","nodeType":"YulExpressionStatement","src":"8145:31:54"},{"nativeSrc":"8185:15:54","nodeType":"YulAssignment","src":"8185:15:54","value":{"name":"value","nativeSrc":"8195:5:54","nodeType":"YulIdentifier","src":"8195:5:54"},"variableNames":[{"name":"value1","nativeSrc":"8185:6:54","nodeType":"YulIdentifier","src":"8185:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_address","nativeSrc":"7887:319:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7931:9:54","nodeType":"YulTypedName","src":"7931:9:54","type":""},{"name":"dataEnd","nativeSrc":"7942:7:54","nodeType":"YulTypedName","src":"7942:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7954:6:54","nodeType":"YulTypedName","src":"7954:6:54","type":""},{"name":"value1","nativeSrc":"7962:6:54","nodeType":"YulTypedName","src":"7962:6:54","type":""}],"src":"7887:319:54"},{"body":{"nativeSrc":"8310:101:54","nodeType":"YulBlock","src":"8310:101:54","statements":[{"nativeSrc":"8320:26:54","nodeType":"YulAssignment","src":"8320:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8332:9:54","nodeType":"YulIdentifier","src":"8332:9:54"},{"kind":"number","nativeSrc":"8343:2:54","nodeType":"YulLiteral","src":"8343:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8328:3:54","nodeType":"YulIdentifier","src":"8328:3:54"},"nativeSrc":"8328:18:54","nodeType":"YulFunctionCall","src":"8328:18:54"},"variableNames":[{"name":"tail","nativeSrc":"8320:4:54","nodeType":"YulIdentifier","src":"8320:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8362:9:54","nodeType":"YulIdentifier","src":"8362:9:54"},{"arguments":[{"name":"value0","nativeSrc":"8377:6:54","nodeType":"YulIdentifier","src":"8377:6:54"},{"kind":"number","nativeSrc":"8385:18:54","nodeType":"YulLiteral","src":"8385:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8373:3:54","nodeType":"YulIdentifier","src":"8373:3:54"},"nativeSrc":"8373:31:54","nodeType":"YulFunctionCall","src":"8373:31:54"}],"functionName":{"name":"mstore","nativeSrc":"8355:6:54","nodeType":"YulIdentifier","src":"8355:6:54"},"nativeSrc":"8355:50:54","nodeType":"YulFunctionCall","src":"8355:50:54"},"nativeSrc":"8355:50:54","nodeType":"YulExpressionStatement","src":"8355:50:54"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"8211:200:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8279:9:54","nodeType":"YulTypedName","src":"8279:9:54","type":""},{"name":"value0","nativeSrc":"8290:6:54","nodeType":"YulTypedName","src":"8290:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8301:4:54","nodeType":"YulTypedName","src":"8301:4:54","type":""}],"src":"8211:200:54"},{"body":{"nativeSrc":"8517:76:54","nodeType":"YulBlock","src":"8517:76:54","statements":[{"nativeSrc":"8527:26:54","nodeType":"YulAssignment","src":"8527:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8539:9:54","nodeType":"YulIdentifier","src":"8539:9:54"},{"kind":"number","nativeSrc":"8550:2:54","nodeType":"YulLiteral","src":"8550:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8535:3:54","nodeType":"YulIdentifier","src":"8535:3:54"},"nativeSrc":"8535:18:54","nodeType":"YulFunctionCall","src":"8535:18:54"},"variableNames":[{"name":"tail","nativeSrc":"8527:4:54","nodeType":"YulIdentifier","src":"8527:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8569:9:54","nodeType":"YulIdentifier","src":"8569:9:54"},{"name":"value0","nativeSrc":"8580:6:54","nodeType":"YulIdentifier","src":"8580:6:54"}],"functionName":{"name":"mstore","nativeSrc":"8562:6:54","nodeType":"YulIdentifier","src":"8562:6:54"},"nativeSrc":"8562:25:54","nodeType":"YulFunctionCall","src":"8562:25:54"},"nativeSrc":"8562:25:54","nodeType":"YulExpressionStatement","src":"8562:25:54"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"8416:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8486:9:54","nodeType":"YulTypedName","src":"8486:9:54","type":""},{"name":"value0","nativeSrc":"8497:6:54","nodeType":"YulTypedName","src":"8497:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8508:4:54","nodeType":"YulTypedName","src":"8508:4:54","type":""}],"src":"8416:177:54"},{"body":{"nativeSrc":"8807:385:54","nodeType":"YulBlock","src":"8807:385:54","statements":[{"nativeSrc":"8817:27:54","nodeType":"YulAssignment","src":"8817:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8829:9:54","nodeType":"YulIdentifier","src":"8829:9:54"},{"kind":"number","nativeSrc":"8840:3:54","nodeType":"YulLiteral","src":"8840:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"8825:3:54","nodeType":"YulIdentifier","src":"8825:3:54"},"nativeSrc":"8825:19:54","nodeType":"YulFunctionCall","src":"8825:19:54"},"variableNames":[{"name":"tail","nativeSrc":"8817:4:54","nodeType":"YulIdentifier","src":"8817:4:54"}]},{"nativeSrc":"8853:44:54","nodeType":"YulVariableDeclaration","src":"8853:44:54","value":{"kind":"number","nativeSrc":"8863:34:54","nodeType":"YulLiteral","src":"8863:34:54","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"8857:2:54","nodeType":"YulTypedName","src":"8857:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8913:9:54","nodeType":"YulIdentifier","src":"8913:9:54"},{"arguments":[{"name":"value0","nativeSrc":"8928:6:54","nodeType":"YulIdentifier","src":"8928:6:54"},{"name":"_1","nativeSrc":"8936:2:54","nodeType":"YulIdentifier","src":"8936:2:54"}],"functionName":{"name":"and","nativeSrc":"8924:3:54","nodeType":"YulIdentifier","src":"8924:3:54"},"nativeSrc":"8924:15:54","nodeType":"YulFunctionCall","src":"8924:15:54"}],"functionName":{"name":"mstore","nativeSrc":"8906:6:54","nodeType":"YulIdentifier","src":"8906:6:54"},"nativeSrc":"8906:34:54","nodeType":"YulFunctionCall","src":"8906:34:54"},"nativeSrc":"8906:34:54","nodeType":"YulExpressionStatement","src":"8906:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8960:9:54","nodeType":"YulIdentifier","src":"8960:9:54"},{"kind":"number","nativeSrc":"8971:2:54","nodeType":"YulLiteral","src":"8971:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8956:3:54","nodeType":"YulIdentifier","src":"8956:3:54"},"nativeSrc":"8956:18:54","nodeType":"YulFunctionCall","src":"8956:18:54"},{"arguments":[{"name":"value1","nativeSrc":"8980:6:54","nodeType":"YulIdentifier","src":"8980:6:54"},{"name":"_1","nativeSrc":"8988:2:54","nodeType":"YulIdentifier","src":"8988:2:54"}],"functionName":{"name":"and","nativeSrc":"8976:3:54","nodeType":"YulIdentifier","src":"8976:3:54"},"nativeSrc":"8976:15:54","nodeType":"YulFunctionCall","src":"8976:15:54"}],"functionName":{"name":"mstore","nativeSrc":"8949:6:54","nodeType":"YulIdentifier","src":"8949:6:54"},"nativeSrc":"8949:43:54","nodeType":"YulFunctionCall","src":"8949:43:54"},"nativeSrc":"8949:43:54","nodeType":"YulExpressionStatement","src":"8949:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9012:9:54","nodeType":"YulIdentifier","src":"9012:9:54"},{"kind":"number","nativeSrc":"9023:2:54","nodeType":"YulLiteral","src":"9023:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9008:3:54","nodeType":"YulIdentifier","src":"9008:3:54"},"nativeSrc":"9008:18:54","nodeType":"YulFunctionCall","src":"9008:18:54"},{"arguments":[{"name":"value2","nativeSrc":"9032:6:54","nodeType":"YulIdentifier","src":"9032:6:54"},{"name":"_1","nativeSrc":"9040:2:54","nodeType":"YulIdentifier","src":"9040:2:54"}],"functionName":{"name":"and","nativeSrc":"9028:3:54","nodeType":"YulIdentifier","src":"9028:3:54"},"nativeSrc":"9028:15:54","nodeType":"YulFunctionCall","src":"9028:15:54"}],"functionName":{"name":"mstore","nativeSrc":"9001:6:54","nodeType":"YulIdentifier","src":"9001:6:54"},"nativeSrc":"9001:43:54","nodeType":"YulFunctionCall","src":"9001:43:54"},"nativeSrc":"9001:43:54","nodeType":"YulExpressionStatement","src":"9001:43:54"},{"nativeSrc":"9053:28:54","nodeType":"YulVariableDeclaration","src":"9053:28:54","value":{"kind":"number","nativeSrc":"9063:18:54","nodeType":"YulLiteral","src":"9063:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"9057:2:54","nodeType":"YulTypedName","src":"9057:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9101:9:54","nodeType":"YulIdentifier","src":"9101:9:54"},{"kind":"number","nativeSrc":"9112:2:54","nodeType":"YulLiteral","src":"9112:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9097:3:54","nodeType":"YulIdentifier","src":"9097:3:54"},"nativeSrc":"9097:18:54","nodeType":"YulFunctionCall","src":"9097:18:54"},{"arguments":[{"name":"value3","nativeSrc":"9121:6:54","nodeType":"YulIdentifier","src":"9121:6:54"},{"name":"_2","nativeSrc":"9129:2:54","nodeType":"YulIdentifier","src":"9129:2:54"}],"functionName":{"name":"and","nativeSrc":"9117:3:54","nodeType":"YulIdentifier","src":"9117:3:54"},"nativeSrc":"9117:15:54","nodeType":"YulFunctionCall","src":"9117:15:54"}],"functionName":{"name":"mstore","nativeSrc":"9090:6:54","nodeType":"YulIdentifier","src":"9090:6:54"},"nativeSrc":"9090:43:54","nodeType":"YulFunctionCall","src":"9090:43:54"},"nativeSrc":"9090:43:54","nodeType":"YulExpressionStatement","src":"9090:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9153:9:54","nodeType":"YulIdentifier","src":"9153:9:54"},{"kind":"number","nativeSrc":"9164:3:54","nodeType":"YulLiteral","src":"9164:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9149:3:54","nodeType":"YulIdentifier","src":"9149:3:54"},"nativeSrc":"9149:19:54","nodeType":"YulFunctionCall","src":"9149:19:54"},{"arguments":[{"name":"value4","nativeSrc":"9174:6:54","nodeType":"YulIdentifier","src":"9174:6:54"},{"name":"_2","nativeSrc":"9182:2:54","nodeType":"YulIdentifier","src":"9182:2:54"}],"functionName":{"name":"and","nativeSrc":"9170:3:54","nodeType":"YulIdentifier","src":"9170:3:54"},"nativeSrc":"9170:15:54","nodeType":"YulFunctionCall","src":"9170:15:54"}],"functionName":{"name":"mstore","nativeSrc":"9142:6:54","nodeType":"YulIdentifier","src":"9142:6:54"},"nativeSrc":"9142:44:54","nodeType":"YulFunctionCall","src":"9142:44:54"},"nativeSrc":"9142:44:54","nodeType":"YulExpressionStatement","src":"9142:44:54"}]},"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":"8598:594:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8744:9:54","nodeType":"YulTypedName","src":"8744:9:54","type":""},{"name":"value4","nativeSrc":"8755:6:54","nodeType":"YulTypedName","src":"8755:6:54","type":""},{"name":"value3","nativeSrc":"8763:6:54","nodeType":"YulTypedName","src":"8763:6:54","type":""},{"name":"value2","nativeSrc":"8771:6:54","nodeType":"YulTypedName","src":"8771:6:54","type":""},{"name":"value1","nativeSrc":"8779:6:54","nodeType":"YulTypedName","src":"8779:6:54","type":""},{"name":"value0","nativeSrc":"8787:6:54","nodeType":"YulTypedName","src":"8787:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8798:4:54","nodeType":"YulTypedName","src":"8798:4:54","type":""}],"src":"8598:594:54"},{"body":{"nativeSrc":"9338:648:54","nodeType":"YulBlock","src":"9338:648:54","statements":[{"body":{"nativeSrc":"9384:16:54","nodeType":"YulBlock","src":"9384:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9393:1:54","nodeType":"YulLiteral","src":"9393:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"9396:1:54","nodeType":"YulLiteral","src":"9396:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9386:6:54","nodeType":"YulIdentifier","src":"9386:6:54"},"nativeSrc":"9386:12:54","nodeType":"YulFunctionCall","src":"9386:12:54"},"nativeSrc":"9386:12:54","nodeType":"YulExpressionStatement","src":"9386:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9359:7:54","nodeType":"YulIdentifier","src":"9359:7:54"},{"name":"headStart","nativeSrc":"9368:9:54","nodeType":"YulIdentifier","src":"9368:9:54"}],"functionName":{"name":"sub","nativeSrc":"9355:3:54","nodeType":"YulIdentifier","src":"9355:3:54"},"nativeSrc":"9355:23:54","nodeType":"YulFunctionCall","src":"9355:23:54"},{"kind":"number","nativeSrc":"9380:2:54","nodeType":"YulLiteral","src":"9380:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"9351:3:54","nodeType":"YulIdentifier","src":"9351:3:54"},"nativeSrc":"9351:32:54","nodeType":"YulFunctionCall","src":"9351:32:54"},"nativeSrc":"9348:52:54","nodeType":"YulIf","src":"9348:52:54"},{"nativeSrc":"9409:38:54","nodeType":"YulAssignment","src":"9409:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9437:9:54","nodeType":"YulIdentifier","src":"9437:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"9419:17:54","nodeType":"YulIdentifier","src":"9419:17:54"},"nativeSrc":"9419:28:54","nodeType":"YulFunctionCall","src":"9419:28:54"},"variableNames":[{"name":"value0","nativeSrc":"9409:6:54","nodeType":"YulIdentifier","src":"9409:6:54"}]},{"nativeSrc":"9456:46:54","nodeType":"YulVariableDeclaration","src":"9456:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9487:9:54","nodeType":"YulIdentifier","src":"9487:9:54"},{"kind":"number","nativeSrc":"9498:2:54","nodeType":"YulLiteral","src":"9498:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9483:3:54","nodeType":"YulIdentifier","src":"9483:3:54"},"nativeSrc":"9483:18:54","nodeType":"YulFunctionCall","src":"9483:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"9470:12:54","nodeType":"YulIdentifier","src":"9470:12:54"},"nativeSrc":"9470:32:54","nodeType":"YulFunctionCall","src":"9470:32:54"},"variables":[{"name":"offset","nativeSrc":"9460:6:54","nodeType":"YulTypedName","src":"9460:6:54","type":""}]},{"nativeSrc":"9511:28:54","nodeType":"YulVariableDeclaration","src":"9511:28:54","value":{"kind":"number","nativeSrc":"9521:18:54","nodeType":"YulLiteral","src":"9521:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"9515:2:54","nodeType":"YulTypedName","src":"9515:2:54","type":""}]},{"body":{"nativeSrc":"9566:16:54","nodeType":"YulBlock","src":"9566:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9575:1:54","nodeType":"YulLiteral","src":"9575:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"9578:1:54","nodeType":"YulLiteral","src":"9578:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9568:6:54","nodeType":"YulIdentifier","src":"9568:6:54"},"nativeSrc":"9568:12:54","nodeType":"YulFunctionCall","src":"9568:12:54"},"nativeSrc":"9568:12:54","nodeType":"YulExpressionStatement","src":"9568:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9554:6:54","nodeType":"YulIdentifier","src":"9554:6:54"},{"name":"_1","nativeSrc":"9562:2:54","nodeType":"YulIdentifier","src":"9562:2:54"}],"functionName":{"name":"gt","nativeSrc":"9551:2:54","nodeType":"YulIdentifier","src":"9551:2:54"},"nativeSrc":"9551:14:54","nodeType":"YulFunctionCall","src":"9551:14:54"},"nativeSrc":"9548:34:54","nodeType":"YulIf","src":"9548:34:54"},{"nativeSrc":"9591:84:54","nodeType":"YulVariableDeclaration","src":"9591:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9647:9:54","nodeType":"YulIdentifier","src":"9647:9:54"},{"name":"offset","nativeSrc":"9658:6:54","nodeType":"YulIdentifier","src":"9658:6:54"}],"functionName":{"name":"add","nativeSrc":"9643:3:54","nodeType":"YulIdentifier","src":"9643:3:54"},"nativeSrc":"9643:22:54","nodeType":"YulFunctionCall","src":"9643:22:54"},{"name":"dataEnd","nativeSrc":"9667:7:54","nodeType":"YulIdentifier","src":"9667:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"9617:25:54","nodeType":"YulIdentifier","src":"9617:25:54"},"nativeSrc":"9617:58:54","nodeType":"YulFunctionCall","src":"9617:58:54"},"variables":[{"name":"value1_1","nativeSrc":"9595:8:54","nodeType":"YulTypedName","src":"9595:8:54","type":""},{"name":"value2_1","nativeSrc":"9605:8:54","nodeType":"YulTypedName","src":"9605:8:54","type":""}]},{"nativeSrc":"9684:18:54","nodeType":"YulAssignment","src":"9684:18:54","value":{"name":"value1_1","nativeSrc":"9694:8:54","nodeType":"YulIdentifier","src":"9694:8:54"},"variableNames":[{"name":"value1","nativeSrc":"9684:6:54","nodeType":"YulIdentifier","src":"9684:6:54"}]},{"nativeSrc":"9711:18:54","nodeType":"YulAssignment","src":"9711:18:54","value":{"name":"value2_1","nativeSrc":"9721:8:54","nodeType":"YulIdentifier","src":"9721:8:54"},"variableNames":[{"name":"value2","nativeSrc":"9711:6:54","nodeType":"YulIdentifier","src":"9711:6:54"}]},{"nativeSrc":"9738:48:54","nodeType":"YulVariableDeclaration","src":"9738:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9771:9:54","nodeType":"YulIdentifier","src":"9771:9:54"},{"kind":"number","nativeSrc":"9782:2:54","nodeType":"YulLiteral","src":"9782:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9767:3:54","nodeType":"YulIdentifier","src":"9767:3:54"},"nativeSrc":"9767:18:54","nodeType":"YulFunctionCall","src":"9767:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"9754:12:54","nodeType":"YulIdentifier","src":"9754:12:54"},"nativeSrc":"9754:32:54","nodeType":"YulFunctionCall","src":"9754:32:54"},"variables":[{"name":"offset_1","nativeSrc":"9742:8:54","nodeType":"YulTypedName","src":"9742:8:54","type":""}]},{"body":{"nativeSrc":"9815:16:54","nodeType":"YulBlock","src":"9815:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9824:1:54","nodeType":"YulLiteral","src":"9824:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"9827:1:54","nodeType":"YulLiteral","src":"9827:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9817:6:54","nodeType":"YulIdentifier","src":"9817:6:54"},"nativeSrc":"9817:12:54","nodeType":"YulFunctionCall","src":"9817:12:54"},"nativeSrc":"9817:12:54","nodeType":"YulExpressionStatement","src":"9817:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"9801:8:54","nodeType":"YulIdentifier","src":"9801:8:54"},{"name":"_1","nativeSrc":"9811:2:54","nodeType":"YulIdentifier","src":"9811:2:54"}],"functionName":{"name":"gt","nativeSrc":"9798:2:54","nodeType":"YulIdentifier","src":"9798:2:54"},"nativeSrc":"9798:16:54","nodeType":"YulFunctionCall","src":"9798:16:54"},"nativeSrc":"9795:36:54","nodeType":"YulIf","src":"9795:36:54"},{"nativeSrc":"9840:86:54","nodeType":"YulVariableDeclaration","src":"9840:86:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9896:9:54","nodeType":"YulIdentifier","src":"9896:9:54"},{"name":"offset_1","nativeSrc":"9907:8:54","nodeType":"YulIdentifier","src":"9907:8:54"}],"functionName":{"name":"add","nativeSrc":"9892:3:54","nodeType":"YulIdentifier","src":"9892:3:54"},"nativeSrc":"9892:24:54","nodeType":"YulFunctionCall","src":"9892:24:54"},{"name":"dataEnd","nativeSrc":"9918:7:54","nodeType":"YulIdentifier","src":"9918:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"9866:25:54","nodeType":"YulIdentifier","src":"9866:25:54"},"nativeSrc":"9866:60:54","nodeType":"YulFunctionCall","src":"9866:60:54"},"variables":[{"name":"value3_1","nativeSrc":"9844:8:54","nodeType":"YulTypedName","src":"9844:8:54","type":""},{"name":"value4_1","nativeSrc":"9854:8:54","nodeType":"YulTypedName","src":"9854:8:54","type":""}]},{"nativeSrc":"9935:18:54","nodeType":"YulAssignment","src":"9935:18:54","value":{"name":"value3_1","nativeSrc":"9945:8:54","nodeType":"YulIdentifier","src":"9945:8:54"},"variableNames":[{"name":"value3","nativeSrc":"9935:6:54","nodeType":"YulIdentifier","src":"9935:6:54"}]},{"nativeSrc":"9962:18:54","nodeType":"YulAssignment","src":"9962:18:54","value":{"name":"value4_1","nativeSrc":"9972:8:54","nodeType":"YulIdentifier","src":"9972:8:54"},"variableNames":[{"name":"value4","nativeSrc":"9962:6:54","nodeType":"YulIdentifier","src":"9962:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"9197:789:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9272:9:54","nodeType":"YulTypedName","src":"9272:9:54","type":""},{"name":"dataEnd","nativeSrc":"9283:7:54","nodeType":"YulTypedName","src":"9283:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9295:6:54","nodeType":"YulTypedName","src":"9295:6:54","type":""},{"name":"value1","nativeSrc":"9303:6:54","nodeType":"YulTypedName","src":"9303:6:54","type":""},{"name":"value2","nativeSrc":"9311:6:54","nodeType":"YulTypedName","src":"9311:6:54","type":""},{"name":"value3","nativeSrc":"9319:6:54","nodeType":"YulTypedName","src":"9319:6:54","type":""},{"name":"value4","nativeSrc":"9327:6:54","nodeType":"YulTypedName","src":"9327:6:54","type":""}],"src":"9197:789:54"},{"body":{"nativeSrc":"10061:110:54","nodeType":"YulBlock","src":"10061:110:54","statements":[{"body":{"nativeSrc":"10107:16:54","nodeType":"YulBlock","src":"10107:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10116:1:54","nodeType":"YulLiteral","src":"10116:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"10119:1:54","nodeType":"YulLiteral","src":"10119:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10109:6:54","nodeType":"YulIdentifier","src":"10109:6:54"},"nativeSrc":"10109:12:54","nodeType":"YulFunctionCall","src":"10109:12:54"},"nativeSrc":"10109:12:54","nodeType":"YulExpressionStatement","src":"10109:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10082:7:54","nodeType":"YulIdentifier","src":"10082:7:54"},{"name":"headStart","nativeSrc":"10091:9:54","nodeType":"YulIdentifier","src":"10091:9:54"}],"functionName":{"name":"sub","nativeSrc":"10078:3:54","nodeType":"YulIdentifier","src":"10078:3:54"},"nativeSrc":"10078:23:54","nodeType":"YulFunctionCall","src":"10078:23:54"},{"kind":"number","nativeSrc":"10103:2:54","nodeType":"YulLiteral","src":"10103:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10074:3:54","nodeType":"YulIdentifier","src":"10074:3:54"},"nativeSrc":"10074:32:54","nodeType":"YulFunctionCall","src":"10074:32:54"},"nativeSrc":"10071:52:54","nodeType":"YulIf","src":"10071:52:54"},{"nativeSrc":"10132:33:54","nodeType":"YulAssignment","src":"10132:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10155:9:54","nodeType":"YulIdentifier","src":"10155:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"10142:12:54","nodeType":"YulIdentifier","src":"10142:12:54"},"nativeSrc":"10142:23:54","nodeType":"YulFunctionCall","src":"10142:23:54"},"variableNames":[{"name":"value0","nativeSrc":"10132:6:54","nodeType":"YulIdentifier","src":"10132:6:54"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"9991:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10027:9:54","nodeType":"YulTypedName","src":"10027:9:54","type":""},{"name":"dataEnd","nativeSrc":"10038:7:54","nodeType":"YulTypedName","src":"10038:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10050:6:54","nodeType":"YulTypedName","src":"10050:6:54","type":""}],"src":"9991:180:54"},{"body":{"nativeSrc":"10263:301:54","nodeType":"YulBlock","src":"10263:301:54","statements":[{"body":{"nativeSrc":"10309:16:54","nodeType":"YulBlock","src":"10309:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10318:1:54","nodeType":"YulLiteral","src":"10318:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"10321:1:54","nodeType":"YulLiteral","src":"10321:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10311:6:54","nodeType":"YulIdentifier","src":"10311:6:54"},"nativeSrc":"10311:12:54","nodeType":"YulFunctionCall","src":"10311:12:54"},"nativeSrc":"10311:12:54","nodeType":"YulExpressionStatement","src":"10311:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10284:7:54","nodeType":"YulIdentifier","src":"10284:7:54"},{"name":"headStart","nativeSrc":"10293:9:54","nodeType":"YulIdentifier","src":"10293:9:54"}],"functionName":{"name":"sub","nativeSrc":"10280:3:54","nodeType":"YulIdentifier","src":"10280:3:54"},"nativeSrc":"10280:23:54","nodeType":"YulFunctionCall","src":"10280:23:54"},{"kind":"number","nativeSrc":"10305:2:54","nodeType":"YulLiteral","src":"10305:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10276:3:54","nodeType":"YulIdentifier","src":"10276:3:54"},"nativeSrc":"10276:32:54","nodeType":"YulFunctionCall","src":"10276:32:54"},"nativeSrc":"10273:52:54","nodeType":"YulIf","src":"10273:52:54"},{"nativeSrc":"10334:36:54","nodeType":"YulVariableDeclaration","src":"10334:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10360:9:54","nodeType":"YulIdentifier","src":"10360:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"10347:12:54","nodeType":"YulIdentifier","src":"10347:12:54"},"nativeSrc":"10347:23:54","nodeType":"YulFunctionCall","src":"10347:23:54"},"variables":[{"name":"value","nativeSrc":"10338:5:54","nodeType":"YulTypedName","src":"10338:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10404:5:54","nodeType":"YulIdentifier","src":"10404:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10379:24:54","nodeType":"YulIdentifier","src":"10379:24:54"},"nativeSrc":"10379:31:54","nodeType":"YulFunctionCall","src":"10379:31:54"},"nativeSrc":"10379:31:54","nodeType":"YulExpressionStatement","src":"10379:31:54"},{"nativeSrc":"10419:15:54","nodeType":"YulAssignment","src":"10419:15:54","value":{"name":"value","nativeSrc":"10429:5:54","nodeType":"YulIdentifier","src":"10429:5:54"},"variableNames":[{"name":"value0","nativeSrc":"10419:6:54","nodeType":"YulIdentifier","src":"10419:6:54"}]},{"nativeSrc":"10443:47:54","nodeType":"YulVariableDeclaration","src":"10443:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10475:9:54","nodeType":"YulIdentifier","src":"10475:9:54"},{"kind":"number","nativeSrc":"10486:2:54","nodeType":"YulLiteral","src":"10486:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10471:3:54","nodeType":"YulIdentifier","src":"10471:3:54"},"nativeSrc":"10471:18:54","nodeType":"YulFunctionCall","src":"10471:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"10458:12:54","nodeType":"YulIdentifier","src":"10458:12:54"},"nativeSrc":"10458:32:54","nodeType":"YulFunctionCall","src":"10458:32:54"},"variables":[{"name":"value_1","nativeSrc":"10447:7:54","nodeType":"YulTypedName","src":"10447:7:54","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"10524:7:54","nodeType":"YulIdentifier","src":"10524:7:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10499:24:54","nodeType":"YulIdentifier","src":"10499:24:54"},"nativeSrc":"10499:33:54","nodeType":"YulFunctionCall","src":"10499:33:54"},"nativeSrc":"10499:33:54","nodeType":"YulExpressionStatement","src":"10499:33:54"},{"nativeSrc":"10541:17:54","nodeType":"YulAssignment","src":"10541:17:54","value":{"name":"value_1","nativeSrc":"10551:7:54","nodeType":"YulIdentifier","src":"10551:7:54"},"variableNames":[{"name":"value1","nativeSrc":"10541:6:54","nodeType":"YulIdentifier","src":"10541:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"10176:388:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10221:9:54","nodeType":"YulTypedName","src":"10221:9:54","type":""},{"name":"dataEnd","nativeSrc":"10232:7:54","nodeType":"YulTypedName","src":"10232:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10244:6:54","nodeType":"YulTypedName","src":"10244:6:54","type":""},{"name":"value1","nativeSrc":"10252:6:54","nodeType":"YulTypedName","src":"10252:6:54","type":""}],"src":"10176:388:54"},{"body":{"nativeSrc":"10760:876:54","nodeType":"YulBlock","src":"10760:876:54","statements":[{"body":{"nativeSrc":"10807:16:54","nodeType":"YulBlock","src":"10807:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10816:1:54","nodeType":"YulLiteral","src":"10816:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"10819:1:54","nodeType":"YulLiteral","src":"10819:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10809:6:54","nodeType":"YulIdentifier","src":"10809:6:54"},"nativeSrc":"10809:12:54","nodeType":"YulFunctionCall","src":"10809:12:54"},"nativeSrc":"10809:12:54","nodeType":"YulExpressionStatement","src":"10809:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10781:7:54","nodeType":"YulIdentifier","src":"10781:7:54"},{"name":"headStart","nativeSrc":"10790:9:54","nodeType":"YulIdentifier","src":"10790:9:54"}],"functionName":{"name":"sub","nativeSrc":"10777:3:54","nodeType":"YulIdentifier","src":"10777:3:54"},"nativeSrc":"10777:23:54","nodeType":"YulFunctionCall","src":"10777:23:54"},{"kind":"number","nativeSrc":"10802:3:54","nodeType":"YulLiteral","src":"10802:3:54","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"10773:3:54","nodeType":"YulIdentifier","src":"10773:3:54"},"nativeSrc":"10773:33:54","nodeType":"YulFunctionCall","src":"10773:33:54"},"nativeSrc":"10770:53:54","nodeType":"YulIf","src":"10770:53:54"},{"nativeSrc":"10832:38:54","nodeType":"YulAssignment","src":"10832:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10860:9:54","nodeType":"YulIdentifier","src":"10860:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"10842:17:54","nodeType":"YulIdentifier","src":"10842:17:54"},"nativeSrc":"10842:28:54","nodeType":"YulFunctionCall","src":"10842:28:54"},"variableNames":[{"name":"value0","nativeSrc":"10832:6:54","nodeType":"YulIdentifier","src":"10832:6:54"}]},{"nativeSrc":"10879:46:54","nodeType":"YulVariableDeclaration","src":"10879:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10910:9:54","nodeType":"YulIdentifier","src":"10910:9:54"},{"kind":"number","nativeSrc":"10921:2:54","nodeType":"YulLiteral","src":"10921:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10906:3:54","nodeType":"YulIdentifier","src":"10906:3:54"},"nativeSrc":"10906:18:54","nodeType":"YulFunctionCall","src":"10906:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"10893:12:54","nodeType":"YulIdentifier","src":"10893:12:54"},"nativeSrc":"10893:32:54","nodeType":"YulFunctionCall","src":"10893:32:54"},"variables":[{"name":"offset","nativeSrc":"10883:6:54","nodeType":"YulTypedName","src":"10883:6:54","type":""}]},{"nativeSrc":"10934:28:54","nodeType":"YulVariableDeclaration","src":"10934:28:54","value":{"kind":"number","nativeSrc":"10944:18:54","nodeType":"YulLiteral","src":"10944:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"10938:2:54","nodeType":"YulTypedName","src":"10938:2:54","type":""}]},{"body":{"nativeSrc":"10989:16:54","nodeType":"YulBlock","src":"10989:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10998:1:54","nodeType":"YulLiteral","src":"10998:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"11001:1:54","nodeType":"YulLiteral","src":"11001:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10991:6:54","nodeType":"YulIdentifier","src":"10991:6:54"},"nativeSrc":"10991:12:54","nodeType":"YulFunctionCall","src":"10991:12:54"},"nativeSrc":"10991:12:54","nodeType":"YulExpressionStatement","src":"10991:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10977:6:54","nodeType":"YulIdentifier","src":"10977:6:54"},{"name":"_1","nativeSrc":"10985:2:54","nodeType":"YulIdentifier","src":"10985:2:54"}],"functionName":{"name":"gt","nativeSrc":"10974:2:54","nodeType":"YulIdentifier","src":"10974:2:54"},"nativeSrc":"10974:14:54","nodeType":"YulFunctionCall","src":"10974:14:54"},"nativeSrc":"10971:34:54","nodeType":"YulIf","src":"10971:34:54"},{"nativeSrc":"11014:84:54","nodeType":"YulVariableDeclaration","src":"11014:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11070:9:54","nodeType":"YulIdentifier","src":"11070:9:54"},{"name":"offset","nativeSrc":"11081:6:54","nodeType":"YulIdentifier","src":"11081:6:54"}],"functionName":{"name":"add","nativeSrc":"11066:3:54","nodeType":"YulIdentifier","src":"11066:3:54"},"nativeSrc":"11066:22:54","nodeType":"YulFunctionCall","src":"11066:22:54"},{"name":"dataEnd","nativeSrc":"11090:7:54","nodeType":"YulIdentifier","src":"11090:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"11040:25:54","nodeType":"YulIdentifier","src":"11040:25:54"},"nativeSrc":"11040:58:54","nodeType":"YulFunctionCall","src":"11040:58:54"},"variables":[{"name":"value1_1","nativeSrc":"11018:8:54","nodeType":"YulTypedName","src":"11018:8:54","type":""},{"name":"value2_1","nativeSrc":"11028:8:54","nodeType":"YulTypedName","src":"11028:8:54","type":""}]},{"nativeSrc":"11107:18:54","nodeType":"YulAssignment","src":"11107:18:54","value":{"name":"value1_1","nativeSrc":"11117:8:54","nodeType":"YulIdentifier","src":"11117:8:54"},"variableNames":[{"name":"value1","nativeSrc":"11107:6:54","nodeType":"YulIdentifier","src":"11107:6:54"}]},{"nativeSrc":"11134:18:54","nodeType":"YulAssignment","src":"11134:18:54","value":{"name":"value2_1","nativeSrc":"11144:8:54","nodeType":"YulIdentifier","src":"11144:8:54"},"variableNames":[{"name":"value2","nativeSrc":"11134:6:54","nodeType":"YulIdentifier","src":"11134:6:54"}]},{"nativeSrc":"11161:45:54","nodeType":"YulVariableDeclaration","src":"11161:45:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11191:9:54","nodeType":"YulIdentifier","src":"11191:9:54"},{"kind":"number","nativeSrc":"11202:2:54","nodeType":"YulLiteral","src":"11202:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11187:3:54","nodeType":"YulIdentifier","src":"11187:3:54"},"nativeSrc":"11187:18:54","nodeType":"YulFunctionCall","src":"11187:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"11174:12:54","nodeType":"YulIdentifier","src":"11174:12:54"},"nativeSrc":"11174:32:54","nodeType":"YulFunctionCall","src":"11174:32:54"},"variables":[{"name":"value","nativeSrc":"11165:5:54","nodeType":"YulTypedName","src":"11165:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11240:5:54","nodeType":"YulIdentifier","src":"11240:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11215:24:54","nodeType":"YulIdentifier","src":"11215:24:54"},"nativeSrc":"11215:31:54","nodeType":"YulFunctionCall","src":"11215:31:54"},"nativeSrc":"11215:31:54","nodeType":"YulExpressionStatement","src":"11215:31:54"},{"nativeSrc":"11255:15:54","nodeType":"YulAssignment","src":"11255:15:54","value":{"name":"value","nativeSrc":"11265:5:54","nodeType":"YulIdentifier","src":"11265:5:54"},"variableNames":[{"name":"value3","nativeSrc":"11255:6:54","nodeType":"YulIdentifier","src":"11255:6:54"}]},{"nativeSrc":"11279:47:54","nodeType":"YulAssignment","src":"11279:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11311:9:54","nodeType":"YulIdentifier","src":"11311:9:54"},{"kind":"number","nativeSrc":"11322:2:54","nodeType":"YulLiteral","src":"11322:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11307:3:54","nodeType":"YulIdentifier","src":"11307:3:54"},"nativeSrc":"11307:18:54","nodeType":"YulFunctionCall","src":"11307:18:54"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"11289:17:54","nodeType":"YulIdentifier","src":"11289:17:54"},"nativeSrc":"11289:37:54","nodeType":"YulFunctionCall","src":"11289:37:54"},"variableNames":[{"name":"value4","nativeSrc":"11279:6:54","nodeType":"YulIdentifier","src":"11279:6:54"}]},{"nativeSrc":"11335:43:54","nodeType":"YulAssignment","src":"11335:43:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11362:9:54","nodeType":"YulIdentifier","src":"11362:9:54"},{"kind":"number","nativeSrc":"11373:3:54","nodeType":"YulLiteral","src":"11373:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11358:3:54","nodeType":"YulIdentifier","src":"11358:3:54"},"nativeSrc":"11358:19:54","nodeType":"YulFunctionCall","src":"11358:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"11345:12:54","nodeType":"YulIdentifier","src":"11345:12:54"},"nativeSrc":"11345:33:54","nodeType":"YulFunctionCall","src":"11345:33:54"},"variableNames":[{"name":"value5","nativeSrc":"11335:6:54","nodeType":"YulIdentifier","src":"11335:6:54"}]},{"nativeSrc":"11387:49:54","nodeType":"YulVariableDeclaration","src":"11387:49:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11420:9:54","nodeType":"YulIdentifier","src":"11420:9:54"},{"kind":"number","nativeSrc":"11431:3:54","nodeType":"YulLiteral","src":"11431:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"11416:3:54","nodeType":"YulIdentifier","src":"11416:3:54"},"nativeSrc":"11416:19:54","nodeType":"YulFunctionCall","src":"11416:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"11403:12:54","nodeType":"YulIdentifier","src":"11403:12:54"},"nativeSrc":"11403:33:54","nodeType":"YulFunctionCall","src":"11403:33:54"},"variables":[{"name":"offset_1","nativeSrc":"11391:8:54","nodeType":"YulTypedName","src":"11391:8:54","type":""}]},{"body":{"nativeSrc":"11465:16:54","nodeType":"YulBlock","src":"11465:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11474:1:54","nodeType":"YulLiteral","src":"11474:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"11477:1:54","nodeType":"YulLiteral","src":"11477:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11467:6:54","nodeType":"YulIdentifier","src":"11467:6:54"},"nativeSrc":"11467:12:54","nodeType":"YulFunctionCall","src":"11467:12:54"},"nativeSrc":"11467:12:54","nodeType":"YulExpressionStatement","src":"11467:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"11451:8:54","nodeType":"YulIdentifier","src":"11451:8:54"},{"name":"_1","nativeSrc":"11461:2:54","nodeType":"YulIdentifier","src":"11461:2:54"}],"functionName":{"name":"gt","nativeSrc":"11448:2:54","nodeType":"YulIdentifier","src":"11448:2:54"},"nativeSrc":"11448:16:54","nodeType":"YulFunctionCall","src":"11448:16:54"},"nativeSrc":"11445:36:54","nodeType":"YulIf","src":"11445:36:54"},{"nativeSrc":"11490:86:54","nodeType":"YulVariableDeclaration","src":"11490:86:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11546:9:54","nodeType":"YulIdentifier","src":"11546:9:54"},{"name":"offset_1","nativeSrc":"11557:8:54","nodeType":"YulIdentifier","src":"11557:8:54"}],"functionName":{"name":"add","nativeSrc":"11542:3:54","nodeType":"YulIdentifier","src":"11542:3:54"},"nativeSrc":"11542:24:54","nodeType":"YulFunctionCall","src":"11542:24:54"},{"name":"dataEnd","nativeSrc":"11568:7:54","nodeType":"YulIdentifier","src":"11568:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"11516:25:54","nodeType":"YulIdentifier","src":"11516:25:54"},"nativeSrc":"11516:60:54","nodeType":"YulFunctionCall","src":"11516:60:54"},"variables":[{"name":"value6_1","nativeSrc":"11494:8:54","nodeType":"YulTypedName","src":"11494:8:54","type":""},{"name":"value7_1","nativeSrc":"11504:8:54","nodeType":"YulTypedName","src":"11504:8:54","type":""}]},{"nativeSrc":"11585:18:54","nodeType":"YulAssignment","src":"11585:18:54","value":{"name":"value6_1","nativeSrc":"11595:8:54","nodeType":"YulIdentifier","src":"11595:8:54"},"variableNames":[{"name":"value6","nativeSrc":"11585:6:54","nodeType":"YulIdentifier","src":"11585:6:54"}]},{"nativeSrc":"11612:18:54","nodeType":"YulAssignment","src":"11612:18:54","value":{"name":"value7_1","nativeSrc":"11622:8:54","nodeType":"YulIdentifier","src":"11622:8:54"},"variableNames":[{"name":"value7","nativeSrc":"11612:6:54","nodeType":"YulIdentifier","src":"11612:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nativeSrc":"10569:1067:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10670:9:54","nodeType":"YulTypedName","src":"10670:9:54","type":""},{"name":"dataEnd","nativeSrc":"10681:7:54","nodeType":"YulTypedName","src":"10681:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10693:6:54","nodeType":"YulTypedName","src":"10693:6:54","type":""},{"name":"value1","nativeSrc":"10701:6:54","nodeType":"YulTypedName","src":"10701:6:54","type":""},{"name":"value2","nativeSrc":"10709:6:54","nodeType":"YulTypedName","src":"10709:6:54","type":""},{"name":"value3","nativeSrc":"10717:6:54","nodeType":"YulTypedName","src":"10717:6:54","type":""},{"name":"value4","nativeSrc":"10725:6:54","nodeType":"YulTypedName","src":"10725:6:54","type":""},{"name":"value5","nativeSrc":"10733:6:54","nodeType":"YulTypedName","src":"10733:6:54","type":""},{"name":"value6","nativeSrc":"10741:6:54","nodeType":"YulTypedName","src":"10741:6:54","type":""},{"name":"value7","nativeSrc":"10749:6:54","nodeType":"YulTypedName","src":"10749:6:54","type":""}],"src":"10569:1067:54"},{"body":{"nativeSrc":"11840:986:54","nodeType":"YulBlock","src":"11840:986:54","statements":[{"body":{"nativeSrc":"11887:16:54","nodeType":"YulBlock","src":"11887:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11896:1:54","nodeType":"YulLiteral","src":"11896:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"11899:1:54","nodeType":"YulLiteral","src":"11899:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11889:6:54","nodeType":"YulIdentifier","src":"11889:6:54"},"nativeSrc":"11889:12:54","nodeType":"YulFunctionCall","src":"11889:12:54"},"nativeSrc":"11889:12:54","nodeType":"YulExpressionStatement","src":"11889:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11861:7:54","nodeType":"YulIdentifier","src":"11861:7:54"},{"name":"headStart","nativeSrc":"11870:9:54","nodeType":"YulIdentifier","src":"11870:9:54"}],"functionName":{"name":"sub","nativeSrc":"11857:3:54","nodeType":"YulIdentifier","src":"11857:3:54"},"nativeSrc":"11857:23:54","nodeType":"YulFunctionCall","src":"11857:23:54"},{"kind":"number","nativeSrc":"11882:3:54","nodeType":"YulLiteral","src":"11882:3:54","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"11853:3:54","nodeType":"YulIdentifier","src":"11853:3:54"},"nativeSrc":"11853:33:54","nodeType":"YulFunctionCall","src":"11853:33:54"},"nativeSrc":"11850:53:54","nodeType":"YulIf","src":"11850:53:54"},{"nativeSrc":"11912:38:54","nodeType":"YulAssignment","src":"11912:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11940:9:54","nodeType":"YulIdentifier","src":"11940:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"11922:17:54","nodeType":"YulIdentifier","src":"11922:17:54"},"nativeSrc":"11922:28:54","nodeType":"YulFunctionCall","src":"11922:28:54"},"variableNames":[{"name":"value0","nativeSrc":"11912:6:54","nodeType":"YulIdentifier","src":"11912:6:54"}]},{"nativeSrc":"11959:46:54","nodeType":"YulVariableDeclaration","src":"11959:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11990:9:54","nodeType":"YulIdentifier","src":"11990:9:54"},{"kind":"number","nativeSrc":"12001:2:54","nodeType":"YulLiteral","src":"12001:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11986:3:54","nodeType":"YulIdentifier","src":"11986:3:54"},"nativeSrc":"11986:18:54","nodeType":"YulFunctionCall","src":"11986:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"11973:12:54","nodeType":"YulIdentifier","src":"11973:12:54"},"nativeSrc":"11973:32:54","nodeType":"YulFunctionCall","src":"11973:32:54"},"variables":[{"name":"offset","nativeSrc":"11963:6:54","nodeType":"YulTypedName","src":"11963:6:54","type":""}]},{"nativeSrc":"12014:28:54","nodeType":"YulVariableDeclaration","src":"12014:28:54","value":{"kind":"number","nativeSrc":"12024:18:54","nodeType":"YulLiteral","src":"12024:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"12018:2:54","nodeType":"YulTypedName","src":"12018:2:54","type":""}]},{"body":{"nativeSrc":"12069:16:54","nodeType":"YulBlock","src":"12069:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12078:1:54","nodeType":"YulLiteral","src":"12078:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"12081:1:54","nodeType":"YulLiteral","src":"12081:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12071:6:54","nodeType":"YulIdentifier","src":"12071:6:54"},"nativeSrc":"12071:12:54","nodeType":"YulFunctionCall","src":"12071:12:54"},"nativeSrc":"12071:12:54","nodeType":"YulExpressionStatement","src":"12071:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12057:6:54","nodeType":"YulIdentifier","src":"12057:6:54"},{"name":"_1","nativeSrc":"12065:2:54","nodeType":"YulIdentifier","src":"12065:2:54"}],"functionName":{"name":"gt","nativeSrc":"12054:2:54","nodeType":"YulIdentifier","src":"12054:2:54"},"nativeSrc":"12054:14:54","nodeType":"YulFunctionCall","src":"12054:14:54"},"nativeSrc":"12051:34:54","nodeType":"YulIf","src":"12051:34:54"},{"nativeSrc":"12094:59:54","nodeType":"YulAssignment","src":"12094:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12125:9:54","nodeType":"YulIdentifier","src":"12125:9:54"},{"name":"offset","nativeSrc":"12136:6:54","nodeType":"YulIdentifier","src":"12136:6:54"}],"functionName":{"name":"add","nativeSrc":"12121:3:54","nodeType":"YulIdentifier","src":"12121:3:54"},"nativeSrc":"12121:22:54","nodeType":"YulFunctionCall","src":"12121:22:54"},{"name":"dataEnd","nativeSrc":"12145:7:54","nodeType":"YulIdentifier","src":"12145:7:54"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"12104:16:54","nodeType":"YulIdentifier","src":"12104:16:54"},"nativeSrc":"12104:49:54","nodeType":"YulFunctionCall","src":"12104:49:54"},"variableNames":[{"name":"value1","nativeSrc":"12094:6:54","nodeType":"YulIdentifier","src":"12094:6:54"}]},{"nativeSrc":"12162:48:54","nodeType":"YulVariableDeclaration","src":"12162:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12195:9:54","nodeType":"YulIdentifier","src":"12195:9:54"},{"kind":"number","nativeSrc":"12206:2:54","nodeType":"YulLiteral","src":"12206:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12191:3:54","nodeType":"YulIdentifier","src":"12191:3:54"},"nativeSrc":"12191:18:54","nodeType":"YulFunctionCall","src":"12191:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"12178:12:54","nodeType":"YulIdentifier","src":"12178:12:54"},"nativeSrc":"12178:32:54","nodeType":"YulFunctionCall","src":"12178:32:54"},"variables":[{"name":"offset_1","nativeSrc":"12166:8:54","nodeType":"YulTypedName","src":"12166:8:54","type":""}]},{"body":{"nativeSrc":"12239:16:54","nodeType":"YulBlock","src":"12239:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12248:1:54","nodeType":"YulLiteral","src":"12248:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"12251:1:54","nodeType":"YulLiteral","src":"12251:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12241:6:54","nodeType":"YulIdentifier","src":"12241:6:54"},"nativeSrc":"12241:12:54","nodeType":"YulFunctionCall","src":"12241:12:54"},"nativeSrc":"12241:12:54","nodeType":"YulExpressionStatement","src":"12241:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"12225:8:54","nodeType":"YulIdentifier","src":"12225:8:54"},{"name":"_1","nativeSrc":"12235:2:54","nodeType":"YulIdentifier","src":"12235:2:54"}],"functionName":{"name":"gt","nativeSrc":"12222:2:54","nodeType":"YulIdentifier","src":"12222:2:54"},"nativeSrc":"12222:16:54","nodeType":"YulFunctionCall","src":"12222:16:54"},"nativeSrc":"12219:36:54","nodeType":"YulIf","src":"12219:36:54"},{"nativeSrc":"12264:86:54","nodeType":"YulVariableDeclaration","src":"12264:86:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12320:9:54","nodeType":"YulIdentifier","src":"12320:9:54"},{"name":"offset_1","nativeSrc":"12331:8:54","nodeType":"YulIdentifier","src":"12331:8:54"}],"functionName":{"name":"add","nativeSrc":"12316:3:54","nodeType":"YulIdentifier","src":"12316:3:54"},"nativeSrc":"12316:24:54","nodeType":"YulFunctionCall","src":"12316:24:54"},{"name":"dataEnd","nativeSrc":"12342:7:54","nodeType":"YulIdentifier","src":"12342:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"12290:25:54","nodeType":"YulIdentifier","src":"12290:25:54"},"nativeSrc":"12290:60:54","nodeType":"YulFunctionCall","src":"12290:60:54"},"variables":[{"name":"value2_1","nativeSrc":"12268:8:54","nodeType":"YulTypedName","src":"12268:8:54","type":""},{"name":"value3_1","nativeSrc":"12278:8:54","nodeType":"YulTypedName","src":"12278:8:54","type":""}]},{"nativeSrc":"12359:18:54","nodeType":"YulAssignment","src":"12359:18:54","value":{"name":"value2_1","nativeSrc":"12369:8:54","nodeType":"YulIdentifier","src":"12369:8:54"},"variableNames":[{"name":"value2","nativeSrc":"12359:6:54","nodeType":"YulIdentifier","src":"12359:6:54"}]},{"nativeSrc":"12386:18:54","nodeType":"YulAssignment","src":"12386:18:54","value":{"name":"value3_1","nativeSrc":"12396:8:54","nodeType":"YulIdentifier","src":"12396:8:54"},"variableNames":[{"name":"value3","nativeSrc":"12386:6:54","nodeType":"YulIdentifier","src":"12386:6:54"}]},{"nativeSrc":"12413:45:54","nodeType":"YulVariableDeclaration","src":"12413:45:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12443:9:54","nodeType":"YulIdentifier","src":"12443:9:54"},{"kind":"number","nativeSrc":"12454:2:54","nodeType":"YulLiteral","src":"12454:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12439:3:54","nodeType":"YulIdentifier","src":"12439:3:54"},"nativeSrc":"12439:18:54","nodeType":"YulFunctionCall","src":"12439:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"12426:12:54","nodeType":"YulIdentifier","src":"12426:12:54"},"nativeSrc":"12426:32:54","nodeType":"YulFunctionCall","src":"12426:32:54"},"variables":[{"name":"value","nativeSrc":"12417:5:54","nodeType":"YulTypedName","src":"12417:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12492:5:54","nodeType":"YulIdentifier","src":"12492:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12467:24:54","nodeType":"YulIdentifier","src":"12467:24:54"},"nativeSrc":"12467:31:54","nodeType":"YulFunctionCall","src":"12467:31:54"},"nativeSrc":"12467:31:54","nodeType":"YulExpressionStatement","src":"12467:31:54"},{"nativeSrc":"12507:15:54","nodeType":"YulAssignment","src":"12507:15:54","value":{"name":"value","nativeSrc":"12517:5:54","nodeType":"YulIdentifier","src":"12517:5:54"},"variableNames":[{"name":"value4","nativeSrc":"12507:6:54","nodeType":"YulIdentifier","src":"12507:6:54"}]},{"nativeSrc":"12531:48:54","nodeType":"YulVariableDeclaration","src":"12531:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12563:9:54","nodeType":"YulIdentifier","src":"12563:9:54"},{"kind":"number","nativeSrc":"12574:3:54","nodeType":"YulLiteral","src":"12574:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12559:3:54","nodeType":"YulIdentifier","src":"12559:3:54"},"nativeSrc":"12559:19:54","nodeType":"YulFunctionCall","src":"12559:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"12546:12:54","nodeType":"YulIdentifier","src":"12546:12:54"},"nativeSrc":"12546:33:54","nodeType":"YulFunctionCall","src":"12546:33:54"},"variables":[{"name":"value_1","nativeSrc":"12535:7:54","nodeType":"YulTypedName","src":"12535:7:54","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"12613:7:54","nodeType":"YulIdentifier","src":"12613:7:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"12588:24:54","nodeType":"YulIdentifier","src":"12588:24:54"},"nativeSrc":"12588:33:54","nodeType":"YulFunctionCall","src":"12588:33:54"},"nativeSrc":"12588:33:54","nodeType":"YulExpressionStatement","src":"12588:33:54"},{"nativeSrc":"12630:17:54","nodeType":"YulAssignment","src":"12630:17:54","value":{"name":"value_1","nativeSrc":"12640:7:54","nodeType":"YulIdentifier","src":"12640:7:54"},"variableNames":[{"name":"value5","nativeSrc":"12630:6:54","nodeType":"YulIdentifier","src":"12630:6:54"}]},{"nativeSrc":"12656:49:54","nodeType":"YulVariableDeclaration","src":"12656:49:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12689:9:54","nodeType":"YulIdentifier","src":"12689:9:54"},{"kind":"number","nativeSrc":"12700:3:54","nodeType":"YulLiteral","src":"12700:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"12685:3:54","nodeType":"YulIdentifier","src":"12685:3:54"},"nativeSrc":"12685:19:54","nodeType":"YulFunctionCall","src":"12685:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"12672:12:54","nodeType":"YulIdentifier","src":"12672:12:54"},"nativeSrc":"12672:33:54","nodeType":"YulFunctionCall","src":"12672:33:54"},"variables":[{"name":"offset_2","nativeSrc":"12660:8:54","nodeType":"YulTypedName","src":"12660:8:54","type":""}]},{"body":{"nativeSrc":"12734:16:54","nodeType":"YulBlock","src":"12734:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12743:1:54","nodeType":"YulLiteral","src":"12743:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"12746:1:54","nodeType":"YulLiteral","src":"12746:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12736:6:54","nodeType":"YulIdentifier","src":"12736:6:54"},"nativeSrc":"12736:12:54","nodeType":"YulFunctionCall","src":"12736:12:54"},"nativeSrc":"12736:12:54","nodeType":"YulExpressionStatement","src":"12736:12:54"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"12720:8:54","nodeType":"YulIdentifier","src":"12720:8:54"},{"name":"_1","nativeSrc":"12730:2:54","nodeType":"YulIdentifier","src":"12730:2:54"}],"functionName":{"name":"gt","nativeSrc":"12717:2:54","nodeType":"YulIdentifier","src":"12717:2:54"},"nativeSrc":"12717:16:54","nodeType":"YulFunctionCall","src":"12717:16:54"},"nativeSrc":"12714:36:54","nodeType":"YulIf","src":"12714:36:54"},{"nativeSrc":"12759:61:54","nodeType":"YulAssignment","src":"12759:61:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12790:9:54","nodeType":"YulIdentifier","src":"12790:9:54"},{"name":"offset_2","nativeSrc":"12801:8:54","nodeType":"YulIdentifier","src":"12801:8:54"}],"functionName":{"name":"add","nativeSrc":"12786:3:54","nodeType":"YulIdentifier","src":"12786:3:54"},"nativeSrc":"12786:24:54","nodeType":"YulFunctionCall","src":"12786:24:54"},{"name":"dataEnd","nativeSrc":"12812:7:54","nodeType":"YulIdentifier","src":"12812:7:54"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"12769:16:54","nodeType":"YulIdentifier","src":"12769:16:54"},"nativeSrc":"12769:51:54","nodeType":"YulFunctionCall","src":"12769:51:54"},"variableNames":[{"name":"value6","nativeSrc":"12759:6:54","nodeType":"YulIdentifier","src":"12759:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nativeSrc":"11641:1185:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11758:9:54","nodeType":"YulTypedName","src":"11758:9:54","type":""},{"name":"dataEnd","nativeSrc":"11769:7:54","nodeType":"YulTypedName","src":"11769:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11781:6:54","nodeType":"YulTypedName","src":"11781:6:54","type":""},{"name":"value1","nativeSrc":"11789:6:54","nodeType":"YulTypedName","src":"11789:6:54","type":""},{"name":"value2","nativeSrc":"11797:6:54","nodeType":"YulTypedName","src":"11797:6:54","type":""},{"name":"value3","nativeSrc":"11805:6:54","nodeType":"YulTypedName","src":"11805:6:54","type":""},{"name":"value4","nativeSrc":"11813:6:54","nodeType":"YulTypedName","src":"11813:6:54","type":""},{"name":"value5","nativeSrc":"11821:6:54","nodeType":"YulTypedName","src":"11821:6:54","type":""},{"name":"value6","nativeSrc":"11829:6:54","nodeType":"YulTypedName","src":"11829:6:54","type":""}],"src":"11641:1185:54"},{"body":{"nativeSrc":"12959:405:54","nodeType":"YulBlock","src":"12959:405:54","statements":[{"body":{"nativeSrc":"13006:16:54","nodeType":"YulBlock","src":"13006:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13015:1:54","nodeType":"YulLiteral","src":"13015:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"13018:1:54","nodeType":"YulLiteral","src":"13018:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13008:6:54","nodeType":"YulIdentifier","src":"13008:6:54"},"nativeSrc":"13008:12:54","nodeType":"YulFunctionCall","src":"13008:12:54"},"nativeSrc":"13008:12:54","nodeType":"YulExpressionStatement","src":"13008:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12980:7:54","nodeType":"YulIdentifier","src":"12980:7:54"},{"name":"headStart","nativeSrc":"12989:9:54","nodeType":"YulIdentifier","src":"12989:9:54"}],"functionName":{"name":"sub","nativeSrc":"12976:3:54","nodeType":"YulIdentifier","src":"12976:3:54"},"nativeSrc":"12976:23:54","nodeType":"YulFunctionCall","src":"12976:23:54"},{"kind":"number","nativeSrc":"13001:3:54","nodeType":"YulLiteral","src":"13001:3:54","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"12972:3:54","nodeType":"YulIdentifier","src":"12972:3:54"},"nativeSrc":"12972:33:54","nodeType":"YulFunctionCall","src":"12972:33:54"},"nativeSrc":"12969:53:54","nodeType":"YulIf","src":"12969:53:54"},{"nativeSrc":"13031:38:54","nodeType":"YulAssignment","src":"13031:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"13059:9:54","nodeType":"YulIdentifier","src":"13059:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13041:17:54","nodeType":"YulIdentifier","src":"13041:17:54"},"nativeSrc":"13041:28:54","nodeType":"YulFunctionCall","src":"13041:28:54"},"variableNames":[{"name":"value0","nativeSrc":"13031:6:54","nodeType":"YulIdentifier","src":"13031:6:54"}]},{"nativeSrc":"13078:47:54","nodeType":"YulAssignment","src":"13078:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13110:9:54","nodeType":"YulIdentifier","src":"13110:9:54"},{"kind":"number","nativeSrc":"13121:2:54","nodeType":"YulLiteral","src":"13121:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13106:3:54","nodeType":"YulIdentifier","src":"13106:3:54"},"nativeSrc":"13106:18:54","nodeType":"YulFunctionCall","src":"13106:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13088:17:54","nodeType":"YulIdentifier","src":"13088:17:54"},"nativeSrc":"13088:37:54","nodeType":"YulFunctionCall","src":"13088:37:54"},"variableNames":[{"name":"value1","nativeSrc":"13078:6:54","nodeType":"YulIdentifier","src":"13078:6:54"}]},{"nativeSrc":"13134:42:54","nodeType":"YulAssignment","src":"13134:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13161:9:54","nodeType":"YulIdentifier","src":"13161:9:54"},{"kind":"number","nativeSrc":"13172:2:54","nodeType":"YulLiteral","src":"13172:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13157:3:54","nodeType":"YulIdentifier","src":"13157:3:54"},"nativeSrc":"13157:18:54","nodeType":"YulFunctionCall","src":"13157:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"13144:12:54","nodeType":"YulIdentifier","src":"13144:12:54"},"nativeSrc":"13144:32:54","nodeType":"YulFunctionCall","src":"13144:32:54"},"variableNames":[{"name":"value2","nativeSrc":"13134:6:54","nodeType":"YulIdentifier","src":"13134:6:54"}]},{"nativeSrc":"13185:46:54","nodeType":"YulVariableDeclaration","src":"13185:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13216:9:54","nodeType":"YulIdentifier","src":"13216:9:54"},{"kind":"number","nativeSrc":"13227:2:54","nodeType":"YulLiteral","src":"13227:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13212:3:54","nodeType":"YulIdentifier","src":"13212:3:54"},"nativeSrc":"13212:18:54","nodeType":"YulFunctionCall","src":"13212:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"13199:12:54","nodeType":"YulIdentifier","src":"13199:12:54"},"nativeSrc":"13199:32:54","nodeType":"YulFunctionCall","src":"13199:32:54"},"variables":[{"name":"offset","nativeSrc":"13189:6:54","nodeType":"YulTypedName","src":"13189:6:54","type":""}]},{"body":{"nativeSrc":"13274:16:54","nodeType":"YulBlock","src":"13274:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13283:1:54","nodeType":"YulLiteral","src":"13283:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"13286:1:54","nodeType":"YulLiteral","src":"13286:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13276:6:54","nodeType":"YulIdentifier","src":"13276:6:54"},"nativeSrc":"13276:12:54","nodeType":"YulFunctionCall","src":"13276:12:54"},"nativeSrc":"13276:12:54","nodeType":"YulExpressionStatement","src":"13276:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13246:6:54","nodeType":"YulIdentifier","src":"13246:6:54"},{"kind":"number","nativeSrc":"13254:18:54","nodeType":"YulLiteral","src":"13254:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13243:2:54","nodeType":"YulIdentifier","src":"13243:2:54"},"nativeSrc":"13243:30:54","nodeType":"YulFunctionCall","src":"13243:30:54"},"nativeSrc":"13240:50:54","nodeType":"YulIf","src":"13240:50:54"},{"nativeSrc":"13299:59:54","nodeType":"YulAssignment","src":"13299:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13330:9:54","nodeType":"YulIdentifier","src":"13330:9:54"},{"name":"offset","nativeSrc":"13341:6:54","nodeType":"YulIdentifier","src":"13341:6:54"}],"functionName":{"name":"add","nativeSrc":"13326:3:54","nodeType":"YulIdentifier","src":"13326:3:54"},"nativeSrc":"13326:22:54","nodeType":"YulFunctionCall","src":"13326:22:54"},{"name":"dataEnd","nativeSrc":"13350:7:54","nodeType":"YulIdentifier","src":"13350:7:54"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"13309:16:54","nodeType":"YulIdentifier","src":"13309:16:54"},"nativeSrc":"13309:49:54","nodeType":"YulFunctionCall","src":"13309:49:54"},"variableNames":[{"name":"value3","nativeSrc":"13299:6:54","nodeType":"YulIdentifier","src":"13299:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nativeSrc":"12831:533:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12901:9:54","nodeType":"YulTypedName","src":"12901:9:54","type":""},{"name":"dataEnd","nativeSrc":"12912:7:54","nodeType":"YulTypedName","src":"12912:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12924:6:54","nodeType":"YulTypedName","src":"12924:6:54","type":""},{"name":"value1","nativeSrc":"12932:6:54","nodeType":"YulTypedName","src":"12932:6:54","type":""},{"name":"value2","nativeSrc":"12940:6:54","nodeType":"YulTypedName","src":"12940:6:54","type":""},{"name":"value3","nativeSrc":"12948:6:54","nodeType":"YulTypedName","src":"12948:6:54","type":""}],"src":"12831:533:54"},{"body":{"nativeSrc":"13488:341:54","nodeType":"YulBlock","src":"13488:341:54","statements":[{"body":{"nativeSrc":"13535:16:54","nodeType":"YulBlock","src":"13535:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13544:1:54","nodeType":"YulLiteral","src":"13544:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"13547:1:54","nodeType":"YulLiteral","src":"13547:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13537:6:54","nodeType":"YulIdentifier","src":"13537:6:54"},"nativeSrc":"13537:12:54","nodeType":"YulFunctionCall","src":"13537:12:54"},"nativeSrc":"13537:12:54","nodeType":"YulExpressionStatement","src":"13537:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13509:7:54","nodeType":"YulIdentifier","src":"13509:7:54"},{"name":"headStart","nativeSrc":"13518:9:54","nodeType":"YulIdentifier","src":"13518:9:54"}],"functionName":{"name":"sub","nativeSrc":"13505:3:54","nodeType":"YulIdentifier","src":"13505:3:54"},"nativeSrc":"13505:23:54","nodeType":"YulFunctionCall","src":"13505:23:54"},{"kind":"number","nativeSrc":"13530:3:54","nodeType":"YulLiteral","src":"13530:3:54","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"13501:3:54","nodeType":"YulIdentifier","src":"13501:3:54"},"nativeSrc":"13501:33:54","nodeType":"YulFunctionCall","src":"13501:33:54"},"nativeSrc":"13498:53:54","nodeType":"YulIf","src":"13498:53:54"},{"nativeSrc":"13560:38:54","nodeType":"YulAssignment","src":"13560:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"13588:9:54","nodeType":"YulIdentifier","src":"13588:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13570:17:54","nodeType":"YulIdentifier","src":"13570:17:54"},"nativeSrc":"13570:28:54","nodeType":"YulFunctionCall","src":"13570:28:54"},"variableNames":[{"name":"value0","nativeSrc":"13560:6:54","nodeType":"YulIdentifier","src":"13560:6:54"}]},{"nativeSrc":"13607:47:54","nodeType":"YulAssignment","src":"13607:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13639:9:54","nodeType":"YulIdentifier","src":"13639:9:54"},{"kind":"number","nativeSrc":"13650:2:54","nodeType":"YulLiteral","src":"13650:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13635:3:54","nodeType":"YulIdentifier","src":"13635:3:54"},"nativeSrc":"13635:18:54","nodeType":"YulFunctionCall","src":"13635:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"13617:17:54","nodeType":"YulIdentifier","src":"13617:17:54"},"nativeSrc":"13617:37:54","nodeType":"YulFunctionCall","src":"13617:37:54"},"variableNames":[{"name":"value1","nativeSrc":"13607:6:54","nodeType":"YulIdentifier","src":"13607:6:54"}]},{"nativeSrc":"13663:45:54","nodeType":"YulVariableDeclaration","src":"13663:45:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13693:9:54","nodeType":"YulIdentifier","src":"13693:9:54"},{"kind":"number","nativeSrc":"13704:2:54","nodeType":"YulLiteral","src":"13704:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13689:3:54","nodeType":"YulIdentifier","src":"13689:3:54"},"nativeSrc":"13689:18:54","nodeType":"YulFunctionCall","src":"13689:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"13676:12:54","nodeType":"YulIdentifier","src":"13676:12:54"},"nativeSrc":"13676:32:54","nodeType":"YulFunctionCall","src":"13676:32:54"},"variables":[{"name":"value","nativeSrc":"13667:5:54","nodeType":"YulTypedName","src":"13667:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13742:5:54","nodeType":"YulIdentifier","src":"13742:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"13717:24:54","nodeType":"YulIdentifier","src":"13717:24:54"},"nativeSrc":"13717:31:54","nodeType":"YulFunctionCall","src":"13717:31:54"},"nativeSrc":"13717:31:54","nodeType":"YulExpressionStatement","src":"13717:31:54"},{"nativeSrc":"13757:15:54","nodeType":"YulAssignment","src":"13757:15:54","value":{"name":"value","nativeSrc":"13767:5:54","nodeType":"YulIdentifier","src":"13767:5:54"},"variableNames":[{"name":"value2","nativeSrc":"13757:6:54","nodeType":"YulIdentifier","src":"13757:6:54"}]},{"nativeSrc":"13781:42:54","nodeType":"YulAssignment","src":"13781:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13808:9:54","nodeType":"YulIdentifier","src":"13808:9:54"},{"kind":"number","nativeSrc":"13819:2:54","nodeType":"YulLiteral","src":"13819:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13804:3:54","nodeType":"YulIdentifier","src":"13804:3:54"},"nativeSrc":"13804:18:54","nodeType":"YulFunctionCall","src":"13804:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"13791:12:54","nodeType":"YulIdentifier","src":"13791:12:54"},"nativeSrc":"13791:32:54","nodeType":"YulFunctionCall","src":"13791:32:54"},"variableNames":[{"name":"value3","nativeSrc":"13781:6:54","nodeType":"YulIdentifier","src":"13781:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nativeSrc":"13369:460:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13430:9:54","nodeType":"YulTypedName","src":"13430:9:54","type":""},{"name":"dataEnd","nativeSrc":"13441:7:54","nodeType":"YulTypedName","src":"13441:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13453:6:54","nodeType":"YulTypedName","src":"13453:6:54","type":""},{"name":"value1","nativeSrc":"13461:6:54","nodeType":"YulTypedName","src":"13461:6:54","type":""},{"name":"value2","nativeSrc":"13469:6:54","nodeType":"YulTypedName","src":"13469:6:54","type":""},{"name":"value3","nativeSrc":"13477:6:54","nodeType":"YulTypedName","src":"13477:6:54","type":""}],"src":"13369:460:54"},{"body":{"nativeSrc":"13913:241:54","nodeType":"YulBlock","src":"13913:241:54","statements":[{"body":{"nativeSrc":"13959:16:54","nodeType":"YulBlock","src":"13959:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13968:1:54","nodeType":"YulLiteral","src":"13968:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"13971:1:54","nodeType":"YulLiteral","src":"13971:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13961:6:54","nodeType":"YulIdentifier","src":"13961:6:54"},"nativeSrc":"13961:12:54","nodeType":"YulFunctionCall","src":"13961:12:54"},"nativeSrc":"13961:12:54","nodeType":"YulExpressionStatement","src":"13961:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13934:7:54","nodeType":"YulIdentifier","src":"13934:7:54"},{"name":"headStart","nativeSrc":"13943:9:54","nodeType":"YulIdentifier","src":"13943:9:54"}],"functionName":{"name":"sub","nativeSrc":"13930:3:54","nodeType":"YulIdentifier","src":"13930:3:54"},"nativeSrc":"13930:23:54","nodeType":"YulFunctionCall","src":"13930:23:54"},{"kind":"number","nativeSrc":"13955:2:54","nodeType":"YulLiteral","src":"13955:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13926:3:54","nodeType":"YulIdentifier","src":"13926:3:54"},"nativeSrc":"13926:32:54","nodeType":"YulFunctionCall","src":"13926:32:54"},"nativeSrc":"13923:52:54","nodeType":"YulIf","src":"13923:52:54"},{"nativeSrc":"13984:37:54","nodeType":"YulVariableDeclaration","src":"13984:37:54","value":{"arguments":[{"name":"headStart","nativeSrc":"14011:9:54","nodeType":"YulIdentifier","src":"14011:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"13998:12:54","nodeType":"YulIdentifier","src":"13998:12:54"},"nativeSrc":"13998:23:54","nodeType":"YulFunctionCall","src":"13998:23:54"},"variables":[{"name":"offset","nativeSrc":"13988:6:54","nodeType":"YulTypedName","src":"13988:6:54","type":""}]},{"body":{"nativeSrc":"14064:16:54","nodeType":"YulBlock","src":"14064:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14073:1:54","nodeType":"YulLiteral","src":"14073:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"14076:1:54","nodeType":"YulLiteral","src":"14076:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14066:6:54","nodeType":"YulIdentifier","src":"14066:6:54"},"nativeSrc":"14066:12:54","nodeType":"YulFunctionCall","src":"14066:12:54"},"nativeSrc":"14066:12:54","nodeType":"YulExpressionStatement","src":"14066:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14036:6:54","nodeType":"YulIdentifier","src":"14036:6:54"},{"kind":"number","nativeSrc":"14044:18:54","nodeType":"YulLiteral","src":"14044:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14033:2:54","nodeType":"YulIdentifier","src":"14033:2:54"},"nativeSrc":"14033:30:54","nodeType":"YulFunctionCall","src":"14033:30:54"},"nativeSrc":"14030:50:54","nodeType":"YulIf","src":"14030:50:54"},{"nativeSrc":"14089:59:54","nodeType":"YulAssignment","src":"14089:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14120:9:54","nodeType":"YulIdentifier","src":"14120:9:54"},{"name":"offset","nativeSrc":"14131:6:54","nodeType":"YulIdentifier","src":"14131:6:54"}],"functionName":{"name":"add","nativeSrc":"14116:3:54","nodeType":"YulIdentifier","src":"14116:3:54"},"nativeSrc":"14116:22:54","nodeType":"YulFunctionCall","src":"14116:22:54"},{"name":"dataEnd","nativeSrc":"14140:7:54","nodeType":"YulIdentifier","src":"14140:7:54"}],"functionName":{"name":"abi_decode_bytes","nativeSrc":"14099:16:54","nodeType":"YulIdentifier","src":"14099:16:54"},"nativeSrc":"14099:49:54","nodeType":"YulFunctionCall","src":"14099:49:54"},"variableNames":[{"name":"value0","nativeSrc":"14089:6:54","nodeType":"YulIdentifier","src":"14089:6:54"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nativeSrc":"13834:320:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13879:9:54","nodeType":"YulTypedName","src":"13879:9:54","type":""},{"name":"dataEnd","nativeSrc":"13890:7:54","nodeType":"YulTypedName","src":"13890:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13902:6:54","nodeType":"YulTypedName","src":"13902:6:54","type":""}],"src":"13834:320:54"},{"body":{"nativeSrc":"14306:124:54","nodeType":"YulBlock","src":"14306:124:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14329:3:54","nodeType":"YulIdentifier","src":"14329:3:54"},{"name":"value0","nativeSrc":"14334:6:54","nodeType":"YulIdentifier","src":"14334:6:54"},{"name":"value1","nativeSrc":"14342:6:54","nodeType":"YulIdentifier","src":"14342:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"14316:12:54","nodeType":"YulIdentifier","src":"14316:12:54"},"nativeSrc":"14316:33:54","nodeType":"YulFunctionCall","src":"14316:33:54"},"nativeSrc":"14316:33:54","nodeType":"YulExpressionStatement","src":"14316:33:54"},{"nativeSrc":"14358:26:54","nodeType":"YulVariableDeclaration","src":"14358:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"14372:3:54","nodeType":"YulIdentifier","src":"14372:3:54"},{"name":"value1","nativeSrc":"14377:6:54","nodeType":"YulIdentifier","src":"14377:6:54"}],"functionName":{"name":"add","nativeSrc":"14368:3:54","nodeType":"YulIdentifier","src":"14368:3:54"},"nativeSrc":"14368:16:54","nodeType":"YulFunctionCall","src":"14368:16:54"},"variables":[{"name":"_1","nativeSrc":"14362:2:54","nodeType":"YulTypedName","src":"14362:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"14400:2:54","nodeType":"YulIdentifier","src":"14400:2:54"},{"kind":"number","nativeSrc":"14404:1:54","nodeType":"YulLiteral","src":"14404:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14393:6:54","nodeType":"YulIdentifier","src":"14393:6:54"},"nativeSrc":"14393:13:54","nodeType":"YulFunctionCall","src":"14393:13:54"},"nativeSrc":"14393:13:54","nodeType":"YulExpressionStatement","src":"14393:13:54"},{"nativeSrc":"14415:9:54","nodeType":"YulAssignment","src":"14415:9:54","value":{"name":"_1","nativeSrc":"14422:2:54","nodeType":"YulIdentifier","src":"14422:2:54"},"variableNames":[{"name":"end","nativeSrc":"14415:3:54","nodeType":"YulIdentifier","src":"14415:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"14159:271:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14274:3:54","nodeType":"YulTypedName","src":"14274:3:54","type":""},{"name":"value1","nativeSrc":"14279:6:54","nodeType":"YulTypedName","src":"14279:6:54","type":""},{"name":"value0","nativeSrc":"14287:6:54","nodeType":"YulTypedName","src":"14287:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14298:3:54","nodeType":"YulTypedName","src":"14298:3:54","type":""}],"src":"14159:271:54"},{"body":{"nativeSrc":"14490:382:54","nodeType":"YulBlock","src":"14490:382:54","statements":[{"nativeSrc":"14500:22:54","nodeType":"YulAssignment","src":"14500:22:54","value":{"arguments":[{"kind":"number","nativeSrc":"14514:1:54","nodeType":"YulLiteral","src":"14514:1:54","type":"","value":"1"},{"name":"data","nativeSrc":"14517:4:54","nodeType":"YulIdentifier","src":"14517:4:54"}],"functionName":{"name":"shr","nativeSrc":"14510:3:54","nodeType":"YulIdentifier","src":"14510:3:54"},"nativeSrc":"14510:12:54","nodeType":"YulFunctionCall","src":"14510:12:54"},"variableNames":[{"name":"length","nativeSrc":"14500:6:54","nodeType":"YulIdentifier","src":"14500:6:54"}]},{"nativeSrc":"14531:38:54","nodeType":"YulVariableDeclaration","src":"14531:38:54","value":{"arguments":[{"name":"data","nativeSrc":"14561:4:54","nodeType":"YulIdentifier","src":"14561:4:54"},{"kind":"number","nativeSrc":"14567:1:54","nodeType":"YulLiteral","src":"14567:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"14557:3:54","nodeType":"YulIdentifier","src":"14557:3:54"},"nativeSrc":"14557:12:54","nodeType":"YulFunctionCall","src":"14557:12:54"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"14535:18:54","nodeType":"YulTypedName","src":"14535:18:54","type":""}]},{"body":{"nativeSrc":"14608:31:54","nodeType":"YulBlock","src":"14608:31:54","statements":[{"nativeSrc":"14610:27:54","nodeType":"YulAssignment","src":"14610:27:54","value":{"arguments":[{"name":"length","nativeSrc":"14624:6:54","nodeType":"YulIdentifier","src":"14624:6:54"},{"kind":"number","nativeSrc":"14632:4:54","nodeType":"YulLiteral","src":"14632:4:54","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"14620:3:54","nodeType":"YulIdentifier","src":"14620:3:54"},"nativeSrc":"14620:17:54","nodeType":"YulFunctionCall","src":"14620:17:54"},"variableNames":[{"name":"length","nativeSrc":"14610:6:54","nodeType":"YulIdentifier","src":"14610:6:54"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"14588:18:54","nodeType":"YulIdentifier","src":"14588:18:54"}],"functionName":{"name":"iszero","nativeSrc":"14581:6:54","nodeType":"YulIdentifier","src":"14581:6:54"},"nativeSrc":"14581:26:54","nodeType":"YulFunctionCall","src":"14581:26:54"},"nativeSrc":"14578:61:54","nodeType":"YulIf","src":"14578:61:54"},{"body":{"nativeSrc":"14698:168:54","nodeType":"YulBlock","src":"14698:168:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14719:1:54","nodeType":"YulLiteral","src":"14719:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"14722:77:54","nodeType":"YulLiteral","src":"14722:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"14712:6:54","nodeType":"YulIdentifier","src":"14712:6:54"},"nativeSrc":"14712:88:54","nodeType":"YulFunctionCall","src":"14712:88:54"},"nativeSrc":"14712:88:54","nodeType":"YulExpressionStatement","src":"14712:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14820:1:54","nodeType":"YulLiteral","src":"14820:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"14823:4:54","nodeType":"YulLiteral","src":"14823:4:54","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"14813:6:54","nodeType":"YulIdentifier","src":"14813:6:54"},"nativeSrc":"14813:15:54","nodeType":"YulFunctionCall","src":"14813:15:54"},"nativeSrc":"14813:15:54","nodeType":"YulExpressionStatement","src":"14813:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14848:1:54","nodeType":"YulLiteral","src":"14848:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"14851:4:54","nodeType":"YulLiteral","src":"14851:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14841:6:54","nodeType":"YulIdentifier","src":"14841:6:54"},"nativeSrc":"14841:15:54","nodeType":"YulFunctionCall","src":"14841:15:54"},"nativeSrc":"14841:15:54","nodeType":"YulExpressionStatement","src":"14841:15:54"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"14654:18:54","nodeType":"YulIdentifier","src":"14654:18:54"},{"arguments":[{"name":"length","nativeSrc":"14677:6:54","nodeType":"YulIdentifier","src":"14677:6:54"},{"kind":"number","nativeSrc":"14685:2:54","nodeType":"YulLiteral","src":"14685:2:54","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"14674:2:54","nodeType":"YulIdentifier","src":"14674:2:54"},"nativeSrc":"14674:14:54","nodeType":"YulFunctionCall","src":"14674:14:54"}],"functionName":{"name":"eq","nativeSrc":"14651:2:54","nodeType":"YulIdentifier","src":"14651:2:54"},"nativeSrc":"14651:38:54","nodeType":"YulFunctionCall","src":"14651:38:54"},"nativeSrc":"14648:218:54","nodeType":"YulIf","src":"14648:218:54"}]},"name":"extract_byte_array_length","nativeSrc":"14435:437:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"14470:4:54","nodeType":"YulTypedName","src":"14470:4:54","type":""}],"returnVariables":[{"name":"length","nativeSrc":"14479:6:54","nodeType":"YulTypedName","src":"14479:6:54","type":""}],"src":"14435:437:54"},{"body":{"nativeSrc":"14909:152:54","nodeType":"YulBlock","src":"14909:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14926:1:54","nodeType":"YulLiteral","src":"14926:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"14929:77:54","nodeType":"YulLiteral","src":"14929:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"14919:6:54","nodeType":"YulIdentifier","src":"14919:6:54"},"nativeSrc":"14919:88:54","nodeType":"YulFunctionCall","src":"14919:88:54"},"nativeSrc":"14919:88:54","nodeType":"YulExpressionStatement","src":"14919:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15023:1:54","nodeType":"YulLiteral","src":"15023:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"15026:4:54","nodeType":"YulLiteral","src":"15026:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"15016:6:54","nodeType":"YulIdentifier","src":"15016:6:54"},"nativeSrc":"15016:15:54","nodeType":"YulFunctionCall","src":"15016:15:54"},"nativeSrc":"15016:15:54","nodeType":"YulExpressionStatement","src":"15016:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15047:1:54","nodeType":"YulLiteral","src":"15047:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"15050:4:54","nodeType":"YulLiteral","src":"15050:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15040:6:54","nodeType":"YulIdentifier","src":"15040:6:54"},"nativeSrc":"15040:15:54","nodeType":"YulFunctionCall","src":"15040:15:54"},"nativeSrc":"15040:15:54","nodeType":"YulExpressionStatement","src":"15040:15:54"}]},"name":"panic_error_0x11","nativeSrc":"14877:184:54","nodeType":"YulFunctionDefinition","src":"14877:184:54"},{"body":{"nativeSrc":"15114:77:54","nodeType":"YulBlock","src":"15114:77:54","statements":[{"nativeSrc":"15124:16:54","nodeType":"YulAssignment","src":"15124:16:54","value":{"arguments":[{"name":"x","nativeSrc":"15135:1:54","nodeType":"YulIdentifier","src":"15135:1:54"},{"name":"y","nativeSrc":"15138:1:54","nodeType":"YulIdentifier","src":"15138:1:54"}],"functionName":{"name":"add","nativeSrc":"15131:3:54","nodeType":"YulIdentifier","src":"15131:3:54"},"nativeSrc":"15131:9:54","nodeType":"YulFunctionCall","src":"15131:9:54"},"variableNames":[{"name":"sum","nativeSrc":"15124:3:54","nodeType":"YulIdentifier","src":"15124:3:54"}]},{"body":{"nativeSrc":"15163:22:54","nodeType":"YulBlock","src":"15163:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"15165:16:54","nodeType":"YulIdentifier","src":"15165:16:54"},"nativeSrc":"15165:18:54","nodeType":"YulFunctionCall","src":"15165:18:54"},"nativeSrc":"15165:18:54","nodeType":"YulExpressionStatement","src":"15165:18:54"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"15155:1:54","nodeType":"YulIdentifier","src":"15155:1:54"},{"name":"sum","nativeSrc":"15158:3:54","nodeType":"YulIdentifier","src":"15158:3:54"}],"functionName":{"name":"gt","nativeSrc":"15152:2:54","nodeType":"YulIdentifier","src":"15152:2:54"},"nativeSrc":"15152:10:54","nodeType":"YulFunctionCall","src":"15152:10:54"},"nativeSrc":"15149:36:54","nodeType":"YulIf","src":"15149:36:54"}]},"name":"checked_add_t_uint256","nativeSrc":"15066:125:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"15097:1:54","nodeType":"YulTypedName","src":"15097:1:54","type":""},{"name":"y","nativeSrc":"15100:1:54","nodeType":"YulTypedName","src":"15100:1:54","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"15106:3:54","nodeType":"YulTypedName","src":"15106:3:54","type":""}],"src":"15066:125:54"},{"body":{"nativeSrc":"15370:182:54","nodeType":"YulBlock","src":"15370:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15387:9:54","nodeType":"YulIdentifier","src":"15387:9:54"},{"kind":"number","nativeSrc":"15398:2:54","nodeType":"YulLiteral","src":"15398:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15380:6:54","nodeType":"YulIdentifier","src":"15380:6:54"},"nativeSrc":"15380:21:54","nodeType":"YulFunctionCall","src":"15380:21:54"},"nativeSrc":"15380:21:54","nodeType":"YulExpressionStatement","src":"15380:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15421:9:54","nodeType":"YulIdentifier","src":"15421:9:54"},{"kind":"number","nativeSrc":"15432:2:54","nodeType":"YulLiteral","src":"15432:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15417:3:54","nodeType":"YulIdentifier","src":"15417:3:54"},"nativeSrc":"15417:18:54","nodeType":"YulFunctionCall","src":"15417:18:54"},{"kind":"number","nativeSrc":"15437:2:54","nodeType":"YulLiteral","src":"15437:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15410:6:54","nodeType":"YulIdentifier","src":"15410:6:54"},"nativeSrc":"15410:30:54","nodeType":"YulFunctionCall","src":"15410:30:54"},"nativeSrc":"15410:30:54","nodeType":"YulExpressionStatement","src":"15410:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15460:9:54","nodeType":"YulIdentifier","src":"15460:9:54"},{"kind":"number","nativeSrc":"15471:2:54","nodeType":"YulLiteral","src":"15471:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15456:3:54","nodeType":"YulIdentifier","src":"15456:3:54"},"nativeSrc":"15456:18:54","nodeType":"YulFunctionCall","src":"15456:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nativeSrc":"15476:34:54","nodeType":"YulLiteral","src":"15476:34:54","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nativeSrc":"15449:6:54","nodeType":"YulIdentifier","src":"15449:6:54"},"nativeSrc":"15449:62:54","nodeType":"YulFunctionCall","src":"15449:62:54"},"nativeSrc":"15449:62:54","nodeType":"YulExpressionStatement","src":"15449:62:54"},{"nativeSrc":"15520:26:54","nodeType":"YulAssignment","src":"15520:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"15532:9:54","nodeType":"YulIdentifier","src":"15532:9:54"},{"kind":"number","nativeSrc":"15543:2:54","nodeType":"YulLiteral","src":"15543:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15528:3:54","nodeType":"YulIdentifier","src":"15528:3:54"},"nativeSrc":"15528:18:54","nodeType":"YulFunctionCall","src":"15528:18:54"},"variableNames":[{"name":"tail","nativeSrc":"15520:4:54","nodeType":"YulIdentifier","src":"15520:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15196:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15347:9:54","nodeType":"YulTypedName","src":"15347:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15361:4:54","nodeType":"YulTypedName","src":"15361:4:54","type":""}],"src":"15196:356:54"},{"body":{"nativeSrc":"15731:179:54","nodeType":"YulBlock","src":"15731:179:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15748:9:54","nodeType":"YulIdentifier","src":"15748:9:54"},{"kind":"number","nativeSrc":"15759:2:54","nodeType":"YulLiteral","src":"15759:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15741:6:54","nodeType":"YulIdentifier","src":"15741:6:54"},"nativeSrc":"15741:21:54","nodeType":"YulFunctionCall","src":"15741:21:54"},"nativeSrc":"15741:21:54","nodeType":"YulExpressionStatement","src":"15741:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15782:9:54","nodeType":"YulIdentifier","src":"15782:9:54"},{"kind":"number","nativeSrc":"15793:2:54","nodeType":"YulLiteral","src":"15793:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15778:3:54","nodeType":"YulIdentifier","src":"15778:3:54"},"nativeSrc":"15778:18:54","nodeType":"YulFunctionCall","src":"15778:18:54"},{"kind":"number","nativeSrc":"15798:2:54","nodeType":"YulLiteral","src":"15798:2:54","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"15771:6:54","nodeType":"YulIdentifier","src":"15771:6:54"},"nativeSrc":"15771:30:54","nodeType":"YulFunctionCall","src":"15771:30:54"},"nativeSrc":"15771:30:54","nodeType":"YulExpressionStatement","src":"15771:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15821:9:54","nodeType":"YulIdentifier","src":"15821:9:54"},{"kind":"number","nativeSrc":"15832:2:54","nodeType":"YulLiteral","src":"15832:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15817:3:54","nodeType":"YulIdentifier","src":"15817:3:54"},"nativeSrc":"15817:18:54","nodeType":"YulFunctionCall","src":"15817:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nativeSrc":"15837:31:54","nodeType":"YulLiteral","src":"15837:31:54","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nativeSrc":"15810:6:54","nodeType":"YulIdentifier","src":"15810:6:54"},"nativeSrc":"15810:59:54","nodeType":"YulFunctionCall","src":"15810:59:54"},"nativeSrc":"15810:59:54","nodeType":"YulExpressionStatement","src":"15810:59:54"},{"nativeSrc":"15878:26:54","nodeType":"YulAssignment","src":"15878:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"15890:9:54","nodeType":"YulIdentifier","src":"15890:9:54"},{"kind":"number","nativeSrc":"15901:2:54","nodeType":"YulLiteral","src":"15901:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15886:3:54","nodeType":"YulIdentifier","src":"15886:3:54"},"nativeSrc":"15886:18:54","nodeType":"YulFunctionCall","src":"15886:18:54"},"variableNames":[{"name":"tail","nativeSrc":"15878:4:54","nodeType":"YulIdentifier","src":"15878:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15557:353:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15708:9:54","nodeType":"YulTypedName","src":"15708:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15722:4:54","nodeType":"YulTypedName","src":"15722:4:54","type":""}],"src":"15557:353:54"},{"body":{"nativeSrc":"15981:259:54","nodeType":"YulBlock","src":"15981:259:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15998:3:54","nodeType":"YulIdentifier","src":"15998:3:54"},{"name":"length","nativeSrc":"16003:6:54","nodeType":"YulIdentifier","src":"16003:6:54"}],"functionName":{"name":"mstore","nativeSrc":"15991:6:54","nodeType":"YulIdentifier","src":"15991:6:54"},"nativeSrc":"15991:19:54","nodeType":"YulFunctionCall","src":"15991:19:54"},"nativeSrc":"15991:19:54","nodeType":"YulExpressionStatement","src":"15991:19:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16036:3:54","nodeType":"YulIdentifier","src":"16036:3:54"},{"kind":"number","nativeSrc":"16041:4:54","nodeType":"YulLiteral","src":"16041:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16032:3:54","nodeType":"YulIdentifier","src":"16032:3:54"},"nativeSrc":"16032:14:54","nodeType":"YulFunctionCall","src":"16032:14:54"},{"name":"start","nativeSrc":"16048:5:54","nodeType":"YulIdentifier","src":"16048:5:54"},{"name":"length","nativeSrc":"16055:6:54","nodeType":"YulIdentifier","src":"16055:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"16019:12:54","nodeType":"YulIdentifier","src":"16019:12:54"},"nativeSrc":"16019:43:54","nodeType":"YulFunctionCall","src":"16019:43:54"},"nativeSrc":"16019:43:54","nodeType":"YulExpressionStatement","src":"16019:43:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16086:3:54","nodeType":"YulIdentifier","src":"16086:3:54"},{"name":"length","nativeSrc":"16091:6:54","nodeType":"YulIdentifier","src":"16091:6:54"}],"functionName":{"name":"add","nativeSrc":"16082:3:54","nodeType":"YulIdentifier","src":"16082:3:54"},"nativeSrc":"16082:16:54","nodeType":"YulFunctionCall","src":"16082:16:54"},{"kind":"number","nativeSrc":"16100:4:54","nodeType":"YulLiteral","src":"16100:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16078:3:54","nodeType":"YulIdentifier","src":"16078:3:54"},"nativeSrc":"16078:27:54","nodeType":"YulFunctionCall","src":"16078:27:54"},{"kind":"number","nativeSrc":"16107:1:54","nodeType":"YulLiteral","src":"16107:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16071:6:54","nodeType":"YulIdentifier","src":"16071:6:54"},"nativeSrc":"16071:38:54","nodeType":"YulFunctionCall","src":"16071:38:54"},"nativeSrc":"16071:38:54","nodeType":"YulExpressionStatement","src":"16071:38:54"},{"nativeSrc":"16118:116:54","nodeType":"YulAssignment","src":"16118:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16133:3:54","nodeType":"YulIdentifier","src":"16133:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"16146:6:54","nodeType":"YulIdentifier","src":"16146:6:54"},{"kind":"number","nativeSrc":"16154:2:54","nodeType":"YulLiteral","src":"16154:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"16142:3:54","nodeType":"YulIdentifier","src":"16142:3:54"},"nativeSrc":"16142:15:54","nodeType":"YulFunctionCall","src":"16142:15:54"},{"kind":"number","nativeSrc":"16159:66:54","nodeType":"YulLiteral","src":"16159:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"16138:3:54","nodeType":"YulIdentifier","src":"16138:3:54"},"nativeSrc":"16138:88:54","nodeType":"YulFunctionCall","src":"16138:88:54"}],"functionName":{"name":"add","nativeSrc":"16129:3:54","nodeType":"YulIdentifier","src":"16129:3:54"},"nativeSrc":"16129:98:54","nodeType":"YulFunctionCall","src":"16129:98:54"},{"kind":"number","nativeSrc":"16229:4:54","nodeType":"YulLiteral","src":"16229:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16125:3:54","nodeType":"YulIdentifier","src":"16125:3:54"},"nativeSrc":"16125:109:54","nodeType":"YulFunctionCall","src":"16125:109:54"},"variableNames":[{"name":"end","nativeSrc":"16118:3:54","nodeType":"YulIdentifier","src":"16118:3:54"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"15915:325:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"15950:5:54","nodeType":"YulTypedName","src":"15950:5:54","type":""},{"name":"length","nativeSrc":"15957:6:54","nodeType":"YulTypedName","src":"15957:6:54","type":""},{"name":"pos","nativeSrc":"15965:3:54","nodeType":"YulTypedName","src":"15965:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15973:3:54","nodeType":"YulTypedName","src":"15973:3:54","type":""}],"src":"15915:325:54"},{"body":{"nativeSrc":"16400:171:54","nodeType":"YulBlock","src":"16400:171:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16417:9:54","nodeType":"YulIdentifier","src":"16417:9:54"},{"arguments":[{"name":"value0","nativeSrc":"16432:6:54","nodeType":"YulIdentifier","src":"16432:6:54"},{"kind":"number","nativeSrc":"16440:6:54","nodeType":"YulLiteral","src":"16440:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"16428:3:54","nodeType":"YulIdentifier","src":"16428:3:54"},"nativeSrc":"16428:19:54","nodeType":"YulFunctionCall","src":"16428:19:54"}],"functionName":{"name":"mstore","nativeSrc":"16410:6:54","nodeType":"YulIdentifier","src":"16410:6:54"},"nativeSrc":"16410:38:54","nodeType":"YulFunctionCall","src":"16410:38:54"},"nativeSrc":"16410:38:54","nodeType":"YulExpressionStatement","src":"16410:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16468:9:54","nodeType":"YulIdentifier","src":"16468:9:54"},{"kind":"number","nativeSrc":"16479:2:54","nodeType":"YulLiteral","src":"16479:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16464:3:54","nodeType":"YulIdentifier","src":"16464:3:54"},"nativeSrc":"16464:18:54","nodeType":"YulFunctionCall","src":"16464:18:54"},{"kind":"number","nativeSrc":"16484:2:54","nodeType":"YulLiteral","src":"16484:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"16457:6:54","nodeType":"YulIdentifier","src":"16457:6:54"},"nativeSrc":"16457:30:54","nodeType":"YulFunctionCall","src":"16457:30:54"},"nativeSrc":"16457:30:54","nodeType":"YulExpressionStatement","src":"16457:30:54"},{"nativeSrc":"16496:69:54","nodeType":"YulAssignment","src":"16496:69:54","value":{"arguments":[{"name":"value1","nativeSrc":"16530:6:54","nodeType":"YulIdentifier","src":"16530:6:54"},{"name":"value2","nativeSrc":"16538:6:54","nodeType":"YulIdentifier","src":"16538:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"16550:9:54","nodeType":"YulIdentifier","src":"16550:9:54"},{"kind":"number","nativeSrc":"16561:2:54","nodeType":"YulLiteral","src":"16561:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16546:3:54","nodeType":"YulIdentifier","src":"16546:3:54"},"nativeSrc":"16546:18:54","nodeType":"YulFunctionCall","src":"16546:18:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"16504:25:54","nodeType":"YulIdentifier","src":"16504:25:54"},"nativeSrc":"16504:61:54","nodeType":"YulFunctionCall","src":"16504:61:54"},"variableNames":[{"name":"tail","nativeSrc":"16496:4:54","nodeType":"YulIdentifier","src":"16496:4:54"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16245:326:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16353:9:54","nodeType":"YulTypedName","src":"16353:9:54","type":""},{"name":"value2","nativeSrc":"16364:6:54","nodeType":"YulTypedName","src":"16364:6:54","type":""},{"name":"value1","nativeSrc":"16372:6:54","nodeType":"YulTypedName","src":"16372:6:54","type":""},{"name":"value0","nativeSrc":"16380:6:54","nodeType":"YulTypedName","src":"16380:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16391:4:54","nodeType":"YulTypedName","src":"16391:4:54","type":""}],"src":"16245:326:54"},{"body":{"nativeSrc":"16750:180:54","nodeType":"YulBlock","src":"16750:180:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16767:9:54","nodeType":"YulIdentifier","src":"16767:9:54"},{"kind":"number","nativeSrc":"16778:2:54","nodeType":"YulLiteral","src":"16778:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16760:6:54","nodeType":"YulIdentifier","src":"16760:6:54"},"nativeSrc":"16760:21:54","nodeType":"YulFunctionCall","src":"16760:21:54"},"nativeSrc":"16760:21:54","nodeType":"YulExpressionStatement","src":"16760:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16801:9:54","nodeType":"YulIdentifier","src":"16801:9:54"},{"kind":"number","nativeSrc":"16812:2:54","nodeType":"YulLiteral","src":"16812:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16797:3:54","nodeType":"YulIdentifier","src":"16797:3:54"},"nativeSrc":"16797:18:54","nodeType":"YulFunctionCall","src":"16797:18:54"},{"kind":"number","nativeSrc":"16817:2:54","nodeType":"YulLiteral","src":"16817:2:54","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"16790:6:54","nodeType":"YulIdentifier","src":"16790:6:54"},"nativeSrc":"16790:30:54","nodeType":"YulFunctionCall","src":"16790:30:54"},"nativeSrc":"16790:30:54","nodeType":"YulExpressionStatement","src":"16790:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16840:9:54","nodeType":"YulIdentifier","src":"16840:9:54"},{"kind":"number","nativeSrc":"16851:2:54","nodeType":"YulLiteral","src":"16851:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16836:3:54","nodeType":"YulIdentifier","src":"16836:3:54"},"nativeSrc":"16836:18:54","nodeType":"YulFunctionCall","src":"16836:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nativeSrc":"16856:32:54","nodeType":"YulLiteral","src":"16856:32:54","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nativeSrc":"16829:6:54","nodeType":"YulIdentifier","src":"16829:6:54"},"nativeSrc":"16829:60:54","nodeType":"YulFunctionCall","src":"16829:60:54"},"nativeSrc":"16829:60:54","nodeType":"YulExpressionStatement","src":"16829:60:54"},{"nativeSrc":"16898:26:54","nodeType":"YulAssignment","src":"16898:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"16910:9:54","nodeType":"YulIdentifier","src":"16910:9:54"},{"kind":"number","nativeSrc":"16921:2:54","nodeType":"YulLiteral","src":"16921:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16906:3:54","nodeType":"YulIdentifier","src":"16906:3:54"},"nativeSrc":"16906:18:54","nodeType":"YulFunctionCall","src":"16906:18:54"},"variableNames":[{"name":"tail","nativeSrc":"16898:4:54","nodeType":"YulIdentifier","src":"16898:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16576:354:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16727:9:54","nodeType":"YulTypedName","src":"16727:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16741:4:54","nodeType":"YulTypedName","src":"16741:4:54","type":""}],"src":"16576:354:54"},{"body":{"nativeSrc":"17172:372:54","nodeType":"YulBlock","src":"17172:372:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17189:9:54","nodeType":"YulIdentifier","src":"17189:9:54"},{"arguments":[{"name":"value0","nativeSrc":"17204:6:54","nodeType":"YulIdentifier","src":"17204:6:54"},{"kind":"number","nativeSrc":"17212:6:54","nodeType":"YulLiteral","src":"17212:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"17200:3:54","nodeType":"YulIdentifier","src":"17200:3:54"},"nativeSrc":"17200:19:54","nodeType":"YulFunctionCall","src":"17200:19:54"}],"functionName":{"name":"mstore","nativeSrc":"17182:6:54","nodeType":"YulIdentifier","src":"17182:6:54"},"nativeSrc":"17182:38:54","nodeType":"YulFunctionCall","src":"17182:38:54"},"nativeSrc":"17182:38:54","nodeType":"YulExpressionStatement","src":"17182:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17240:9:54","nodeType":"YulIdentifier","src":"17240:9:54"},{"kind":"number","nativeSrc":"17251:2:54","nodeType":"YulLiteral","src":"17251:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17236:3:54","nodeType":"YulIdentifier","src":"17236:3:54"},"nativeSrc":"17236:18:54","nodeType":"YulFunctionCall","src":"17236:18:54"},{"kind":"number","nativeSrc":"17256:3:54","nodeType":"YulLiteral","src":"17256:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17229:6:54","nodeType":"YulIdentifier","src":"17229:6:54"},"nativeSrc":"17229:31:54","nodeType":"YulFunctionCall","src":"17229:31:54"},"nativeSrc":"17229:31:54","nodeType":"YulExpressionStatement","src":"17229:31:54"},{"nativeSrc":"17269:76:54","nodeType":"YulVariableDeclaration","src":"17269:76:54","value":{"arguments":[{"name":"value1","nativeSrc":"17309:6:54","nodeType":"YulIdentifier","src":"17309:6:54"},{"name":"value2","nativeSrc":"17317:6:54","nodeType":"YulIdentifier","src":"17317:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"17329:9:54","nodeType":"YulIdentifier","src":"17329:9:54"},{"kind":"number","nativeSrc":"17340:3:54","nodeType":"YulLiteral","src":"17340:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17325:3:54","nodeType":"YulIdentifier","src":"17325:3:54"},"nativeSrc":"17325:19:54","nodeType":"YulFunctionCall","src":"17325:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17283:25:54","nodeType":"YulIdentifier","src":"17283:25:54"},"nativeSrc":"17283:62:54","nodeType":"YulFunctionCall","src":"17283:62:54"},"variables":[{"name":"tail_1","nativeSrc":"17273:6:54","nodeType":"YulTypedName","src":"17273:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17365:9:54","nodeType":"YulIdentifier","src":"17365:9:54"},{"kind":"number","nativeSrc":"17376:2:54","nodeType":"YulLiteral","src":"17376:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17361:3:54","nodeType":"YulIdentifier","src":"17361:3:54"},"nativeSrc":"17361:18:54","nodeType":"YulFunctionCall","src":"17361:18:54"},{"arguments":[{"name":"value3","nativeSrc":"17385:6:54","nodeType":"YulIdentifier","src":"17385:6:54"},{"kind":"number","nativeSrc":"17393:18:54","nodeType":"YulLiteral","src":"17393:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"17381:3:54","nodeType":"YulIdentifier","src":"17381:3:54"},"nativeSrc":"17381:31:54","nodeType":"YulFunctionCall","src":"17381:31:54"}],"functionName":{"name":"mstore","nativeSrc":"17354:6:54","nodeType":"YulIdentifier","src":"17354:6:54"},"nativeSrc":"17354:59:54","nodeType":"YulFunctionCall","src":"17354:59:54"},"nativeSrc":"17354:59:54","nodeType":"YulExpressionStatement","src":"17354:59:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17433:9:54","nodeType":"YulIdentifier","src":"17433:9:54"},{"kind":"number","nativeSrc":"17444:2:54","nodeType":"YulLiteral","src":"17444:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17429:3:54","nodeType":"YulIdentifier","src":"17429:3:54"},"nativeSrc":"17429:18:54","nodeType":"YulFunctionCall","src":"17429:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"17453:6:54","nodeType":"YulIdentifier","src":"17453:6:54"},{"name":"headStart","nativeSrc":"17461:9:54","nodeType":"YulIdentifier","src":"17461:9:54"}],"functionName":{"name":"sub","nativeSrc":"17449:3:54","nodeType":"YulIdentifier","src":"17449:3:54"},"nativeSrc":"17449:22:54","nodeType":"YulFunctionCall","src":"17449:22:54"}],"functionName":{"name":"mstore","nativeSrc":"17422:6:54","nodeType":"YulIdentifier","src":"17422:6:54"},"nativeSrc":"17422:50:54","nodeType":"YulFunctionCall","src":"17422:50:54"},"nativeSrc":"17422:50:54","nodeType":"YulExpressionStatement","src":"17422:50:54"},{"nativeSrc":"17481:57:54","nodeType":"YulAssignment","src":"17481:57:54","value":{"arguments":[{"name":"value4","nativeSrc":"17515:6:54","nodeType":"YulIdentifier","src":"17515:6:54"},{"name":"value5","nativeSrc":"17523:6:54","nodeType":"YulIdentifier","src":"17523:6:54"},{"name":"tail_1","nativeSrc":"17531:6:54","nodeType":"YulIdentifier","src":"17531:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17489:25:54","nodeType":"YulIdentifier","src":"17489:25:54"},"nativeSrc":"17489:49:54","nodeType":"YulFunctionCall","src":"17489:49:54"},"variableNames":[{"name":"tail","nativeSrc":"17481:4:54","nodeType":"YulIdentifier","src":"17481:4:54"}]}]},"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":"16935:609:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17101:9:54","nodeType":"YulTypedName","src":"17101:9:54","type":""},{"name":"value5","nativeSrc":"17112:6:54","nodeType":"YulTypedName","src":"17112:6:54","type":""},{"name":"value4","nativeSrc":"17120:6:54","nodeType":"YulTypedName","src":"17120:6:54","type":""},{"name":"value3","nativeSrc":"17128:6:54","nodeType":"YulTypedName","src":"17128:6:54","type":""},{"name":"value2","nativeSrc":"17136:6:54","nodeType":"YulTypedName","src":"17136:6:54","type":""},{"name":"value1","nativeSrc":"17144:6:54","nodeType":"YulTypedName","src":"17144:6:54","type":""},{"name":"value0","nativeSrc":"17152:6:54","nodeType":"YulTypedName","src":"17152:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17163:4:54","nodeType":"YulTypedName","src":"17163:4:54","type":""}],"src":"16935:609:54"},{"body":{"nativeSrc":"17758:333:54","nodeType":"YulBlock","src":"17758:333:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17775:9:54","nodeType":"YulIdentifier","src":"17775:9:54"},{"arguments":[{"name":"value0","nativeSrc":"17790:6:54","nodeType":"YulIdentifier","src":"17790:6:54"},{"kind":"number","nativeSrc":"17798:6:54","nodeType":"YulLiteral","src":"17798:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"17786:3:54","nodeType":"YulIdentifier","src":"17786:3:54"},"nativeSrc":"17786:19:54","nodeType":"YulFunctionCall","src":"17786:19:54"}],"functionName":{"name":"mstore","nativeSrc":"17768:6:54","nodeType":"YulIdentifier","src":"17768:6:54"},"nativeSrc":"17768:38:54","nodeType":"YulFunctionCall","src":"17768:38:54"},"nativeSrc":"17768:38:54","nodeType":"YulExpressionStatement","src":"17768:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17826:9:54","nodeType":"YulIdentifier","src":"17826:9:54"},{"kind":"number","nativeSrc":"17837:2:54","nodeType":"YulLiteral","src":"17837:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17822:3:54","nodeType":"YulIdentifier","src":"17822:3:54"},"nativeSrc":"17822:18:54","nodeType":"YulFunctionCall","src":"17822:18:54"},{"kind":"number","nativeSrc":"17842:3:54","nodeType":"YulLiteral","src":"17842:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17815:6:54","nodeType":"YulIdentifier","src":"17815:6:54"},"nativeSrc":"17815:31:54","nodeType":"YulFunctionCall","src":"17815:31:54"},"nativeSrc":"17815:31:54","nodeType":"YulExpressionStatement","src":"17815:31:54"},{"nativeSrc":"17855:70:54","nodeType":"YulAssignment","src":"17855:70:54","value":{"arguments":[{"name":"value1","nativeSrc":"17889:6:54","nodeType":"YulIdentifier","src":"17889:6:54"},{"name":"value2","nativeSrc":"17897:6:54","nodeType":"YulIdentifier","src":"17897:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"17909:9:54","nodeType":"YulIdentifier","src":"17909:9:54"},{"kind":"number","nativeSrc":"17920:3:54","nodeType":"YulLiteral","src":"17920:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17905:3:54","nodeType":"YulIdentifier","src":"17905:3:54"},"nativeSrc":"17905:19:54","nodeType":"YulFunctionCall","src":"17905:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17863:25:54","nodeType":"YulIdentifier","src":"17863:25:54"},"nativeSrc":"17863:62:54","nodeType":"YulFunctionCall","src":"17863:62:54"},"variableNames":[{"name":"tail","nativeSrc":"17855:4:54","nodeType":"YulIdentifier","src":"17855:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17945:9:54","nodeType":"YulIdentifier","src":"17945:9:54"},{"kind":"number","nativeSrc":"17956:2:54","nodeType":"YulLiteral","src":"17956:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17941:3:54","nodeType":"YulIdentifier","src":"17941:3:54"},"nativeSrc":"17941:18:54","nodeType":"YulFunctionCall","src":"17941:18:54"},{"arguments":[{"name":"value3","nativeSrc":"17965:6:54","nodeType":"YulIdentifier","src":"17965:6:54"},{"kind":"number","nativeSrc":"17973:18:54","nodeType":"YulLiteral","src":"17973:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"17961:3:54","nodeType":"YulIdentifier","src":"17961:3:54"},"nativeSrc":"17961:31:54","nodeType":"YulFunctionCall","src":"17961:31:54"}],"functionName":{"name":"mstore","nativeSrc":"17934:6:54","nodeType":"YulIdentifier","src":"17934:6:54"},"nativeSrc":"17934:59:54","nodeType":"YulFunctionCall","src":"17934:59:54"},"nativeSrc":"17934:59:54","nodeType":"YulExpressionStatement","src":"17934:59:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18013:9:54","nodeType":"YulIdentifier","src":"18013:9:54"},{"kind":"number","nativeSrc":"18024:2:54","nodeType":"YulLiteral","src":"18024:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18009:3:54","nodeType":"YulIdentifier","src":"18009:3:54"},"nativeSrc":"18009:18:54","nodeType":"YulFunctionCall","src":"18009:18:54"},{"arguments":[{"name":"value4","nativeSrc":"18033:6:54","nodeType":"YulIdentifier","src":"18033:6:54"},{"kind":"number","nativeSrc":"18041:42:54","nodeType":"YulLiteral","src":"18041:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"18029:3:54","nodeType":"YulIdentifier","src":"18029:3:54"},"nativeSrc":"18029:55:54","nodeType":"YulFunctionCall","src":"18029:55:54"}],"functionName":{"name":"mstore","nativeSrc":"18002:6:54","nodeType":"YulIdentifier","src":"18002:6:54"},"nativeSrc":"18002:83:54","nodeType":"YulFunctionCall","src":"18002:83:54"},"nativeSrc":"18002:83:54","nodeType":"YulExpressionStatement","src":"18002:83:54"}]},"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":"17549:542:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17695:9:54","nodeType":"YulTypedName","src":"17695:9:54","type":""},{"name":"value4","nativeSrc":"17706:6:54","nodeType":"YulTypedName","src":"17706:6:54","type":""},{"name":"value3","nativeSrc":"17714:6:54","nodeType":"YulTypedName","src":"17714:6:54","type":""},{"name":"value2","nativeSrc":"17722:6:54","nodeType":"YulTypedName","src":"17722:6:54","type":""},{"name":"value1","nativeSrc":"17730:6:54","nodeType":"YulTypedName","src":"17730:6:54","type":""},{"name":"value0","nativeSrc":"17738:6:54","nodeType":"YulTypedName","src":"17738:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17749:4:54","nodeType":"YulTypedName","src":"17749:4:54","type":""}],"src":"17549:542:54"},{"body":{"nativeSrc":"18270:226:54","nodeType":"YulBlock","src":"18270:226:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18287:9:54","nodeType":"YulIdentifier","src":"18287:9:54"},{"kind":"number","nativeSrc":"18298:2:54","nodeType":"YulLiteral","src":"18298:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18280:6:54","nodeType":"YulIdentifier","src":"18280:6:54"},"nativeSrc":"18280:21:54","nodeType":"YulFunctionCall","src":"18280:21:54"},"nativeSrc":"18280:21:54","nodeType":"YulExpressionStatement","src":"18280:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18321:9:54","nodeType":"YulIdentifier","src":"18321:9:54"},{"kind":"number","nativeSrc":"18332:2:54","nodeType":"YulLiteral","src":"18332:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18317:3:54","nodeType":"YulIdentifier","src":"18317:3:54"},"nativeSrc":"18317:18:54","nodeType":"YulFunctionCall","src":"18317:18:54"},{"kind":"number","nativeSrc":"18337:2:54","nodeType":"YulLiteral","src":"18337:2:54","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"18310:6:54","nodeType":"YulIdentifier","src":"18310:6:54"},"nativeSrc":"18310:30:54","nodeType":"YulFunctionCall","src":"18310:30:54"},"nativeSrc":"18310:30:54","nodeType":"YulExpressionStatement","src":"18310:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18360:9:54","nodeType":"YulIdentifier","src":"18360:9:54"},{"kind":"number","nativeSrc":"18371:2:54","nodeType":"YulLiteral","src":"18371:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18356:3:54","nodeType":"YulIdentifier","src":"18356:3:54"},"nativeSrc":"18356:18:54","nodeType":"YulFunctionCall","src":"18356:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nativeSrc":"18376:34:54","nodeType":"YulLiteral","src":"18376:34:54","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nativeSrc":"18349:6:54","nodeType":"YulIdentifier","src":"18349:6:54"},"nativeSrc":"18349:62:54","nodeType":"YulFunctionCall","src":"18349:62:54"},"nativeSrc":"18349:62:54","nodeType":"YulExpressionStatement","src":"18349:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18431:9:54","nodeType":"YulIdentifier","src":"18431:9:54"},{"kind":"number","nativeSrc":"18442:2:54","nodeType":"YulLiteral","src":"18442:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18427:3:54","nodeType":"YulIdentifier","src":"18427:3:54"},"nativeSrc":"18427:18:54","nodeType":"YulFunctionCall","src":"18427:18:54"},{"hexValue":"616e6379","kind":"string","nativeSrc":"18447:6:54","nodeType":"YulLiteral","src":"18447:6:54","type":"","value":"ancy"}],"functionName":{"name":"mstore","nativeSrc":"18420:6:54","nodeType":"YulIdentifier","src":"18420:6:54"},"nativeSrc":"18420:34:54","nodeType":"YulFunctionCall","src":"18420:34:54"},"nativeSrc":"18420:34:54","nodeType":"YulExpressionStatement","src":"18420:34:54"},{"nativeSrc":"18463:27:54","nodeType":"YulAssignment","src":"18463:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"18475:9:54","nodeType":"YulIdentifier","src":"18475:9:54"},{"kind":"number","nativeSrc":"18486:3:54","nodeType":"YulLiteral","src":"18486:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18471:3:54","nodeType":"YulIdentifier","src":"18471:3:54"},"nativeSrc":"18471:19:54","nodeType":"YulFunctionCall","src":"18471:19:54"},"variableNames":[{"name":"tail","nativeSrc":"18463:4:54","nodeType":"YulIdentifier","src":"18463:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18096:400:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18247:9:54","nodeType":"YulTypedName","src":"18247:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18261:4:54","nodeType":"YulTypedName","src":"18261:4:54","type":""}],"src":"18096:400:54"},{"body":{"nativeSrc":"18547:163:54","nodeType":"YulBlock","src":"18547:163:54","statements":[{"nativeSrc":"18557:28:54","nodeType":"YulVariableDeclaration","src":"18557:28:54","value":{"kind":"number","nativeSrc":"18567:18:54","nodeType":"YulLiteral","src":"18567:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"18561:2:54","nodeType":"YulTypedName","src":"18561:2:54","type":""}]},{"nativeSrc":"18594:29:54","nodeType":"YulVariableDeclaration","src":"18594:29:54","value":{"arguments":[{"name":"value","nativeSrc":"18613:5:54","nodeType":"YulIdentifier","src":"18613:5:54"},{"name":"_1","nativeSrc":"18620:2:54","nodeType":"YulIdentifier","src":"18620:2:54"}],"functionName":{"name":"and","nativeSrc":"18609:3:54","nodeType":"YulIdentifier","src":"18609:3:54"},"nativeSrc":"18609:14:54","nodeType":"YulFunctionCall","src":"18609:14:54"},"variables":[{"name":"value_1","nativeSrc":"18598:7:54","nodeType":"YulTypedName","src":"18598:7:54","type":""}]},{"body":{"nativeSrc":"18651:22:54","nodeType":"YulBlock","src":"18651:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"18653:16:54","nodeType":"YulIdentifier","src":"18653:16:54"},"nativeSrc":"18653:18:54","nodeType":"YulFunctionCall","src":"18653:18:54"},"nativeSrc":"18653:18:54","nodeType":"YulExpressionStatement","src":"18653:18:54"}]},"condition":{"arguments":[{"name":"value_1","nativeSrc":"18638:7:54","nodeType":"YulIdentifier","src":"18638:7:54"},{"name":"_1","nativeSrc":"18647:2:54","nodeType":"YulIdentifier","src":"18647:2:54"}],"functionName":{"name":"eq","nativeSrc":"18635:2:54","nodeType":"YulIdentifier","src":"18635:2:54"},"nativeSrc":"18635:15:54","nodeType":"YulFunctionCall","src":"18635:15:54"},"nativeSrc":"18632:41:54","nodeType":"YulIf","src":"18632:41:54"},{"nativeSrc":"18682:22:54","nodeType":"YulAssignment","src":"18682:22:54","value":{"arguments":[{"name":"value_1","nativeSrc":"18693:7:54","nodeType":"YulIdentifier","src":"18693:7:54"},{"kind":"number","nativeSrc":"18702:1:54","nodeType":"YulLiteral","src":"18702:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"18689:3:54","nodeType":"YulIdentifier","src":"18689:3:54"},"nativeSrc":"18689:15:54","nodeType":"YulFunctionCall","src":"18689:15:54"},"variableNames":[{"name":"ret","nativeSrc":"18682:3:54","nodeType":"YulIdentifier","src":"18682:3:54"}]}]},"name":"increment_t_uint64","nativeSrc":"18501:209:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18529:5:54","nodeType":"YulTypedName","src":"18529:5:54","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"18539:3:54","nodeType":"YulTypedName","src":"18539:3:54","type":""}],"src":"18501:209:54"},{"body":{"nativeSrc":"18889:176:54","nodeType":"YulBlock","src":"18889:176:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18906:9:54","nodeType":"YulIdentifier","src":"18906:9:54"},{"kind":"number","nativeSrc":"18917:2:54","nodeType":"YulLiteral","src":"18917:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"18899:6:54","nodeType":"YulIdentifier","src":"18899:6:54"},"nativeSrc":"18899:21:54","nodeType":"YulFunctionCall","src":"18899:21:54"},"nativeSrc":"18899:21:54","nodeType":"YulExpressionStatement","src":"18899:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18940:9:54","nodeType":"YulIdentifier","src":"18940:9:54"},{"kind":"number","nativeSrc":"18951:2:54","nodeType":"YulLiteral","src":"18951:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18936:3:54","nodeType":"YulIdentifier","src":"18936:3:54"},"nativeSrc":"18936:18:54","nodeType":"YulFunctionCall","src":"18936:18:54"},{"kind":"number","nativeSrc":"18956:2:54","nodeType":"YulLiteral","src":"18956:2:54","type":"","value":"26"}],"functionName":{"name":"mstore","nativeSrc":"18929:6:54","nodeType":"YulIdentifier","src":"18929:6:54"},"nativeSrc":"18929:30:54","nodeType":"YulFunctionCall","src":"18929:30:54"},"nativeSrc":"18929:30:54","nodeType":"YulExpressionStatement","src":"18929:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18979:9:54","nodeType":"YulIdentifier","src":"18979:9:54"},{"kind":"number","nativeSrc":"18990:2:54","nodeType":"YulLiteral","src":"18990:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18975:3:54","nodeType":"YulIdentifier","src":"18975:3:54"},"nativeSrc":"18975:18:54","nodeType":"YulFunctionCall","src":"18975:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nativeSrc":"18995:28:54","nodeType":"YulLiteral","src":"18995:28:54","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nativeSrc":"18968:6:54","nodeType":"YulIdentifier","src":"18968:6:54"},"nativeSrc":"18968:56:54","nodeType":"YulFunctionCall","src":"18968:56:54"},"nativeSrc":"18968:56:54","nodeType":"YulExpressionStatement","src":"18968:56:54"},{"nativeSrc":"19033:26:54","nodeType":"YulAssignment","src":"19033:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"19045:9:54","nodeType":"YulIdentifier","src":"19045:9:54"},{"kind":"number","nativeSrc":"19056:2:54","nodeType":"YulLiteral","src":"19056:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19041:3:54","nodeType":"YulIdentifier","src":"19041:3:54"},"nativeSrc":"19041:18:54","nodeType":"YulFunctionCall","src":"19041:18:54"},"variableNames":[{"name":"tail","nativeSrc":"19033:4:54","nodeType":"YulIdentifier","src":"19033:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18715:350:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18866:9:54","nodeType":"YulTypedName","src":"18866:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18880:4:54","nodeType":"YulTypedName","src":"18880:4:54","type":""}],"src":"18715:350:54"},{"body":{"nativeSrc":"19125:65:54","nodeType":"YulBlock","src":"19125:65:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19142:1:54","nodeType":"YulLiteral","src":"19142:1:54","type":"","value":"0"},{"name":"ptr","nativeSrc":"19145:3:54","nodeType":"YulIdentifier","src":"19145:3:54"}],"functionName":{"name":"mstore","nativeSrc":"19135:6:54","nodeType":"YulIdentifier","src":"19135:6:54"},"nativeSrc":"19135:14:54","nodeType":"YulFunctionCall","src":"19135:14:54"},"nativeSrc":"19135:14:54","nodeType":"YulExpressionStatement","src":"19135:14:54"},{"nativeSrc":"19158:26:54","nodeType":"YulAssignment","src":"19158:26:54","value":{"arguments":[{"kind":"number","nativeSrc":"19176:1:54","nodeType":"YulLiteral","src":"19176:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"19179:4:54","nodeType":"YulLiteral","src":"19179:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"19166:9:54","nodeType":"YulIdentifier","src":"19166:9:54"},"nativeSrc":"19166:18:54","nodeType":"YulFunctionCall","src":"19166:18:54"},"variableNames":[{"name":"data","nativeSrc":"19158:4:54","nodeType":"YulIdentifier","src":"19158:4:54"}]}]},"name":"array_dataslot_bytes_storage","nativeSrc":"19070:120:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"19108:3:54","nodeType":"YulTypedName","src":"19108:3:54","type":""}],"returnVariables":[{"name":"data","nativeSrc":"19116:4:54","nodeType":"YulTypedName","src":"19116:4:54","type":""}],"src":"19070:120:54"},{"body":{"nativeSrc":"19275:462:54","nodeType":"YulBlock","src":"19275:462:54","statements":[{"body":{"nativeSrc":"19308:423:54","nodeType":"YulBlock","src":"19308:423:54","statements":[{"nativeSrc":"19322:11:54","nodeType":"YulVariableDeclaration","src":"19322:11:54","value":{"kind":"number","nativeSrc":"19332:1:54","nodeType":"YulLiteral","src":"19332:1:54","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"19326:2:54","nodeType":"YulTypedName","src":"19326:2:54","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19353:1:54","nodeType":"YulLiteral","src":"19353:1:54","type":"","value":"0"},{"name":"array","nativeSrc":"19356:5:54","nodeType":"YulIdentifier","src":"19356:5:54"}],"functionName":{"name":"mstore","nativeSrc":"19346:6:54","nodeType":"YulIdentifier","src":"19346:6:54"},"nativeSrc":"19346:16:54","nodeType":"YulFunctionCall","src":"19346:16:54"},"nativeSrc":"19346:16:54","nodeType":"YulExpressionStatement","src":"19346:16:54"},{"nativeSrc":"19375:30:54","nodeType":"YulVariableDeclaration","src":"19375:30:54","value":{"arguments":[{"kind":"number","nativeSrc":"19397:1:54","nodeType":"YulLiteral","src":"19397:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"19400:4:54","nodeType":"YulLiteral","src":"19400:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"19387:9:54","nodeType":"YulIdentifier","src":"19387:9:54"},"nativeSrc":"19387:18:54","nodeType":"YulFunctionCall","src":"19387:18:54"},"variables":[{"name":"data","nativeSrc":"19379:4:54","nodeType":"YulTypedName","src":"19379:4:54","type":""}]},{"nativeSrc":"19418:57:54","nodeType":"YulVariableDeclaration","src":"19418:57:54","value":{"arguments":[{"name":"data","nativeSrc":"19441:4:54","nodeType":"YulIdentifier","src":"19441:4:54"},{"arguments":[{"kind":"number","nativeSrc":"19451:1:54","nodeType":"YulLiteral","src":"19451:1:54","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"19458:10:54","nodeType":"YulIdentifier","src":"19458:10:54"},{"kind":"number","nativeSrc":"19470:2:54","nodeType":"YulLiteral","src":"19470:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19454:3:54","nodeType":"YulIdentifier","src":"19454:3:54"},"nativeSrc":"19454:19:54","nodeType":"YulFunctionCall","src":"19454:19:54"}],"functionName":{"name":"shr","nativeSrc":"19447:3:54","nodeType":"YulIdentifier","src":"19447:3:54"},"nativeSrc":"19447:27:54","nodeType":"YulFunctionCall","src":"19447:27:54"}],"functionName":{"name":"add","nativeSrc":"19437:3:54","nodeType":"YulIdentifier","src":"19437:3:54"},"nativeSrc":"19437:38:54","nodeType":"YulFunctionCall","src":"19437:38:54"},"variables":[{"name":"deleteStart","nativeSrc":"19422:11:54","nodeType":"YulTypedName","src":"19422:11:54","type":""}]},{"body":{"nativeSrc":"19512:23:54","nodeType":"YulBlock","src":"19512:23:54","statements":[{"nativeSrc":"19514:19:54","nodeType":"YulAssignment","src":"19514:19:54","value":{"name":"data","nativeSrc":"19529:4:54","nodeType":"YulIdentifier","src":"19529:4:54"},"variableNames":[{"name":"deleteStart","nativeSrc":"19514:11:54","nodeType":"YulIdentifier","src":"19514:11:54"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"19494:10:54","nodeType":"YulIdentifier","src":"19494:10:54"},{"kind":"number","nativeSrc":"19506:4:54","nodeType":"YulLiteral","src":"19506:4:54","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"19491:2:54","nodeType":"YulIdentifier","src":"19491:2:54"},"nativeSrc":"19491:20:54","nodeType":"YulFunctionCall","src":"19491:20:54"},"nativeSrc":"19488:47:54","nodeType":"YulIf","src":"19488:47:54"},{"nativeSrc":"19548:41:54","nodeType":"YulVariableDeclaration","src":"19548:41:54","value":{"arguments":[{"name":"data","nativeSrc":"19562:4:54","nodeType":"YulIdentifier","src":"19562:4:54"},{"arguments":[{"kind":"number","nativeSrc":"19572:1:54","nodeType":"YulLiteral","src":"19572:1:54","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"19579:3:54","nodeType":"YulIdentifier","src":"19579:3:54"},{"kind":"number","nativeSrc":"19584:2:54","nodeType":"YulLiteral","src":"19584:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19575:3:54","nodeType":"YulIdentifier","src":"19575:3:54"},"nativeSrc":"19575:12:54","nodeType":"YulFunctionCall","src":"19575:12:54"}],"functionName":{"name":"shr","nativeSrc":"19568:3:54","nodeType":"YulIdentifier","src":"19568:3:54"},"nativeSrc":"19568:20:54","nodeType":"YulFunctionCall","src":"19568:20:54"}],"functionName":{"name":"add","nativeSrc":"19558:3:54","nodeType":"YulIdentifier","src":"19558:3:54"},"nativeSrc":"19558:31:54","nodeType":"YulFunctionCall","src":"19558:31:54"},"variables":[{"name":"_2","nativeSrc":"19552:2:54","nodeType":"YulTypedName","src":"19552:2:54","type":""}]},{"nativeSrc":"19602:24:54","nodeType":"YulVariableDeclaration","src":"19602:24:54","value":{"name":"deleteStart","nativeSrc":"19615:11:54","nodeType":"YulIdentifier","src":"19615:11:54"},"variables":[{"name":"start","nativeSrc":"19606:5:54","nodeType":"YulTypedName","src":"19606:5:54","type":""}]},{"body":{"nativeSrc":"19700:21:54","nodeType":"YulBlock","src":"19700:21:54","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"19709:5:54","nodeType":"YulIdentifier","src":"19709:5:54"},{"name":"_1","nativeSrc":"19716:2:54","nodeType":"YulIdentifier","src":"19716:2:54"}],"functionName":{"name":"sstore","nativeSrc":"19702:6:54","nodeType":"YulIdentifier","src":"19702:6:54"},"nativeSrc":"19702:17:54","nodeType":"YulFunctionCall","src":"19702:17:54"},"nativeSrc":"19702:17:54","nodeType":"YulExpressionStatement","src":"19702:17:54"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"19650:5:54","nodeType":"YulIdentifier","src":"19650:5:54"},{"name":"_2","nativeSrc":"19657:2:54","nodeType":"YulIdentifier","src":"19657:2:54"}],"functionName":{"name":"lt","nativeSrc":"19647:2:54","nodeType":"YulIdentifier","src":"19647:2:54"},"nativeSrc":"19647:13:54","nodeType":"YulFunctionCall","src":"19647:13:54"},"nativeSrc":"19639:82:54","nodeType":"YulForLoop","post":{"nativeSrc":"19661:26:54","nodeType":"YulBlock","src":"19661:26:54","statements":[{"nativeSrc":"19663:22:54","nodeType":"YulAssignment","src":"19663:22:54","value":{"arguments":[{"name":"start","nativeSrc":"19676:5:54","nodeType":"YulIdentifier","src":"19676:5:54"},{"kind":"number","nativeSrc":"19683:1:54","nodeType":"YulLiteral","src":"19683:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19672:3:54","nodeType":"YulIdentifier","src":"19672:3:54"},"nativeSrc":"19672:13:54","nodeType":"YulFunctionCall","src":"19672:13:54"},"variableNames":[{"name":"start","nativeSrc":"19663:5:54","nodeType":"YulIdentifier","src":"19663:5:54"}]}]},"pre":{"nativeSrc":"19643:3:54","nodeType":"YulBlock","src":"19643:3:54","statements":[]},"src":"19639:82:54"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"19291:3:54","nodeType":"YulIdentifier","src":"19291:3:54"},{"kind":"number","nativeSrc":"19296:2:54","nodeType":"YulLiteral","src":"19296:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"19288:2:54","nodeType":"YulIdentifier","src":"19288:2:54"},"nativeSrc":"19288:11:54","nodeType":"YulFunctionCall","src":"19288:11:54"},"nativeSrc":"19285:446:54","nodeType":"YulIf","src":"19285:446:54"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"19195:542:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"19247:5:54","nodeType":"YulTypedName","src":"19247:5:54","type":""},{"name":"len","nativeSrc":"19254:3:54","nodeType":"YulTypedName","src":"19254:3:54","type":""},{"name":"startIndex","nativeSrc":"19259:10:54","nodeType":"YulTypedName","src":"19259:10:54","type":""}],"src":"19195:542:54"},{"body":{"nativeSrc":"19827:141:54","nodeType":"YulBlock","src":"19827:141:54","statements":[{"nativeSrc":"19837:125:54","nodeType":"YulAssignment","src":"19837:125:54","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"19852:4:54","nodeType":"YulIdentifier","src":"19852:4:54"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19870:1:54","nodeType":"YulLiteral","src":"19870:1:54","type":"","value":"3"},{"name":"len","nativeSrc":"19873:3:54","nodeType":"YulIdentifier","src":"19873:3:54"}],"functionName":{"name":"shl","nativeSrc":"19866:3:54","nodeType":"YulIdentifier","src":"19866:3:54"},"nativeSrc":"19866:11:54","nodeType":"YulFunctionCall","src":"19866:11:54"},{"kind":"number","nativeSrc":"19879:66:54","nodeType":"YulLiteral","src":"19879:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"19862:3:54","nodeType":"YulIdentifier","src":"19862:3:54"},"nativeSrc":"19862:84:54","nodeType":"YulFunctionCall","src":"19862:84:54"}],"functionName":{"name":"not","nativeSrc":"19858:3:54","nodeType":"YulIdentifier","src":"19858:3:54"},"nativeSrc":"19858:89:54","nodeType":"YulFunctionCall","src":"19858:89:54"}],"functionName":{"name":"and","nativeSrc":"19848:3:54","nodeType":"YulIdentifier","src":"19848:3:54"},"nativeSrc":"19848:100:54","nodeType":"YulFunctionCall","src":"19848:100:54"},{"arguments":[{"kind":"number","nativeSrc":"19954:1:54","nodeType":"YulLiteral","src":"19954:1:54","type":"","value":"1"},{"name":"len","nativeSrc":"19957:3:54","nodeType":"YulIdentifier","src":"19957:3:54"}],"functionName":{"name":"shl","nativeSrc":"19950:3:54","nodeType":"YulIdentifier","src":"19950:3:54"},"nativeSrc":"19950:11:54","nodeType":"YulFunctionCall","src":"19950:11:54"}],"functionName":{"name":"or","nativeSrc":"19845:2:54","nodeType":"YulIdentifier","src":"19845:2:54"},"nativeSrc":"19845:117:54","nodeType":"YulFunctionCall","src":"19845:117:54"},"variableNames":[{"name":"used","nativeSrc":"19837:4:54","nodeType":"YulIdentifier","src":"19837:4:54"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"19742:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"19804:4:54","nodeType":"YulTypedName","src":"19804:4:54","type":""},{"name":"len","nativeSrc":"19810:3:54","nodeType":"YulTypedName","src":"19810:3:54","type":""}],"returnVariables":[{"name":"used","nativeSrc":"19818:4:54","nodeType":"YulTypedName","src":"19818:4:54","type":""}],"src":"19742:226:54"},{"body":{"nativeSrc":"20067:1366:54","nodeType":"YulBlock","src":"20067:1366:54","statements":[{"nativeSrc":"20077:24:54","nodeType":"YulVariableDeclaration","src":"20077:24:54","value":{"arguments":[{"name":"src","nativeSrc":"20097:3:54","nodeType":"YulIdentifier","src":"20097:3:54"}],"functionName":{"name":"mload","nativeSrc":"20091:5:54","nodeType":"YulIdentifier","src":"20091:5:54"},"nativeSrc":"20091:10:54","nodeType":"YulFunctionCall","src":"20091:10:54"},"variables":[{"name":"newLen","nativeSrc":"20081:6:54","nodeType":"YulTypedName","src":"20081:6:54","type":""}]},{"body":{"nativeSrc":"20144:22:54","nodeType":"YulBlock","src":"20144:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"20146:16:54","nodeType":"YulIdentifier","src":"20146:16:54"},"nativeSrc":"20146:18:54","nodeType":"YulFunctionCall","src":"20146:18:54"},"nativeSrc":"20146:18:54","nodeType":"YulExpressionStatement","src":"20146:18:54"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"20116:6:54","nodeType":"YulIdentifier","src":"20116:6:54"},{"kind":"number","nativeSrc":"20124:18:54","nodeType":"YulLiteral","src":"20124:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20113:2:54","nodeType":"YulIdentifier","src":"20113:2:54"},"nativeSrc":"20113:30:54","nodeType":"YulFunctionCall","src":"20113:30:54"},"nativeSrc":"20110:56:54","nodeType":"YulIf","src":"20110:56:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"20218:4:54","nodeType":"YulIdentifier","src":"20218:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"20256:4:54","nodeType":"YulIdentifier","src":"20256:4:54"}],"functionName":{"name":"sload","nativeSrc":"20250:5:54","nodeType":"YulIdentifier","src":"20250:5:54"},"nativeSrc":"20250:11:54","nodeType":"YulFunctionCall","src":"20250:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"20224:25:54","nodeType":"YulIdentifier","src":"20224:25:54"},"nativeSrc":"20224:38:54","nodeType":"YulFunctionCall","src":"20224:38:54"},{"name":"newLen","nativeSrc":"20264:6:54","nodeType":"YulIdentifier","src":"20264:6:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"20175:42:54","nodeType":"YulIdentifier","src":"20175:42:54"},"nativeSrc":"20175:96:54","nodeType":"YulFunctionCall","src":"20175:96:54"},"nativeSrc":"20175:96:54","nodeType":"YulExpressionStatement","src":"20175:96:54"},{"nativeSrc":"20280:18:54","nodeType":"YulVariableDeclaration","src":"20280:18:54","value":{"kind":"number","nativeSrc":"20297:1:54","nodeType":"YulLiteral","src":"20297:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"20284:9:54","nodeType":"YulTypedName","src":"20284:9:54","type":""}]},{"nativeSrc":"20307:23:54","nodeType":"YulVariableDeclaration","src":"20307:23:54","value":{"kind":"number","nativeSrc":"20326:4:54","nodeType":"YulLiteral","src":"20326:4:54","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"20311:11:54","nodeType":"YulTypedName","src":"20311:11:54","type":""}]},{"nativeSrc":"20339:17:54","nodeType":"YulAssignment","src":"20339:17:54","value":{"kind":"number","nativeSrc":"20352:4:54","nodeType":"YulLiteral","src":"20352:4:54","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"20339:9:54","nodeType":"YulIdentifier","src":"20339:9:54"}]},{"cases":[{"body":{"nativeSrc":"20402:774:54","nodeType":"YulBlock","src":"20402:774:54","statements":[{"nativeSrc":"20416:94:54","nodeType":"YulVariableDeclaration","src":"20416:94:54","value":{"arguments":[{"name":"newLen","nativeSrc":"20435:6:54","nodeType":"YulIdentifier","src":"20435:6:54"},{"kind":"number","nativeSrc":"20443:66:54","nodeType":"YulLiteral","src":"20443:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"20431:3:54","nodeType":"YulIdentifier","src":"20431:3:54"},"nativeSrc":"20431:79:54","nodeType":"YulFunctionCall","src":"20431:79:54"},"variables":[{"name":"loopEnd","nativeSrc":"20420:7:54","nodeType":"YulTypedName","src":"20420:7:54","type":""}]},{"nativeSrc":"20523:48:54","nodeType":"YulVariableDeclaration","src":"20523:48:54","value":{"arguments":[{"name":"slot","nativeSrc":"20566:4:54","nodeType":"YulIdentifier","src":"20566:4:54"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"20537:28:54","nodeType":"YulIdentifier","src":"20537:28:54"},"nativeSrc":"20537:34:54","nodeType":"YulFunctionCall","src":"20537:34:54"},"variables":[{"name":"dstPtr","nativeSrc":"20527:6:54","nodeType":"YulTypedName","src":"20527:6:54","type":""}]},{"nativeSrc":"20584:10:54","nodeType":"YulVariableDeclaration","src":"20584:10:54","value":{"kind":"number","nativeSrc":"20593:1:54","nodeType":"YulLiteral","src":"20593:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"20588:1:54","nodeType":"YulTypedName","src":"20588:1:54","type":""}]},{"body":{"nativeSrc":"20671:172:54","nodeType":"YulBlock","src":"20671:172:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20696:6:54","nodeType":"YulIdentifier","src":"20696:6:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20714:3:54","nodeType":"YulIdentifier","src":"20714:3:54"},{"name":"srcOffset","nativeSrc":"20719:9:54","nodeType":"YulIdentifier","src":"20719:9:54"}],"functionName":{"name":"add","nativeSrc":"20710:3:54","nodeType":"YulIdentifier","src":"20710:3:54"},"nativeSrc":"20710:19:54","nodeType":"YulFunctionCall","src":"20710:19:54"}],"functionName":{"name":"mload","nativeSrc":"20704:5:54","nodeType":"YulIdentifier","src":"20704:5:54"},"nativeSrc":"20704:26:54","nodeType":"YulFunctionCall","src":"20704:26:54"}],"functionName":{"name":"sstore","nativeSrc":"20689:6:54","nodeType":"YulIdentifier","src":"20689:6:54"},"nativeSrc":"20689:42:54","nodeType":"YulFunctionCall","src":"20689:42:54"},"nativeSrc":"20689:42:54","nodeType":"YulExpressionStatement","src":"20689:42:54"},{"nativeSrc":"20748:24:54","nodeType":"YulAssignment","src":"20748:24:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"20762:6:54","nodeType":"YulIdentifier","src":"20762:6:54"},{"kind":"number","nativeSrc":"20770:1:54","nodeType":"YulLiteral","src":"20770:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20758:3:54","nodeType":"YulIdentifier","src":"20758:3:54"},"nativeSrc":"20758:14:54","nodeType":"YulFunctionCall","src":"20758:14:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"20748:6:54","nodeType":"YulIdentifier","src":"20748:6:54"}]},{"nativeSrc":"20789:40:54","nodeType":"YulAssignment","src":"20789:40:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"20806:9:54","nodeType":"YulIdentifier","src":"20806:9:54"},{"name":"srcOffset_1","nativeSrc":"20817:11:54","nodeType":"YulIdentifier","src":"20817:11:54"}],"functionName":{"name":"add","nativeSrc":"20802:3:54","nodeType":"YulIdentifier","src":"20802:3:54"},"nativeSrc":"20802:27:54","nodeType":"YulFunctionCall","src":"20802:27:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"20789:9:54","nodeType":"YulIdentifier","src":"20789:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"20618:1:54","nodeType":"YulIdentifier","src":"20618:1:54"},{"name":"loopEnd","nativeSrc":"20621:7:54","nodeType":"YulIdentifier","src":"20621:7:54"}],"functionName":{"name":"lt","nativeSrc":"20615:2:54","nodeType":"YulIdentifier","src":"20615:2:54"},"nativeSrc":"20615:14:54","nodeType":"YulFunctionCall","src":"20615:14:54"},"nativeSrc":"20607:236:54","nodeType":"YulForLoop","post":{"nativeSrc":"20630:28:54","nodeType":"YulBlock","src":"20630:28:54","statements":[{"nativeSrc":"20632:24:54","nodeType":"YulAssignment","src":"20632:24:54","value":{"arguments":[{"name":"i","nativeSrc":"20641:1:54","nodeType":"YulIdentifier","src":"20641:1:54"},{"name":"srcOffset_1","nativeSrc":"20644:11:54","nodeType":"YulIdentifier","src":"20644:11:54"}],"functionName":{"name":"add","nativeSrc":"20637:3:54","nodeType":"YulIdentifier","src":"20637:3:54"},"nativeSrc":"20637:19:54","nodeType":"YulFunctionCall","src":"20637:19:54"},"variableNames":[{"name":"i","nativeSrc":"20632:1:54","nodeType":"YulIdentifier","src":"20632:1:54"}]}]},"pre":{"nativeSrc":"20611:3:54","nodeType":"YulBlock","src":"20611:3:54","statements":[]},"src":"20607:236:54"},{"body":{"nativeSrc":"20891:226:54","nodeType":"YulBlock","src":"20891:226:54","statements":[{"nativeSrc":"20909:43:54","nodeType":"YulVariableDeclaration","src":"20909:43:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20936:3:54","nodeType":"YulIdentifier","src":"20936:3:54"},{"name":"srcOffset","nativeSrc":"20941:9:54","nodeType":"YulIdentifier","src":"20941:9:54"}],"functionName":{"name":"add","nativeSrc":"20932:3:54","nodeType":"YulIdentifier","src":"20932:3:54"},"nativeSrc":"20932:19:54","nodeType":"YulFunctionCall","src":"20932:19:54"}],"functionName":{"name":"mload","nativeSrc":"20926:5:54","nodeType":"YulIdentifier","src":"20926:5:54"},"nativeSrc":"20926:26:54","nodeType":"YulFunctionCall","src":"20926:26:54"},"variables":[{"name":"lastValue","nativeSrc":"20913:9:54","nodeType":"YulTypedName","src":"20913:9:54","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20976:6:54","nodeType":"YulIdentifier","src":"20976:6:54"},{"arguments":[{"name":"lastValue","nativeSrc":"20988:9:54","nodeType":"YulIdentifier","src":"20988:9:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21015:1:54","nodeType":"YulLiteral","src":"21015:1:54","type":"","value":"3"},{"name":"newLen","nativeSrc":"21018:6:54","nodeType":"YulIdentifier","src":"21018:6:54"}],"functionName":{"name":"shl","nativeSrc":"21011:3:54","nodeType":"YulIdentifier","src":"21011:3:54"},"nativeSrc":"21011:14:54","nodeType":"YulFunctionCall","src":"21011:14:54"},{"kind":"number","nativeSrc":"21027:3:54","nodeType":"YulLiteral","src":"21027:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"21007:3:54","nodeType":"YulIdentifier","src":"21007:3:54"},"nativeSrc":"21007:24:54","nodeType":"YulFunctionCall","src":"21007:24:54"},{"kind":"number","nativeSrc":"21033:66:54","nodeType":"YulLiteral","src":"21033:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"21003:3:54","nodeType":"YulIdentifier","src":"21003:3:54"},"nativeSrc":"21003:97:54","nodeType":"YulFunctionCall","src":"21003:97:54"}],"functionName":{"name":"not","nativeSrc":"20999:3:54","nodeType":"YulIdentifier","src":"20999:3:54"},"nativeSrc":"20999:102:54","nodeType":"YulFunctionCall","src":"20999:102:54"}],"functionName":{"name":"and","nativeSrc":"20984:3:54","nodeType":"YulIdentifier","src":"20984:3:54"},"nativeSrc":"20984:118:54","nodeType":"YulFunctionCall","src":"20984:118:54"}],"functionName":{"name":"sstore","nativeSrc":"20969:6:54","nodeType":"YulIdentifier","src":"20969:6:54"},"nativeSrc":"20969:134:54","nodeType":"YulFunctionCall","src":"20969:134:54"},"nativeSrc":"20969:134:54","nodeType":"YulExpressionStatement","src":"20969:134:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"20862:7:54","nodeType":"YulIdentifier","src":"20862:7:54"},{"name":"newLen","nativeSrc":"20871:6:54","nodeType":"YulIdentifier","src":"20871:6:54"}],"functionName":{"name":"lt","nativeSrc":"20859:2:54","nodeType":"YulIdentifier","src":"20859:2:54"},"nativeSrc":"20859:19:54","nodeType":"YulFunctionCall","src":"20859:19:54"},"nativeSrc":"20856:261:54","nodeType":"YulIf","src":"20856:261:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21137:4:54","nodeType":"YulIdentifier","src":"21137:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21151:1:54","nodeType":"YulLiteral","src":"21151:1:54","type":"","value":"1"},{"name":"newLen","nativeSrc":"21154:6:54","nodeType":"YulIdentifier","src":"21154:6:54"}],"functionName":{"name":"shl","nativeSrc":"21147:3:54","nodeType":"YulIdentifier","src":"21147:3:54"},"nativeSrc":"21147:14:54","nodeType":"YulFunctionCall","src":"21147:14:54"},{"kind":"number","nativeSrc":"21163:1:54","nodeType":"YulLiteral","src":"21163:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21143:3:54","nodeType":"YulIdentifier","src":"21143:3:54"},"nativeSrc":"21143:22:54","nodeType":"YulFunctionCall","src":"21143:22:54"}],"functionName":{"name":"sstore","nativeSrc":"21130:6:54","nodeType":"YulIdentifier","src":"21130:6:54"},"nativeSrc":"21130:36:54","nodeType":"YulFunctionCall","src":"21130:36:54"},"nativeSrc":"21130:36:54","nodeType":"YulExpressionStatement","src":"21130:36:54"}]},"nativeSrc":"20395:781:54","nodeType":"YulCase","src":"20395:781:54","value":{"kind":"number","nativeSrc":"20400:1:54","nodeType":"YulLiteral","src":"20400:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"21193:234:54","nodeType":"YulBlock","src":"21193:234:54","statements":[{"nativeSrc":"21207:14:54","nodeType":"YulVariableDeclaration","src":"21207:14:54","value":{"kind":"number","nativeSrc":"21220:1:54","nodeType":"YulLiteral","src":"21220:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"21211:5:54","nodeType":"YulTypedName","src":"21211:5:54","type":""}]},{"body":{"nativeSrc":"21256:67:54","nodeType":"YulBlock","src":"21256:67:54","statements":[{"nativeSrc":"21274:35:54","nodeType":"YulAssignment","src":"21274:35:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"21293:3:54","nodeType":"YulIdentifier","src":"21293:3:54"},{"name":"srcOffset","nativeSrc":"21298:9:54","nodeType":"YulIdentifier","src":"21298:9:54"}],"functionName":{"name":"add","nativeSrc":"21289:3:54","nodeType":"YulIdentifier","src":"21289:3:54"},"nativeSrc":"21289:19:54","nodeType":"YulFunctionCall","src":"21289:19:54"}],"functionName":{"name":"mload","nativeSrc":"21283:5:54","nodeType":"YulIdentifier","src":"21283:5:54"},"nativeSrc":"21283:26:54","nodeType":"YulFunctionCall","src":"21283:26:54"},"variableNames":[{"name":"value","nativeSrc":"21274:5:54","nodeType":"YulIdentifier","src":"21274:5:54"}]}]},"condition":{"name":"newLen","nativeSrc":"21237:6:54","nodeType":"YulIdentifier","src":"21237:6:54"},"nativeSrc":"21234:89:54","nodeType":"YulIf","src":"21234:89:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21343:4:54","nodeType":"YulIdentifier","src":"21343:4:54"},{"arguments":[{"name":"value","nativeSrc":"21402:5:54","nodeType":"YulIdentifier","src":"21402:5:54"},{"name":"newLen","nativeSrc":"21409:6:54","nodeType":"YulIdentifier","src":"21409:6:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"21349:52:54","nodeType":"YulIdentifier","src":"21349:52:54"},"nativeSrc":"21349:67:54","nodeType":"YulFunctionCall","src":"21349:67:54"}],"functionName":{"name":"sstore","nativeSrc":"21336:6:54","nodeType":"YulIdentifier","src":"21336:6:54"},"nativeSrc":"21336:81:54","nodeType":"YulFunctionCall","src":"21336:81:54"},"nativeSrc":"21336:81:54","nodeType":"YulExpressionStatement","src":"21336:81:54"}]},"nativeSrc":"21185:242:54","nodeType":"YulCase","src":"21185:242:54","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"20375:6:54","nodeType":"YulIdentifier","src":"20375:6:54"},{"kind":"number","nativeSrc":"20383:2:54","nodeType":"YulLiteral","src":"20383:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"20372:2:54","nodeType":"YulIdentifier","src":"20372:2:54"},"nativeSrc":"20372:14:54","nodeType":"YulFunctionCall","src":"20372:14:54"},"nativeSrc":"20365:1062:54","nodeType":"YulSwitch","src":"20365:1062:54"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"19973:1460:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"20052:4:54","nodeType":"YulTypedName","src":"20052:4:54","type":""},{"name":"src","nativeSrc":"20058:3:54","nodeType":"YulTypedName","src":"20058:3:54","type":""}],"src":"19973:1460:54"},{"body":{"nativeSrc":"21487:79:54","nodeType":"YulBlock","src":"21487:79:54","statements":[{"nativeSrc":"21497:17:54","nodeType":"YulAssignment","src":"21497:17:54","value":{"arguments":[{"name":"x","nativeSrc":"21509:1:54","nodeType":"YulIdentifier","src":"21509:1:54"},{"name":"y","nativeSrc":"21512:1:54","nodeType":"YulIdentifier","src":"21512:1:54"}],"functionName":{"name":"sub","nativeSrc":"21505:3:54","nodeType":"YulIdentifier","src":"21505:3:54"},"nativeSrc":"21505:9:54","nodeType":"YulFunctionCall","src":"21505:9:54"},"variableNames":[{"name":"diff","nativeSrc":"21497:4:54","nodeType":"YulIdentifier","src":"21497:4:54"}]},{"body":{"nativeSrc":"21538:22:54","nodeType":"YulBlock","src":"21538:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21540:16:54","nodeType":"YulIdentifier","src":"21540:16:54"},"nativeSrc":"21540:18:54","nodeType":"YulFunctionCall","src":"21540:18:54"},"nativeSrc":"21540:18:54","nodeType":"YulExpressionStatement","src":"21540:18:54"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21529:4:54","nodeType":"YulIdentifier","src":"21529:4:54"},{"name":"x","nativeSrc":"21535:1:54","nodeType":"YulIdentifier","src":"21535:1:54"}],"functionName":{"name":"gt","nativeSrc":"21526:2:54","nodeType":"YulIdentifier","src":"21526:2:54"},"nativeSrc":"21526:11:54","nodeType":"YulFunctionCall","src":"21526:11:54"},"nativeSrc":"21523:37:54","nodeType":"YulIf","src":"21523:37:54"}]},"name":"checked_sub_t_uint256","nativeSrc":"21438:128:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21469:1:54","nodeType":"YulTypedName","src":"21469:1:54","type":""},{"name":"y","nativeSrc":"21472:1:54","nodeType":"YulTypedName","src":"21472:1:54","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21478:4:54","nodeType":"YulTypedName","src":"21478:4:54","type":""}],"src":"21438:128:54"},{"body":{"nativeSrc":"21603:152:54","nodeType":"YulBlock","src":"21603:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21620:1:54","nodeType":"YulLiteral","src":"21620:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"21623:77:54","nodeType":"YulLiteral","src":"21623:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"21613:6:54","nodeType":"YulIdentifier","src":"21613:6:54"},"nativeSrc":"21613:88:54","nodeType":"YulFunctionCall","src":"21613:88:54"},"nativeSrc":"21613:88:54","nodeType":"YulExpressionStatement","src":"21613:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21717:1:54","nodeType":"YulLiteral","src":"21717:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"21720:4:54","nodeType":"YulLiteral","src":"21720:4:54","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"21710:6:54","nodeType":"YulIdentifier","src":"21710:6:54"},"nativeSrc":"21710:15:54","nodeType":"YulFunctionCall","src":"21710:15:54"},"nativeSrc":"21710:15:54","nodeType":"YulExpressionStatement","src":"21710:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21741:1:54","nodeType":"YulLiteral","src":"21741:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"21744:4:54","nodeType":"YulLiteral","src":"21744:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21734:6:54","nodeType":"YulIdentifier","src":"21734:6:54"},"nativeSrc":"21734:15:54","nodeType":"YulFunctionCall","src":"21734:15:54"},"nativeSrc":"21734:15:54","nodeType":"YulExpressionStatement","src":"21734:15:54"}]},"name":"panic_error_0x32","nativeSrc":"21571:184:54","nodeType":"YulFunctionDefinition","src":"21571:184:54"},{"body":{"nativeSrc":"21851:1454:54","nodeType":"YulBlock","src":"21851:1454:54","statements":[{"body":{"nativeSrc":"21878:9:54","nodeType":"YulBlock","src":"21878:9:54","statements":[{"nativeSrc":"21880:5:54","nodeType":"YulLeave","src":"21880:5:54"}]},"condition":{"arguments":[{"name":"slot","nativeSrc":"21867:4:54","nodeType":"YulIdentifier","src":"21867:4:54"},{"name":"src","nativeSrc":"21873:3:54","nodeType":"YulIdentifier","src":"21873:3:54"}],"functionName":{"name":"eq","nativeSrc":"21864:2:54","nodeType":"YulIdentifier","src":"21864:2:54"},"nativeSrc":"21864:13:54","nodeType":"YulFunctionCall","src":"21864:13:54"},"nativeSrc":"21861:26:54","nodeType":"YulIf","src":"21861:26:54"},{"nativeSrc":"21896:51:54","nodeType":"YulVariableDeclaration","src":"21896:51:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"21942:3:54","nodeType":"YulIdentifier","src":"21942:3:54"}],"functionName":{"name":"sload","nativeSrc":"21936:5:54","nodeType":"YulIdentifier","src":"21936:5:54"},"nativeSrc":"21936:10:54","nodeType":"YulFunctionCall","src":"21936:10:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"21910:25:54","nodeType":"YulIdentifier","src":"21910:25:54"},"nativeSrc":"21910:37:54","nodeType":"YulFunctionCall","src":"21910:37:54"},"variables":[{"name":"newLen","nativeSrc":"21900:6:54","nodeType":"YulTypedName","src":"21900:6:54","type":""}]},{"body":{"nativeSrc":"21990:22:54","nodeType":"YulBlock","src":"21990:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"21992:16:54","nodeType":"YulIdentifier","src":"21992:16:54"},"nativeSrc":"21992:18:54","nodeType":"YulFunctionCall","src":"21992:18:54"},"nativeSrc":"21992:18:54","nodeType":"YulExpressionStatement","src":"21992:18:54"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"21962:6:54","nodeType":"YulIdentifier","src":"21962:6:54"},{"kind":"number","nativeSrc":"21970:18:54","nodeType":"YulLiteral","src":"21970:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21959:2:54","nodeType":"YulIdentifier","src":"21959:2:54"},"nativeSrc":"21959:30:54","nodeType":"YulFunctionCall","src":"21959:30:54"},"nativeSrc":"21956:56:54","nodeType":"YulIf","src":"21956:56:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22064:4:54","nodeType":"YulIdentifier","src":"22064:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"22102:4:54","nodeType":"YulIdentifier","src":"22102:4:54"}],"functionName":{"name":"sload","nativeSrc":"22096:5:54","nodeType":"YulIdentifier","src":"22096:5:54"},"nativeSrc":"22096:11:54","nodeType":"YulFunctionCall","src":"22096:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"22070:25:54","nodeType":"YulIdentifier","src":"22070:25:54"},"nativeSrc":"22070:38:54","nodeType":"YulFunctionCall","src":"22070:38:54"},{"name":"newLen","nativeSrc":"22110:6:54","nodeType":"YulIdentifier","src":"22110:6:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"22021:42:54","nodeType":"YulIdentifier","src":"22021:42:54"},"nativeSrc":"22021:96:54","nodeType":"YulFunctionCall","src":"22021:96:54"},"nativeSrc":"22021:96:54","nodeType":"YulExpressionStatement","src":"22021:96:54"},{"nativeSrc":"22126:18:54","nodeType":"YulVariableDeclaration","src":"22126:18:54","value":{"kind":"number","nativeSrc":"22143:1:54","nodeType":"YulLiteral","src":"22143:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"22130:9:54","nodeType":"YulTypedName","src":"22130:9:54","type":""}]},{"cases":[{"body":{"nativeSrc":"22190:858:54","nodeType":"YulBlock","src":"22190:858:54","statements":[{"nativeSrc":"22204:94:54","nodeType":"YulVariableDeclaration","src":"22204:94:54","value":{"arguments":[{"name":"newLen","nativeSrc":"22223:6:54","nodeType":"YulIdentifier","src":"22223:6:54"},{"kind":"number","nativeSrc":"22231:66:54","nodeType":"YulLiteral","src":"22231:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"22219:3:54","nodeType":"YulIdentifier","src":"22219:3:54"},"nativeSrc":"22219:79:54","nodeType":"YulFunctionCall","src":"22219:79:54"},"variables":[{"name":"loopEnd","nativeSrc":"22208:7:54","nodeType":"YulTypedName","src":"22208:7:54","type":""}]},{"nativeSrc":"22311:46:54","nodeType":"YulVariableDeclaration","src":"22311:46:54","value":{"arguments":[{"name":"src","nativeSrc":"22353:3:54","nodeType":"YulIdentifier","src":"22353:3:54"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"22324:28:54","nodeType":"YulIdentifier","src":"22324:28:54"},"nativeSrc":"22324:33:54","nodeType":"YulFunctionCall","src":"22324:33:54"},"variables":[{"name":"src_1","nativeSrc":"22315:5:54","nodeType":"YulTypedName","src":"22315:5:54","type":""}]},{"nativeSrc":"22370:48:54","nodeType":"YulVariableDeclaration","src":"22370:48:54","value":{"arguments":[{"name":"slot","nativeSrc":"22413:4:54","nodeType":"YulIdentifier","src":"22413:4:54"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"22384:28:54","nodeType":"YulIdentifier","src":"22384:28:54"},"nativeSrc":"22384:34:54","nodeType":"YulFunctionCall","src":"22384:34:54"},"variables":[{"name":"dstPtr","nativeSrc":"22374:6:54","nodeType":"YulTypedName","src":"22374:6:54","type":""}]},{"nativeSrc":"22431:18:54","nodeType":"YulVariableDeclaration","src":"22431:18:54","value":{"name":"srcOffset","nativeSrc":"22440:9:54","nodeType":"YulIdentifier","src":"22440:9:54"},"variables":[{"name":"i","nativeSrc":"22435:1:54","nodeType":"YulTypedName","src":"22435:1:54","type":""}]},{"body":{"nativeSrc":"22519:194:54","nodeType":"YulBlock","src":"22519:194:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"22544:6:54","nodeType":"YulIdentifier","src":"22544:6:54"},{"arguments":[{"arguments":[{"name":"src_1","nativeSrc":"22562:5:54","nodeType":"YulIdentifier","src":"22562:5:54"},{"name":"srcOffset","nativeSrc":"22569:9:54","nodeType":"YulIdentifier","src":"22569:9:54"}],"functionName":{"name":"add","nativeSrc":"22558:3:54","nodeType":"YulIdentifier","src":"22558:3:54"},"nativeSrc":"22558:21:54","nodeType":"YulFunctionCall","src":"22558:21:54"}],"functionName":{"name":"sload","nativeSrc":"22552:5:54","nodeType":"YulIdentifier","src":"22552:5:54"},"nativeSrc":"22552:28:54","nodeType":"YulFunctionCall","src":"22552:28:54"}],"functionName":{"name":"sstore","nativeSrc":"22537:6:54","nodeType":"YulIdentifier","src":"22537:6:54"},"nativeSrc":"22537:44:54","nodeType":"YulFunctionCall","src":"22537:44:54"},"nativeSrc":"22537:44:54","nodeType":"YulExpressionStatement","src":"22537:44:54"},{"nativeSrc":"22598:11:54","nodeType":"YulVariableDeclaration","src":"22598:11:54","value":{"kind":"number","nativeSrc":"22608:1:54","nodeType":"YulLiteral","src":"22608:1:54","type":"","value":"1"},"variables":[{"name":"_1","nativeSrc":"22602:2:54","nodeType":"YulTypedName","src":"22602:2:54","type":""}]},{"nativeSrc":"22626:25:54","nodeType":"YulAssignment","src":"22626:25:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"22640:6:54","nodeType":"YulIdentifier","src":"22640:6:54"},{"name":"_1","nativeSrc":"22648:2:54","nodeType":"YulIdentifier","src":"22648:2:54"}],"functionName":{"name":"add","nativeSrc":"22636:3:54","nodeType":"YulIdentifier","src":"22636:3:54"},"nativeSrc":"22636:15:54","nodeType":"YulFunctionCall","src":"22636:15:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"22626:6:54","nodeType":"YulIdentifier","src":"22626:6:54"}]},{"nativeSrc":"22668:31:54","nodeType":"YulAssignment","src":"22668:31:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"22685:9:54","nodeType":"YulIdentifier","src":"22685:9:54"},{"name":"_1","nativeSrc":"22696:2:54","nodeType":"YulIdentifier","src":"22696:2:54"}],"functionName":{"name":"add","nativeSrc":"22681:3:54","nodeType":"YulIdentifier","src":"22681:3:54"},"nativeSrc":"22681:18:54","nodeType":"YulFunctionCall","src":"22681:18:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"22668:9:54","nodeType":"YulIdentifier","src":"22668:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"22473:1:54","nodeType":"YulIdentifier","src":"22473:1:54"},{"name":"loopEnd","nativeSrc":"22476:7:54","nodeType":"YulIdentifier","src":"22476:7:54"}],"functionName":{"name":"lt","nativeSrc":"22470:2:54","nodeType":"YulIdentifier","src":"22470:2:54"},"nativeSrc":"22470:14:54","nodeType":"YulFunctionCall","src":"22470:14:54"},"nativeSrc":"22462:251:54","nodeType":"YulForLoop","post":{"nativeSrc":"22485:21:54","nodeType":"YulBlock","src":"22485:21:54","statements":[{"nativeSrc":"22487:17:54","nodeType":"YulAssignment","src":"22487:17:54","value":{"arguments":[{"name":"i","nativeSrc":"22496:1:54","nodeType":"YulIdentifier","src":"22496:1:54"},{"kind":"number","nativeSrc":"22499:4:54","nodeType":"YulLiteral","src":"22499:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22492:3:54","nodeType":"YulIdentifier","src":"22492:3:54"},"nativeSrc":"22492:12:54","nodeType":"YulFunctionCall","src":"22492:12:54"},"variableNames":[{"name":"i","nativeSrc":"22487:1:54","nodeType":"YulIdentifier","src":"22487:1:54"}]}]},"pre":{"nativeSrc":"22466:3:54","nodeType":"YulBlock","src":"22466:3:54","statements":[]},"src":"22462:251:54"},{"body":{"nativeSrc":"22761:228:54","nodeType":"YulBlock","src":"22761:228:54","statements":[{"nativeSrc":"22779:45:54","nodeType":"YulVariableDeclaration","src":"22779:45:54","value":{"arguments":[{"arguments":[{"name":"src_1","nativeSrc":"22806:5:54","nodeType":"YulIdentifier","src":"22806:5:54"},{"name":"srcOffset","nativeSrc":"22813:9:54","nodeType":"YulIdentifier","src":"22813:9:54"}],"functionName":{"name":"add","nativeSrc":"22802:3:54","nodeType":"YulIdentifier","src":"22802:3:54"},"nativeSrc":"22802:21:54","nodeType":"YulFunctionCall","src":"22802:21:54"}],"functionName":{"name":"sload","nativeSrc":"22796:5:54","nodeType":"YulIdentifier","src":"22796:5:54"},"nativeSrc":"22796:28:54","nodeType":"YulFunctionCall","src":"22796:28:54"},"variables":[{"name":"lastValue","nativeSrc":"22783:9:54","nodeType":"YulTypedName","src":"22783:9:54","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"22848:6:54","nodeType":"YulIdentifier","src":"22848:6:54"},{"arguments":[{"name":"lastValue","nativeSrc":"22860:9:54","nodeType":"YulIdentifier","src":"22860:9:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22887:1:54","nodeType":"YulLiteral","src":"22887:1:54","type":"","value":"3"},{"name":"newLen","nativeSrc":"22890:6:54","nodeType":"YulIdentifier","src":"22890:6:54"}],"functionName":{"name":"shl","nativeSrc":"22883:3:54","nodeType":"YulIdentifier","src":"22883:3:54"},"nativeSrc":"22883:14:54","nodeType":"YulFunctionCall","src":"22883:14:54"},{"kind":"number","nativeSrc":"22899:3:54","nodeType":"YulLiteral","src":"22899:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"22879:3:54","nodeType":"YulIdentifier","src":"22879:3:54"},"nativeSrc":"22879:24:54","nodeType":"YulFunctionCall","src":"22879:24:54"},{"kind":"number","nativeSrc":"22905:66:54","nodeType":"YulLiteral","src":"22905:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"22875:3:54","nodeType":"YulIdentifier","src":"22875:3:54"},"nativeSrc":"22875:97:54","nodeType":"YulFunctionCall","src":"22875:97:54"}],"functionName":{"name":"not","nativeSrc":"22871:3:54","nodeType":"YulIdentifier","src":"22871:3:54"},"nativeSrc":"22871:102:54","nodeType":"YulFunctionCall","src":"22871:102:54"}],"functionName":{"name":"and","nativeSrc":"22856:3:54","nodeType":"YulIdentifier","src":"22856:3:54"},"nativeSrc":"22856:118:54","nodeType":"YulFunctionCall","src":"22856:118:54"}],"functionName":{"name":"sstore","nativeSrc":"22841:6:54","nodeType":"YulIdentifier","src":"22841:6:54"},"nativeSrc":"22841:134:54","nodeType":"YulFunctionCall","src":"22841:134:54"},"nativeSrc":"22841:134:54","nodeType":"YulExpressionStatement","src":"22841:134:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"22732:7:54","nodeType":"YulIdentifier","src":"22732:7:54"},{"name":"newLen","nativeSrc":"22741:6:54","nodeType":"YulIdentifier","src":"22741:6:54"}],"functionName":{"name":"lt","nativeSrc":"22729:2:54","nodeType":"YulIdentifier","src":"22729:2:54"},"nativeSrc":"22729:19:54","nodeType":"YulFunctionCall","src":"22729:19:54"},"nativeSrc":"22726:263:54","nodeType":"YulIf","src":"22726:263:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23009:4:54","nodeType":"YulIdentifier","src":"23009:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23023:1:54","nodeType":"YulLiteral","src":"23023:1:54","type":"","value":"1"},{"name":"newLen","nativeSrc":"23026:6:54","nodeType":"YulIdentifier","src":"23026:6:54"}],"functionName":{"name":"shl","nativeSrc":"23019:3:54","nodeType":"YulIdentifier","src":"23019:3:54"},"nativeSrc":"23019:14:54","nodeType":"YulFunctionCall","src":"23019:14:54"},{"kind":"number","nativeSrc":"23035:1:54","nodeType":"YulLiteral","src":"23035:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23015:3:54","nodeType":"YulIdentifier","src":"23015:3:54"},"nativeSrc":"23015:22:54","nodeType":"YulFunctionCall","src":"23015:22:54"}],"functionName":{"name":"sstore","nativeSrc":"23002:6:54","nodeType":"YulIdentifier","src":"23002:6:54"},"nativeSrc":"23002:36:54","nodeType":"YulFunctionCall","src":"23002:36:54"},"nativeSrc":"23002:36:54","nodeType":"YulExpressionStatement","src":"23002:36:54"}]},"nativeSrc":"22183:865:54","nodeType":"YulCase","src":"22183:865:54","value":{"kind":"number","nativeSrc":"22188:1:54","nodeType":"YulLiteral","src":"22188:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"23065:234:54","nodeType":"YulBlock","src":"23065:234:54","statements":[{"nativeSrc":"23079:14:54","nodeType":"YulVariableDeclaration","src":"23079:14:54","value":{"kind":"number","nativeSrc":"23092:1:54","nodeType":"YulLiteral","src":"23092:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"23083:5:54","nodeType":"YulTypedName","src":"23083:5:54","type":""}]},{"body":{"nativeSrc":"23128:67:54","nodeType":"YulBlock","src":"23128:67:54","statements":[{"nativeSrc":"23146:35:54","nodeType":"YulAssignment","src":"23146:35:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23165:3:54","nodeType":"YulIdentifier","src":"23165:3:54"},{"name":"srcOffset","nativeSrc":"23170:9:54","nodeType":"YulIdentifier","src":"23170:9:54"}],"functionName":{"name":"add","nativeSrc":"23161:3:54","nodeType":"YulIdentifier","src":"23161:3:54"},"nativeSrc":"23161:19:54","nodeType":"YulFunctionCall","src":"23161:19:54"}],"functionName":{"name":"sload","nativeSrc":"23155:5:54","nodeType":"YulIdentifier","src":"23155:5:54"},"nativeSrc":"23155:26:54","nodeType":"YulFunctionCall","src":"23155:26:54"},"variableNames":[{"name":"value","nativeSrc":"23146:5:54","nodeType":"YulIdentifier","src":"23146:5:54"}]}]},"condition":{"name":"newLen","nativeSrc":"23109:6:54","nodeType":"YulIdentifier","src":"23109:6:54"},"nativeSrc":"23106:89:54","nodeType":"YulIf","src":"23106:89:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23215:4:54","nodeType":"YulIdentifier","src":"23215:4:54"},{"arguments":[{"name":"value","nativeSrc":"23274:5:54","nodeType":"YulIdentifier","src":"23274:5:54"},{"name":"newLen","nativeSrc":"23281:6:54","nodeType":"YulIdentifier","src":"23281:6:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"23221:52:54","nodeType":"YulIdentifier","src":"23221:52:54"},"nativeSrc":"23221:67:54","nodeType":"YulFunctionCall","src":"23221:67:54"}],"functionName":{"name":"sstore","nativeSrc":"23208:6:54","nodeType":"YulIdentifier","src":"23208:6:54"},"nativeSrc":"23208:81:54","nodeType":"YulFunctionCall","src":"23208:81:54"},"nativeSrc":"23208:81:54","nodeType":"YulExpressionStatement","src":"23208:81:54"}]},"nativeSrc":"23057:242:54","nodeType":"YulCase","src":"23057:242:54","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"22163:6:54","nodeType":"YulIdentifier","src":"22163:6:54"},{"kind":"number","nativeSrc":"22171:2:54","nodeType":"YulLiteral","src":"22171:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"22160:2:54","nodeType":"YulIdentifier","src":"22160:2:54"},"nativeSrc":"22160:14:54","nodeType":"YulFunctionCall","src":"22160:14:54"},"nativeSrc":"22153:1146:54","nodeType":"YulSwitch","src":"22153:1146:54"}]},"name":"copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage","nativeSrc":"21760:1545:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"21836:4:54","nodeType":"YulTypedName","src":"21836:4:54","type":""},{"name":"src","nativeSrc":"21842:3:54","nodeType":"YulTypedName","src":"21842:3:54","type":""}],"src":"21760:1545:54"},{"body":{"nativeSrc":"23621:580:54","nodeType":"YulBlock","src":"23621:580:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"23638:9:54","nodeType":"YulIdentifier","src":"23638:9:54"},{"arguments":[{"name":"value0","nativeSrc":"23653:6:54","nodeType":"YulIdentifier","src":"23653:6:54"},{"kind":"number","nativeSrc":"23661:6:54","nodeType":"YulLiteral","src":"23661:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"23649:3:54","nodeType":"YulIdentifier","src":"23649:3:54"},"nativeSrc":"23649:19:54","nodeType":"YulFunctionCall","src":"23649:19:54"}],"functionName":{"name":"mstore","nativeSrc":"23631:6:54","nodeType":"YulIdentifier","src":"23631:6:54"},"nativeSrc":"23631:38:54","nodeType":"YulFunctionCall","src":"23631:38:54"},"nativeSrc":"23631:38:54","nodeType":"YulExpressionStatement","src":"23631:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23689:9:54","nodeType":"YulIdentifier","src":"23689:9:54"},{"kind":"number","nativeSrc":"23700:2:54","nodeType":"YulLiteral","src":"23700:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23685:3:54","nodeType":"YulIdentifier","src":"23685:3:54"},"nativeSrc":"23685:18:54","nodeType":"YulFunctionCall","src":"23685:18:54"},{"kind":"number","nativeSrc":"23705:3:54","nodeType":"YulLiteral","src":"23705:3:54","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"23678:6:54","nodeType":"YulIdentifier","src":"23678:6:54"},"nativeSrc":"23678:31:54","nodeType":"YulFunctionCall","src":"23678:31:54"},"nativeSrc":"23678:31:54","nodeType":"YulExpressionStatement","src":"23678:31:54"},{"nativeSrc":"23718:76:54","nodeType":"YulVariableDeclaration","src":"23718:76:54","value":{"arguments":[{"name":"value1","nativeSrc":"23758:6:54","nodeType":"YulIdentifier","src":"23758:6:54"},{"name":"value2","nativeSrc":"23766:6:54","nodeType":"YulIdentifier","src":"23766:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"23778:9:54","nodeType":"YulIdentifier","src":"23778:9:54"},{"kind":"number","nativeSrc":"23789:3:54","nodeType":"YulLiteral","src":"23789:3:54","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"23774:3:54","nodeType":"YulIdentifier","src":"23774:3:54"},"nativeSrc":"23774:19:54","nodeType":"YulFunctionCall","src":"23774:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"23732:25:54","nodeType":"YulIdentifier","src":"23732:25:54"},"nativeSrc":"23732:62:54","nodeType":"YulFunctionCall","src":"23732:62:54"},"variables":[{"name":"tail_1","nativeSrc":"23722:6:54","nodeType":"YulTypedName","src":"23722:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23814:9:54","nodeType":"YulIdentifier","src":"23814:9:54"},{"kind":"number","nativeSrc":"23825:2:54","nodeType":"YulLiteral","src":"23825:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23810:3:54","nodeType":"YulIdentifier","src":"23810:3:54"},"nativeSrc":"23810:18:54","nodeType":"YulFunctionCall","src":"23810:18:54"},{"arguments":[{"name":"value3","nativeSrc":"23834:6:54","nodeType":"YulIdentifier","src":"23834:6:54"},{"kind":"number","nativeSrc":"23842:42:54","nodeType":"YulLiteral","src":"23842:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"23830:3:54","nodeType":"YulIdentifier","src":"23830:3:54"},"nativeSrc":"23830:55:54","nodeType":"YulFunctionCall","src":"23830:55:54"}],"functionName":{"name":"mstore","nativeSrc":"23803:6:54","nodeType":"YulIdentifier","src":"23803:6:54"},"nativeSrc":"23803:83:54","nodeType":"YulFunctionCall","src":"23803:83:54"},"nativeSrc":"23803:83:54","nodeType":"YulExpressionStatement","src":"23803:83:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23906:9:54","nodeType":"YulIdentifier","src":"23906:9:54"},{"kind":"number","nativeSrc":"23917:2:54","nodeType":"YulLiteral","src":"23917:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23902:3:54","nodeType":"YulIdentifier","src":"23902:3:54"},"nativeSrc":"23902:18:54","nodeType":"YulFunctionCall","src":"23902:18:54"},{"arguments":[{"name":"value4","nativeSrc":"23926:6:54","nodeType":"YulIdentifier","src":"23926:6:54"},{"kind":"number","nativeSrc":"23934:18:54","nodeType":"YulLiteral","src":"23934:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"23922:3:54","nodeType":"YulIdentifier","src":"23922:3:54"},"nativeSrc":"23922:31:54","nodeType":"YulFunctionCall","src":"23922:31:54"}],"functionName":{"name":"mstore","nativeSrc":"23895:6:54","nodeType":"YulIdentifier","src":"23895:6:54"},"nativeSrc":"23895:59:54","nodeType":"YulFunctionCall","src":"23895:59:54"},"nativeSrc":"23895:59:54","nodeType":"YulExpressionStatement","src":"23895:59:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23974:9:54","nodeType":"YulIdentifier","src":"23974:9:54"},{"kind":"number","nativeSrc":"23985:3:54","nodeType":"YulLiteral","src":"23985:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23970:3:54","nodeType":"YulIdentifier","src":"23970:3:54"},"nativeSrc":"23970:19:54","nodeType":"YulFunctionCall","src":"23970:19:54"},{"arguments":[{"name":"tail_1","nativeSrc":"23995:6:54","nodeType":"YulIdentifier","src":"23995:6:54"},{"name":"headStart","nativeSrc":"24003:9:54","nodeType":"YulIdentifier","src":"24003:9:54"}],"functionName":{"name":"sub","nativeSrc":"23991:3:54","nodeType":"YulIdentifier","src":"23991:3:54"},"nativeSrc":"23991:22:54","nodeType":"YulFunctionCall","src":"23991:22:54"}],"functionName":{"name":"mstore","nativeSrc":"23963:6:54","nodeType":"YulIdentifier","src":"23963:6:54"},"nativeSrc":"23963:51:54","nodeType":"YulFunctionCall","src":"23963:51:54"},"nativeSrc":"23963:51:54","nodeType":"YulExpressionStatement","src":"23963:51:54"},{"nativeSrc":"24023:63:54","nodeType":"YulVariableDeclaration","src":"24023:63:54","value":{"arguments":[{"name":"value5","nativeSrc":"24063:6:54","nodeType":"YulIdentifier","src":"24063:6:54"},{"name":"value6","nativeSrc":"24071:6:54","nodeType":"YulIdentifier","src":"24071:6:54"},{"name":"tail_1","nativeSrc":"24079:6:54","nodeType":"YulIdentifier","src":"24079:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"24037:25:54","nodeType":"YulIdentifier","src":"24037:25:54"},"nativeSrc":"24037:49:54","nodeType":"YulFunctionCall","src":"24037:49:54"},"variables":[{"name":"tail_2","nativeSrc":"24027:6:54","nodeType":"YulTypedName","src":"24027:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24106:9:54","nodeType":"YulIdentifier","src":"24106:9:54"},{"kind":"number","nativeSrc":"24117:3:54","nodeType":"YulLiteral","src":"24117:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"24102:3:54","nodeType":"YulIdentifier","src":"24102:3:54"},"nativeSrc":"24102:19:54","nodeType":"YulFunctionCall","src":"24102:19:54"},{"arguments":[{"name":"tail_2","nativeSrc":"24127:6:54","nodeType":"YulIdentifier","src":"24127:6:54"},{"name":"headStart","nativeSrc":"24135:9:54","nodeType":"YulIdentifier","src":"24135:9:54"}],"functionName":{"name":"sub","nativeSrc":"24123:3:54","nodeType":"YulIdentifier","src":"24123:3:54"},"nativeSrc":"24123:22:54","nodeType":"YulFunctionCall","src":"24123:22:54"}],"functionName":{"name":"mstore","nativeSrc":"24095:6:54","nodeType":"YulIdentifier","src":"24095:6:54"},"nativeSrc":"24095:51:54","nodeType":"YulFunctionCall","src":"24095:51:54"},"nativeSrc":"24095:51:54","nodeType":"YulExpressionStatement","src":"24095:51:54"},{"nativeSrc":"24155:40:54","nodeType":"YulAssignment","src":"24155:40:54","value":{"arguments":[{"name":"value7","nativeSrc":"24180:6:54","nodeType":"YulIdentifier","src":"24180:6:54"},{"name":"tail_2","nativeSrc":"24188:6:54","nodeType":"YulIdentifier","src":"24188:6:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"24163:16:54","nodeType":"YulIdentifier","src":"24163:16:54"},"nativeSrc":"24163:32:54","nodeType":"YulFunctionCall","src":"24163:32:54"},"variableNames":[{"name":"tail","nativeSrc":"24155:4:54","nodeType":"YulIdentifier","src":"24155:4:54"}]}]},"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":"23310:891:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23534:9:54","nodeType":"YulTypedName","src":"23534:9:54","type":""},{"name":"value7","nativeSrc":"23545:6:54","nodeType":"YulTypedName","src":"23545:6:54","type":""},{"name":"value6","nativeSrc":"23553:6:54","nodeType":"YulTypedName","src":"23553:6:54","type":""},{"name":"value5","nativeSrc":"23561:6:54","nodeType":"YulTypedName","src":"23561:6:54","type":""},{"name":"value4","nativeSrc":"23569:6:54","nodeType":"YulTypedName","src":"23569:6:54","type":""},{"name":"value3","nativeSrc":"23577:6:54","nodeType":"YulTypedName","src":"23577:6:54","type":""},{"name":"value2","nativeSrc":"23585:6:54","nodeType":"YulTypedName","src":"23585:6:54","type":""},{"name":"value1","nativeSrc":"23593:6:54","nodeType":"YulTypedName","src":"23593:6:54","type":""},{"name":"value0","nativeSrc":"23601:6:54","nodeType":"YulTypedName","src":"23601:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23612:4:54","nodeType":"YulTypedName","src":"23612:4:54","type":""}],"src":"23310:891:54"},{"body":{"nativeSrc":"24380:223:54","nodeType":"YulBlock","src":"24380:223:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24397:9:54","nodeType":"YulIdentifier","src":"24397:9:54"},{"kind":"number","nativeSrc":"24408:2:54","nodeType":"YulLiteral","src":"24408:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24390:6:54","nodeType":"YulIdentifier","src":"24390:6:54"},"nativeSrc":"24390:21:54","nodeType":"YulFunctionCall","src":"24390:21:54"},"nativeSrc":"24390:21:54","nodeType":"YulExpressionStatement","src":"24390:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24431:9:54","nodeType":"YulIdentifier","src":"24431:9:54"},{"kind":"number","nativeSrc":"24442:2:54","nodeType":"YulLiteral","src":"24442:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24427:3:54","nodeType":"YulIdentifier","src":"24427:3:54"},"nativeSrc":"24427:18:54","nodeType":"YulFunctionCall","src":"24427:18:54"},{"kind":"number","nativeSrc":"24447:2:54","nodeType":"YulLiteral","src":"24447:2:54","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"24420:6:54","nodeType":"YulIdentifier","src":"24420:6:54"},"nativeSrc":"24420:30:54","nodeType":"YulFunctionCall","src":"24420:30:54"},"nativeSrc":"24420:30:54","nodeType":"YulExpressionStatement","src":"24420:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24470:9:54","nodeType":"YulIdentifier","src":"24470:9:54"},{"kind":"number","nativeSrc":"24481:2:54","nodeType":"YulLiteral","src":"24481:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24466:3:54","nodeType":"YulIdentifier","src":"24466:3:54"},"nativeSrc":"24466:18:54","nodeType":"YulFunctionCall","src":"24466:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nativeSrc":"24486:34:54","nodeType":"YulLiteral","src":"24486:34:54","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nativeSrc":"24459:6:54","nodeType":"YulIdentifier","src":"24459:6:54"},"nativeSrc":"24459:62:54","nodeType":"YulFunctionCall","src":"24459:62:54"},"nativeSrc":"24459:62:54","nodeType":"YulExpressionStatement","src":"24459:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24541:9:54","nodeType":"YulIdentifier","src":"24541:9:54"},{"kind":"number","nativeSrc":"24552:2:54","nodeType":"YulLiteral","src":"24552:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24537:3:54","nodeType":"YulIdentifier","src":"24537:3:54"},"nativeSrc":"24537:18:54","nodeType":"YulFunctionCall","src":"24537:18:54"},{"hexValue":"79","kind":"string","nativeSrc":"24557:3:54","nodeType":"YulLiteral","src":"24557:3:54","type":"","value":"y"}],"functionName":{"name":"mstore","nativeSrc":"24530:6:54","nodeType":"YulIdentifier","src":"24530:6:54"},"nativeSrc":"24530:31:54","nodeType":"YulFunctionCall","src":"24530:31:54"},"nativeSrc":"24530:31:54","nodeType":"YulExpressionStatement","src":"24530:31:54"},{"nativeSrc":"24570:27:54","nodeType":"YulAssignment","src":"24570:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"24582:9:54","nodeType":"YulIdentifier","src":"24582:9:54"},{"kind":"number","nativeSrc":"24593:3:54","nodeType":"YulLiteral","src":"24593:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24578:3:54","nodeType":"YulIdentifier","src":"24578:3:54"},"nativeSrc":"24578:19:54","nodeType":"YulFunctionCall","src":"24578:19:54"},"variableNames":[{"name":"tail","nativeSrc":"24570:4:54","nodeType":"YulIdentifier","src":"24570:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24206:397:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24357:9:54","nodeType":"YulTypedName","src":"24357:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24371:4:54","nodeType":"YulTypedName","src":"24371:4:54","type":""}],"src":"24206:397:54"},{"body":{"nativeSrc":"24782:234:54","nodeType":"YulBlock","src":"24782:234:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24799:9:54","nodeType":"YulIdentifier","src":"24799:9:54"},{"kind":"number","nativeSrc":"24810:2:54","nodeType":"YulLiteral","src":"24810:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24792:6:54","nodeType":"YulIdentifier","src":"24792:6:54"},"nativeSrc":"24792:21:54","nodeType":"YulFunctionCall","src":"24792:21:54"},"nativeSrc":"24792:21:54","nodeType":"YulExpressionStatement","src":"24792:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24833:9:54","nodeType":"YulIdentifier","src":"24833:9:54"},{"kind":"number","nativeSrc":"24844:2:54","nodeType":"YulLiteral","src":"24844:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24829:3:54","nodeType":"YulIdentifier","src":"24829:3:54"},"nativeSrc":"24829:18:54","nodeType":"YulFunctionCall","src":"24829:18:54"},{"kind":"number","nativeSrc":"24849:2:54","nodeType":"YulLiteral","src":"24849:2:54","type":"","value":"44"}],"functionName":{"name":"mstore","nativeSrc":"24822:6:54","nodeType":"YulIdentifier","src":"24822:6:54"},"nativeSrc":"24822:30:54","nodeType":"YulFunctionCall","src":"24822:30:54"},"nativeSrc":"24822:30:54","nodeType":"YulExpressionStatement","src":"24822:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24872:9:54","nodeType":"YulIdentifier","src":"24872:9:54"},{"kind":"number","nativeSrc":"24883:2:54","nodeType":"YulLiteral","src":"24883:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24868:3:54","nodeType":"YulIdentifier","src":"24868:3:54"},"nativeSrc":"24868:18:54","nodeType":"YulFunctionCall","src":"24868:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nativeSrc":"24888:34:54","nodeType":"YulLiteral","src":"24888:34:54","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nativeSrc":"24861:6:54","nodeType":"YulIdentifier","src":"24861:6:54"},"nativeSrc":"24861:62:54","nodeType":"YulFunctionCall","src":"24861:62:54"},"nativeSrc":"24861:62:54","nodeType":"YulExpressionStatement","src":"24861:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24943:9:54","nodeType":"YulIdentifier","src":"24943:9:54"},{"kind":"number","nativeSrc":"24954:2:54","nodeType":"YulLiteral","src":"24954:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24939:3:54","nodeType":"YulIdentifier","src":"24939:3:54"},"nativeSrc":"24939:18:54","nodeType":"YulFunctionCall","src":"24939:18:54"},{"hexValue":"616464726573732073697a65","kind":"string","nativeSrc":"24959:14:54","nodeType":"YulLiteral","src":"24959:14:54","type":"","value":"address size"}],"functionName":{"name":"mstore","nativeSrc":"24932:6:54","nodeType":"YulIdentifier","src":"24932:6:54"},"nativeSrc":"24932:42:54","nodeType":"YulFunctionCall","src":"24932:42:54"},"nativeSrc":"24932:42:54","nodeType":"YulExpressionStatement","src":"24932:42:54"},{"nativeSrc":"24983:27:54","nodeType":"YulAssignment","src":"24983:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"24995:9:54","nodeType":"YulIdentifier","src":"24995:9:54"},{"kind":"number","nativeSrc":"25006:3:54","nodeType":"YulLiteral","src":"25006:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24991:3:54","nodeType":"YulIdentifier","src":"24991:3:54"},"nativeSrc":"24991:19:54","nodeType":"YulFunctionCall","src":"24991:19:54"},"variableNames":[{"name":"tail","nativeSrc":"24983:4:54","nodeType":"YulIdentifier","src":"24983:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24608:408:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24759:9:54","nodeType":"YulTypedName","src":"24759:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24773:4:54","nodeType":"YulTypedName","src":"24773:4:54","type":""}],"src":"24608:408:54"},{"body":{"nativeSrc":"25195:245:54","nodeType":"YulBlock","src":"25195:245:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25212:9:54","nodeType":"YulIdentifier","src":"25212:9:54"},{"kind":"number","nativeSrc":"25223:2:54","nodeType":"YulLiteral","src":"25223:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25205:6:54","nodeType":"YulIdentifier","src":"25205:6:54"},"nativeSrc":"25205:21:54","nodeType":"YulFunctionCall","src":"25205:21:54"},"nativeSrc":"25205:21:54","nodeType":"YulExpressionStatement","src":"25205:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25246:9:54","nodeType":"YulIdentifier","src":"25246:9:54"},{"kind":"number","nativeSrc":"25257:2:54","nodeType":"YulLiteral","src":"25257:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25242:3:54","nodeType":"YulIdentifier","src":"25242:3:54"},"nativeSrc":"25242:18:54","nodeType":"YulFunctionCall","src":"25242:18:54"},{"kind":"number","nativeSrc":"25262:2:54","nodeType":"YulLiteral","src":"25262:2:54","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"25235:6:54","nodeType":"YulIdentifier","src":"25235:6:54"},"nativeSrc":"25235:30:54","nodeType":"YulFunctionCall","src":"25235:30:54"},"nativeSrc":"25235:30:54","nodeType":"YulExpressionStatement","src":"25235:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25285:9:54","nodeType":"YulIdentifier","src":"25285:9:54"},{"kind":"number","nativeSrc":"25296:2:54","nodeType":"YulLiteral","src":"25296:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25281:3:54","nodeType":"YulIdentifier","src":"25281:3:54"},"nativeSrc":"25281:18:54","nodeType":"YulFunctionCall","src":"25281:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nativeSrc":"25301:34:54","nodeType":"YulLiteral","src":"25301:34:54","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nativeSrc":"25274:6:54","nodeType":"YulIdentifier","src":"25274:6:54"},"nativeSrc":"25274:62:54","nodeType":"YulFunctionCall","src":"25274:62:54"},"nativeSrc":"25274:62:54","nodeType":"YulExpressionStatement","src":"25274:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25356:9:54","nodeType":"YulIdentifier","src":"25356:9:54"},{"kind":"number","nativeSrc":"25367:2:54","nodeType":"YulLiteral","src":"25367:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25352:3:54","nodeType":"YulIdentifier","src":"25352:3:54"},"nativeSrc":"25352:18:54","nodeType":"YulFunctionCall","src":"25352:18:54"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nativeSrc":"25372:25:54","nodeType":"YulLiteral","src":"25372:25:54","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nativeSrc":"25345:6:54","nodeType":"YulIdentifier","src":"25345:6:54"},"nativeSrc":"25345:53:54","nodeType":"YulFunctionCall","src":"25345:53:54"},"nativeSrc":"25345:53:54","nodeType":"YulExpressionStatement","src":"25345:53:54"},{"nativeSrc":"25407:27:54","nodeType":"YulAssignment","src":"25407:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"25419:9:54","nodeType":"YulIdentifier","src":"25419:9:54"},{"kind":"number","nativeSrc":"25430:3:54","nodeType":"YulLiteral","src":"25430:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25415:3:54","nodeType":"YulIdentifier","src":"25415:3:54"},"nativeSrc":"25415:19:54","nodeType":"YulFunctionCall","src":"25415:19:54"},"variableNames":[{"name":"tail","nativeSrc":"25407:4:54","nodeType":"YulIdentifier","src":"25407:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25021:419:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25172:9:54","nodeType":"YulTypedName","src":"25172:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25186:4:54","nodeType":"YulTypedName","src":"25186:4:54","type":""}],"src":"25021:419:54"},{"body":{"nativeSrc":"25619:231:54","nodeType":"YulBlock","src":"25619:231:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25636:9:54","nodeType":"YulIdentifier","src":"25636:9:54"},{"kind":"number","nativeSrc":"25647:2:54","nodeType":"YulLiteral","src":"25647:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25629:6:54","nodeType":"YulIdentifier","src":"25629:6:54"},"nativeSrc":"25629:21:54","nodeType":"YulFunctionCall","src":"25629:21:54"},"nativeSrc":"25629:21:54","nodeType":"YulExpressionStatement","src":"25629:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25670:9:54","nodeType":"YulIdentifier","src":"25670:9:54"},{"kind":"number","nativeSrc":"25681:2:54","nodeType":"YulLiteral","src":"25681:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25666:3:54","nodeType":"YulIdentifier","src":"25666:3:54"},"nativeSrc":"25666:18:54","nodeType":"YulFunctionCall","src":"25666:18:54"},{"kind":"number","nativeSrc":"25686:2:54","nodeType":"YulLiteral","src":"25686:2:54","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"25659:6:54","nodeType":"YulIdentifier","src":"25659:6:54"},"nativeSrc":"25659:30:54","nodeType":"YulFunctionCall","src":"25659:30:54"},"nativeSrc":"25659:30:54","nodeType":"YulExpressionStatement","src":"25659:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25709:9:54","nodeType":"YulIdentifier","src":"25709:9:54"},{"kind":"number","nativeSrc":"25720:2:54","nodeType":"YulLiteral","src":"25720:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25705:3:54","nodeType":"YulIdentifier","src":"25705:3:54"},"nativeSrc":"25705:18:54","nodeType":"YulFunctionCall","src":"25705:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nativeSrc":"25725:34:54","nodeType":"YulLiteral","src":"25725:34:54","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nativeSrc":"25698:6:54","nodeType":"YulIdentifier","src":"25698:6:54"},"nativeSrc":"25698:62:54","nodeType":"YulFunctionCall","src":"25698:62:54"},"nativeSrc":"25698:62:54","nodeType":"YulExpressionStatement","src":"25698:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25780:9:54","nodeType":"YulIdentifier","src":"25780:9:54"},{"kind":"number","nativeSrc":"25791:2:54","nodeType":"YulLiteral","src":"25791:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25776:3:54","nodeType":"YulIdentifier","src":"25776:3:54"},"nativeSrc":"25776:18:54","nodeType":"YulFunctionCall","src":"25776:18:54"},{"hexValue":"20666f722066656573","kind":"string","nativeSrc":"25796:11:54","nodeType":"YulLiteral","src":"25796:11:54","type":"","value":" for fees"}],"functionName":{"name":"mstore","nativeSrc":"25769:6:54","nodeType":"YulIdentifier","src":"25769:6:54"},"nativeSrc":"25769:39:54","nodeType":"YulFunctionCall","src":"25769:39:54"},"nativeSrc":"25769:39:54","nodeType":"YulExpressionStatement","src":"25769:39:54"},{"nativeSrc":"25817:27:54","nodeType":"YulAssignment","src":"25817:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"25829:9:54","nodeType":"YulIdentifier","src":"25829:9:54"},{"kind":"number","nativeSrc":"25840:3:54","nodeType":"YulLiteral","src":"25840:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25825:3:54","nodeType":"YulIdentifier","src":"25825:3:54"},"nativeSrc":"25825:19:54","nodeType":"YulFunctionCall","src":"25825:19:54"},"variableNames":[{"name":"tail","nativeSrc":"25817:4:54","nodeType":"YulIdentifier","src":"25817:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25445:405:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25596:9:54","nodeType":"YulTypedName","src":"25596:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25610:4:54","nodeType":"YulTypedName","src":"25610:4:54","type":""}],"src":"25445:405:54"},{"body":{"nativeSrc":"26046:14:54","nodeType":"YulBlock","src":"26046:14:54","statements":[{"nativeSrc":"26048:10:54","nodeType":"YulAssignment","src":"26048:10:54","value":{"name":"pos","nativeSrc":"26055:3:54","nodeType":"YulIdentifier","src":"26055:3:54"},"variableNames":[{"name":"end","nativeSrc":"26048:3:54","nodeType":"YulIdentifier","src":"26048:3:54"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"25855:205:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26030:3:54","nodeType":"YulTypedName","src":"26030:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26038:3:54","nodeType":"YulTypedName","src":"26038:3:54","type":""}],"src":"25855:205:54"},{"body":{"nativeSrc":"26239:181:54","nodeType":"YulBlock","src":"26239:181:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26256:9:54","nodeType":"YulIdentifier","src":"26256:9:54"},{"kind":"number","nativeSrc":"26267:2:54","nodeType":"YulLiteral","src":"26267:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"26249:6:54","nodeType":"YulIdentifier","src":"26249:6:54"},"nativeSrc":"26249:21:54","nodeType":"YulFunctionCall","src":"26249:21:54"},"nativeSrc":"26249:21:54","nodeType":"YulExpressionStatement","src":"26249:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26290:9:54","nodeType":"YulIdentifier","src":"26290:9:54"},{"kind":"number","nativeSrc":"26301:2:54","nodeType":"YulLiteral","src":"26301:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26286:3:54","nodeType":"YulIdentifier","src":"26286:3:54"},"nativeSrc":"26286:18:54","nodeType":"YulFunctionCall","src":"26286:18:54"},{"kind":"number","nativeSrc":"26306:2:54","nodeType":"YulLiteral","src":"26306:2:54","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"26279:6:54","nodeType":"YulIdentifier","src":"26279:6:54"},"nativeSrc":"26279:30:54","nodeType":"YulFunctionCall","src":"26279:30:54"},"nativeSrc":"26279:30:54","nodeType":"YulExpressionStatement","src":"26279:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26329:9:54","nodeType":"YulIdentifier","src":"26329:9:54"},{"kind":"number","nativeSrc":"26340:2:54","nodeType":"YulLiteral","src":"26340:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26325:3:54","nodeType":"YulIdentifier","src":"26325:3:54"},"nativeSrc":"26325:18:54","nodeType":"YulFunctionCall","src":"26325:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nativeSrc":"26345:33:54","nodeType":"YulLiteral","src":"26345:33:54","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nativeSrc":"26318:6:54","nodeType":"YulIdentifier","src":"26318:6:54"},"nativeSrc":"26318:61:54","nodeType":"YulFunctionCall","src":"26318:61:54"},"nativeSrc":"26318:61:54","nodeType":"YulExpressionStatement","src":"26318:61:54"},{"nativeSrc":"26388:26:54","nodeType":"YulAssignment","src":"26388:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"26400:9:54","nodeType":"YulIdentifier","src":"26400:9:54"},{"kind":"number","nativeSrc":"26411:2:54","nodeType":"YulLiteral","src":"26411:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26396:3:54","nodeType":"YulIdentifier","src":"26396:3:54"},"nativeSrc":"26396:18:54","nodeType":"YulFunctionCall","src":"26396:18:54"},"variableNames":[{"name":"tail","nativeSrc":"26388:4:54","nodeType":"YulIdentifier","src":"26388:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26065:355:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26216:9:54","nodeType":"YulTypedName","src":"26216:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26230:4:54","nodeType":"YulTypedName","src":"26230:4:54","type":""}],"src":"26065:355:54"},{"body":{"nativeSrc":"26572:221:54","nodeType":"YulBlock","src":"26572:221:54","statements":[{"nativeSrc":"26582:76:54","nodeType":"YulVariableDeclaration","src":"26582:76:54","value":{"kind":"number","nativeSrc":"26592:66:54","nodeType":"YulLiteral","src":"26592:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"},"variables":[{"name":"_1","nativeSrc":"26586:2:54","nodeType":"YulTypedName","src":"26586:2:54","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"26674:3:54","nodeType":"YulIdentifier","src":"26674:3:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26687:2:54","nodeType":"YulLiteral","src":"26687:2:54","type":"","value":"96"},{"name":"value0","nativeSrc":"26691:6:54","nodeType":"YulIdentifier","src":"26691:6:54"}],"functionName":{"name":"shl","nativeSrc":"26683:3:54","nodeType":"YulIdentifier","src":"26683:3:54"},"nativeSrc":"26683:15:54","nodeType":"YulFunctionCall","src":"26683:15:54"},{"name":"_1","nativeSrc":"26700:2:54","nodeType":"YulIdentifier","src":"26700:2:54"}],"functionName":{"name":"and","nativeSrc":"26679:3:54","nodeType":"YulIdentifier","src":"26679:3:54"},"nativeSrc":"26679:24:54","nodeType":"YulFunctionCall","src":"26679:24:54"}],"functionName":{"name":"mstore","nativeSrc":"26667:6:54","nodeType":"YulIdentifier","src":"26667:6:54"},"nativeSrc":"26667:37:54","nodeType":"YulFunctionCall","src":"26667:37:54"},"nativeSrc":"26667:37:54","nodeType":"YulExpressionStatement","src":"26667:37:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"26724:3:54","nodeType":"YulIdentifier","src":"26724:3:54"},{"kind":"number","nativeSrc":"26729:2:54","nodeType":"YulLiteral","src":"26729:2:54","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"26720:3:54","nodeType":"YulIdentifier","src":"26720:3:54"},"nativeSrc":"26720:12:54","nodeType":"YulFunctionCall","src":"26720:12:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26742:2:54","nodeType":"YulLiteral","src":"26742:2:54","type":"","value":"96"},{"name":"value1","nativeSrc":"26746:6:54","nodeType":"YulIdentifier","src":"26746:6:54"}],"functionName":{"name":"shl","nativeSrc":"26738:3:54","nodeType":"YulIdentifier","src":"26738:3:54"},"nativeSrc":"26738:15:54","nodeType":"YulFunctionCall","src":"26738:15:54"},{"name":"_1","nativeSrc":"26755:2:54","nodeType":"YulIdentifier","src":"26755:2:54"}],"functionName":{"name":"and","nativeSrc":"26734:3:54","nodeType":"YulIdentifier","src":"26734:3:54"},"nativeSrc":"26734:24:54","nodeType":"YulFunctionCall","src":"26734:24:54"}],"functionName":{"name":"mstore","nativeSrc":"26713:6:54","nodeType":"YulIdentifier","src":"26713:6:54"},"nativeSrc":"26713:46:54","nodeType":"YulFunctionCall","src":"26713:46:54"},"nativeSrc":"26713:46:54","nodeType":"YulExpressionStatement","src":"26713:46:54"},{"nativeSrc":"26768:19:54","nodeType":"YulAssignment","src":"26768:19:54","value":{"arguments":[{"name":"pos","nativeSrc":"26779:3:54","nodeType":"YulIdentifier","src":"26779:3:54"},{"kind":"number","nativeSrc":"26784:2:54","nodeType":"YulLiteral","src":"26784:2:54","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"26775:3:54","nodeType":"YulIdentifier","src":"26775:3:54"},"nativeSrc":"26775:12:54","nodeType":"YulFunctionCall","src":"26775:12:54"},"variableNames":[{"name":"end","nativeSrc":"26768:3:54","nodeType":"YulIdentifier","src":"26768:3:54"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"26425:368:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26540:3:54","nodeType":"YulTypedName","src":"26540:3:54","type":""},{"name":"value1","nativeSrc":"26545:6:54","nodeType":"YulTypedName","src":"26545:6:54","type":""},{"name":"value0","nativeSrc":"26553:6:54","nodeType":"YulTypedName","src":"26553:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26564:3:54","nodeType":"YulTypedName","src":"26564:3:54","type":""}],"src":"26425:368:54"},{"body":{"nativeSrc":"27071:475:54","nodeType":"YulBlock","src":"27071:475:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27088:9:54","nodeType":"YulIdentifier","src":"27088:9:54"},{"arguments":[{"name":"value0","nativeSrc":"27103:6:54","nodeType":"YulIdentifier","src":"27103:6:54"},{"kind":"number","nativeSrc":"27111:6:54","nodeType":"YulLiteral","src":"27111:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"27099:3:54","nodeType":"YulIdentifier","src":"27099:3:54"},"nativeSrc":"27099:19:54","nodeType":"YulFunctionCall","src":"27099:19:54"}],"functionName":{"name":"mstore","nativeSrc":"27081:6:54","nodeType":"YulIdentifier","src":"27081:6:54"},"nativeSrc":"27081:38:54","nodeType":"YulFunctionCall","src":"27081:38:54"},"nativeSrc":"27081:38:54","nodeType":"YulExpressionStatement","src":"27081:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27139:9:54","nodeType":"YulIdentifier","src":"27139:9:54"},{"kind":"number","nativeSrc":"27150:2:54","nodeType":"YulLiteral","src":"27150:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27135:3:54","nodeType":"YulIdentifier","src":"27135:3:54"},"nativeSrc":"27135:18:54","nodeType":"YulFunctionCall","src":"27135:18:54"},{"kind":"number","nativeSrc":"27155:3:54","nodeType":"YulLiteral","src":"27155:3:54","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"27128:6:54","nodeType":"YulIdentifier","src":"27128:6:54"},"nativeSrc":"27128:31:54","nodeType":"YulFunctionCall","src":"27128:31:54"},"nativeSrc":"27128:31:54","nodeType":"YulExpressionStatement","src":"27128:31:54"},{"nativeSrc":"27168:59:54","nodeType":"YulVariableDeclaration","src":"27168:59:54","value":{"arguments":[{"name":"value1","nativeSrc":"27199:6:54","nodeType":"YulIdentifier","src":"27199:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"27211:9:54","nodeType":"YulIdentifier","src":"27211:9:54"},{"kind":"number","nativeSrc":"27222:3:54","nodeType":"YulLiteral","src":"27222:3:54","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"27207:3:54","nodeType":"YulIdentifier","src":"27207:3:54"},"nativeSrc":"27207:19:54","nodeType":"YulFunctionCall","src":"27207:19:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"27182:16:54","nodeType":"YulIdentifier","src":"27182:16:54"},"nativeSrc":"27182:45:54","nodeType":"YulFunctionCall","src":"27182:45:54"},"variables":[{"name":"tail_1","nativeSrc":"27172:6:54","nodeType":"YulTypedName","src":"27172:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27247:9:54","nodeType":"YulIdentifier","src":"27247:9:54"},{"kind":"number","nativeSrc":"27258:2:54","nodeType":"YulLiteral","src":"27258:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27243:3:54","nodeType":"YulIdentifier","src":"27243:3:54"},"nativeSrc":"27243:18:54","nodeType":"YulFunctionCall","src":"27243:18:54"},{"arguments":[{"name":"value2","nativeSrc":"27267:6:54","nodeType":"YulIdentifier","src":"27267:6:54"},{"kind":"number","nativeSrc":"27275:42:54","nodeType":"YulLiteral","src":"27275:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"27263:3:54","nodeType":"YulIdentifier","src":"27263:3:54"},"nativeSrc":"27263:55:54","nodeType":"YulFunctionCall","src":"27263:55:54"}],"functionName":{"name":"mstore","nativeSrc":"27236:6:54","nodeType":"YulIdentifier","src":"27236:6:54"},"nativeSrc":"27236:83:54","nodeType":"YulFunctionCall","src":"27236:83:54"},"nativeSrc":"27236:83:54","nodeType":"YulExpressionStatement","src":"27236:83:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27339:9:54","nodeType":"YulIdentifier","src":"27339:9:54"},{"kind":"number","nativeSrc":"27350:2:54","nodeType":"YulLiteral","src":"27350:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27335:3:54","nodeType":"YulIdentifier","src":"27335:3:54"},"nativeSrc":"27335:18:54","nodeType":"YulFunctionCall","src":"27335:18:54"},{"arguments":[{"name":"value3","nativeSrc":"27359:6:54","nodeType":"YulIdentifier","src":"27359:6:54"},{"kind":"number","nativeSrc":"27367:18:54","nodeType":"YulLiteral","src":"27367:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"27355:3:54","nodeType":"YulIdentifier","src":"27355:3:54"},"nativeSrc":"27355:31:54","nodeType":"YulFunctionCall","src":"27355:31:54"}],"functionName":{"name":"mstore","nativeSrc":"27328:6:54","nodeType":"YulIdentifier","src":"27328:6:54"},"nativeSrc":"27328:59:54","nodeType":"YulFunctionCall","src":"27328:59:54"},"nativeSrc":"27328:59:54","nodeType":"YulExpressionStatement","src":"27328:59:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27407:9:54","nodeType":"YulIdentifier","src":"27407:9:54"},{"kind":"number","nativeSrc":"27418:3:54","nodeType":"YulLiteral","src":"27418:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27403:3:54","nodeType":"YulIdentifier","src":"27403:3:54"},"nativeSrc":"27403:19:54","nodeType":"YulFunctionCall","src":"27403:19:54"},{"name":"value4","nativeSrc":"27424:6:54","nodeType":"YulIdentifier","src":"27424:6:54"}],"functionName":{"name":"mstore","nativeSrc":"27396:6:54","nodeType":"YulIdentifier","src":"27396:6:54"},"nativeSrc":"27396:35:54","nodeType":"YulFunctionCall","src":"27396:35:54"},"nativeSrc":"27396:35:54","nodeType":"YulExpressionStatement","src":"27396:35:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27451:9:54","nodeType":"YulIdentifier","src":"27451:9:54"},{"kind":"number","nativeSrc":"27462:3:54","nodeType":"YulLiteral","src":"27462:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"27447:3:54","nodeType":"YulIdentifier","src":"27447:3:54"},"nativeSrc":"27447:19:54","nodeType":"YulFunctionCall","src":"27447:19:54"},{"arguments":[{"name":"tail_1","nativeSrc":"27472:6:54","nodeType":"YulIdentifier","src":"27472:6:54"},{"name":"headStart","nativeSrc":"27480:9:54","nodeType":"YulIdentifier","src":"27480:9:54"}],"functionName":{"name":"sub","nativeSrc":"27468:3:54","nodeType":"YulIdentifier","src":"27468:3:54"},"nativeSrc":"27468:22:54","nodeType":"YulFunctionCall","src":"27468:22:54"}],"functionName":{"name":"mstore","nativeSrc":"27440:6:54","nodeType":"YulIdentifier","src":"27440:6:54"},"nativeSrc":"27440:51:54","nodeType":"YulFunctionCall","src":"27440:51:54"},"nativeSrc":"27440:51:54","nodeType":"YulExpressionStatement","src":"27440:51:54"},{"nativeSrc":"27500:40:54","nodeType":"YulAssignment","src":"27500:40:54","value":{"arguments":[{"name":"value5","nativeSrc":"27525:6:54","nodeType":"YulIdentifier","src":"27525:6:54"},{"name":"tail_1","nativeSrc":"27533:6:54","nodeType":"YulIdentifier","src":"27533:6:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"27508:16:54","nodeType":"YulIdentifier","src":"27508:16:54"},"nativeSrc":"27508:32:54","nodeType":"YulFunctionCall","src":"27508:32:54"},"variableNames":[{"name":"tail","nativeSrc":"27500:4:54","nodeType":"YulIdentifier","src":"27500:4:54"}]}]},"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":"26798:748:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27000:9:54","nodeType":"YulTypedName","src":"27000:9:54","type":""},{"name":"value5","nativeSrc":"27011:6:54","nodeType":"YulTypedName","src":"27011:6:54","type":""},{"name":"value4","nativeSrc":"27019:6:54","nodeType":"YulTypedName","src":"27019:6:54","type":""},{"name":"value3","nativeSrc":"27027:6:54","nodeType":"YulTypedName","src":"27027:6:54","type":""},{"name":"value2","nativeSrc":"27035:6:54","nodeType":"YulTypedName","src":"27035:6:54","type":""},{"name":"value1","nativeSrc":"27043:6:54","nodeType":"YulTypedName","src":"27043:6:54","type":""},{"name":"value0","nativeSrc":"27051:6:54","nodeType":"YulTypedName","src":"27051:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27062:4:54","nodeType":"YulTypedName","src":"27062:4:54","type":""}],"src":"26798:748:54"},{"body":{"nativeSrc":"27725:228:54","nodeType":"YulBlock","src":"27725:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27742:9:54","nodeType":"YulIdentifier","src":"27742:9:54"},{"kind":"number","nativeSrc":"27753:2:54","nodeType":"YulLiteral","src":"27753:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"27735:6:54","nodeType":"YulIdentifier","src":"27735:6:54"},"nativeSrc":"27735:21:54","nodeType":"YulFunctionCall","src":"27735:21:54"},"nativeSrc":"27735:21:54","nodeType":"YulExpressionStatement","src":"27735:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27776:9:54","nodeType":"YulIdentifier","src":"27776:9:54"},{"kind":"number","nativeSrc":"27787:2:54","nodeType":"YulLiteral","src":"27787:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27772:3:54","nodeType":"YulIdentifier","src":"27772:3:54"},"nativeSrc":"27772:18:54","nodeType":"YulFunctionCall","src":"27772:18:54"},{"kind":"number","nativeSrc":"27792:2:54","nodeType":"YulLiteral","src":"27792:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"27765:6:54","nodeType":"YulIdentifier","src":"27765:6:54"},"nativeSrc":"27765:30:54","nodeType":"YulFunctionCall","src":"27765:30:54"},"nativeSrc":"27765:30:54","nodeType":"YulExpressionStatement","src":"27765:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27815:9:54","nodeType":"YulIdentifier","src":"27815:9:54"},{"kind":"number","nativeSrc":"27826:2:54","nodeType":"YulLiteral","src":"27826:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27811:3:54","nodeType":"YulIdentifier","src":"27811:3:54"},"nativeSrc":"27811:18:54","nodeType":"YulFunctionCall","src":"27811:18:54"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nativeSrc":"27831:34:54","nodeType":"YulLiteral","src":"27831:34:54","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nativeSrc":"27804:6:54","nodeType":"YulIdentifier","src":"27804:6:54"},"nativeSrc":"27804:62:54","nodeType":"YulFunctionCall","src":"27804:62:54"},"nativeSrc":"27804:62:54","nodeType":"YulExpressionStatement","src":"27804:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27886:9:54","nodeType":"YulIdentifier","src":"27886:9:54"},{"kind":"number","nativeSrc":"27897:2:54","nodeType":"YulLiteral","src":"27897:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27882:3:54","nodeType":"YulIdentifier","src":"27882:3:54"},"nativeSrc":"27882:18:54","nodeType":"YulFunctionCall","src":"27882:18:54"},{"hexValue":"6c6172676520","kind":"string","nativeSrc":"27902:8:54","nodeType":"YulLiteral","src":"27902:8:54","type":"","value":"large "}],"functionName":{"name":"mstore","nativeSrc":"27875:6:54","nodeType":"YulIdentifier","src":"27875:6:54"},"nativeSrc":"27875:36:54","nodeType":"YulFunctionCall","src":"27875:36:54"},"nativeSrc":"27875:36:54","nodeType":"YulExpressionStatement","src":"27875:36:54"},{"nativeSrc":"27920:27:54","nodeType":"YulAssignment","src":"27920:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"27932:9:54","nodeType":"YulIdentifier","src":"27932:9:54"},{"kind":"number","nativeSrc":"27943:3:54","nodeType":"YulLiteral","src":"27943:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27928:3:54","nodeType":"YulIdentifier","src":"27928:3:54"},"nativeSrc":"27928:19:54","nodeType":"YulFunctionCall","src":"27928:19:54"},"variableNames":[{"name":"tail","nativeSrc":"27920:4:54","nodeType":"YulIdentifier","src":"27920:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27551:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27702:9:54","nodeType":"YulTypedName","src":"27702:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27716:4:54","nodeType":"YulTypedName","src":"27716:4:54","type":""}],"src":"27551:402:54"},{"body":{"nativeSrc":"28010:116:54","nodeType":"YulBlock","src":"28010:116:54","statements":[{"nativeSrc":"28020:20:54","nodeType":"YulAssignment","src":"28020:20:54","value":{"arguments":[{"name":"x","nativeSrc":"28035:1:54","nodeType":"YulIdentifier","src":"28035:1:54"},{"name":"y","nativeSrc":"28038:1:54","nodeType":"YulIdentifier","src":"28038:1:54"}],"functionName":{"name":"mul","nativeSrc":"28031:3:54","nodeType":"YulIdentifier","src":"28031:3:54"},"nativeSrc":"28031:9:54","nodeType":"YulFunctionCall","src":"28031:9:54"},"variableNames":[{"name":"product","nativeSrc":"28020:7:54","nodeType":"YulIdentifier","src":"28020:7:54"}]},{"body":{"nativeSrc":"28098:22:54","nodeType":"YulBlock","src":"28098:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28100:16:54","nodeType":"YulIdentifier","src":"28100:16:54"},"nativeSrc":"28100:18:54","nodeType":"YulFunctionCall","src":"28100:18:54"},"nativeSrc":"28100:18:54","nodeType":"YulExpressionStatement","src":"28100:18:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28069:1:54","nodeType":"YulIdentifier","src":"28069:1:54"}],"functionName":{"name":"iszero","nativeSrc":"28062:6:54","nodeType":"YulIdentifier","src":"28062:6:54"},"nativeSrc":"28062:9:54","nodeType":"YulFunctionCall","src":"28062:9:54"},{"arguments":[{"name":"y","nativeSrc":"28076:1:54","nodeType":"YulIdentifier","src":"28076:1:54"},{"arguments":[{"name":"product","nativeSrc":"28083:7:54","nodeType":"YulIdentifier","src":"28083:7:54"},{"name":"x","nativeSrc":"28092:1:54","nodeType":"YulIdentifier","src":"28092:1:54"}],"functionName":{"name":"div","nativeSrc":"28079:3:54","nodeType":"YulIdentifier","src":"28079:3:54"},"nativeSrc":"28079:15:54","nodeType":"YulFunctionCall","src":"28079:15:54"}],"functionName":{"name":"eq","nativeSrc":"28073:2:54","nodeType":"YulIdentifier","src":"28073:2:54"},"nativeSrc":"28073:22:54","nodeType":"YulFunctionCall","src":"28073:22:54"}],"functionName":{"name":"or","nativeSrc":"28059:2:54","nodeType":"YulIdentifier","src":"28059:2:54"},"nativeSrc":"28059:37:54","nodeType":"YulFunctionCall","src":"28059:37:54"}],"functionName":{"name":"iszero","nativeSrc":"28052:6:54","nodeType":"YulIdentifier","src":"28052:6:54"},"nativeSrc":"28052:45:54","nodeType":"YulFunctionCall","src":"28052:45:54"},"nativeSrc":"28049:71:54","nodeType":"YulIf","src":"28049:71:54"}]},"name":"checked_mul_t_uint256","nativeSrc":"27958:168:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27989:1:54","nodeType":"YulTypedName","src":"27989:1:54","type":""},{"name":"y","nativeSrc":"27992:1:54","nodeType":"YulTypedName","src":"27992:1:54","type":""}],"returnVariables":[{"name":"product","nativeSrc":"27998:7:54","nodeType":"YulTypedName","src":"27998:7:54","type":""}],"src":"27958:168:54"},{"body":{"nativeSrc":"28163:152:54","nodeType":"YulBlock","src":"28163:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28180:1:54","nodeType":"YulLiteral","src":"28180:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"28183:77:54","nodeType":"YulLiteral","src":"28183:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"28173:6:54","nodeType":"YulIdentifier","src":"28173:6:54"},"nativeSrc":"28173:88:54","nodeType":"YulFunctionCall","src":"28173:88:54"},"nativeSrc":"28173:88:54","nodeType":"YulExpressionStatement","src":"28173:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28277:1:54","nodeType":"YulLiteral","src":"28277:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"28280:4:54","nodeType":"YulLiteral","src":"28280:4:54","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"28270:6:54","nodeType":"YulIdentifier","src":"28270:6:54"},"nativeSrc":"28270:15:54","nodeType":"YulFunctionCall","src":"28270:15:54"},"nativeSrc":"28270:15:54","nodeType":"YulExpressionStatement","src":"28270:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28301:1:54","nodeType":"YulLiteral","src":"28301:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"28304:4:54","nodeType":"YulLiteral","src":"28304:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"28294:6:54","nodeType":"YulIdentifier","src":"28294:6:54"},"nativeSrc":"28294:15:54","nodeType":"YulFunctionCall","src":"28294:15:54"},"nativeSrc":"28294:15:54","nodeType":"YulExpressionStatement","src":"28294:15:54"}]},"name":"panic_error_0x12","nativeSrc":"28131:184:54","nodeType":"YulFunctionDefinition","src":"28131:184:54"},{"body":{"nativeSrc":"28366:74:54","nodeType":"YulBlock","src":"28366:74:54","statements":[{"body":{"nativeSrc":"28389:22:54","nodeType":"YulBlock","src":"28389:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"28391:16:54","nodeType":"YulIdentifier","src":"28391:16:54"},"nativeSrc":"28391:18:54","nodeType":"YulFunctionCall","src":"28391:18:54"},"nativeSrc":"28391:18:54","nodeType":"YulExpressionStatement","src":"28391:18:54"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"28386:1:54","nodeType":"YulIdentifier","src":"28386:1:54"}],"functionName":{"name":"iszero","nativeSrc":"28379:6:54","nodeType":"YulIdentifier","src":"28379:6:54"},"nativeSrc":"28379:9:54","nodeType":"YulFunctionCall","src":"28379:9:54"},"nativeSrc":"28376:35:54","nodeType":"YulIf","src":"28376:35:54"},{"nativeSrc":"28420:14:54","nodeType":"YulAssignment","src":"28420:14:54","value":{"arguments":[{"name":"x","nativeSrc":"28429:1:54","nodeType":"YulIdentifier","src":"28429:1:54"},{"name":"y","nativeSrc":"28432:1:54","nodeType":"YulIdentifier","src":"28432:1:54"}],"functionName":{"name":"div","nativeSrc":"28425:3:54","nodeType":"YulIdentifier","src":"28425:3:54"},"nativeSrc":"28425:9:54","nodeType":"YulFunctionCall","src":"28425:9:54"},"variableNames":[{"name":"r","nativeSrc":"28420:1:54","nodeType":"YulIdentifier","src":"28420:1:54"}]}]},"name":"checked_div_t_uint256","nativeSrc":"28320:120:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28351:1:54","nodeType":"YulTypedName","src":"28351:1:54","type":""},{"name":"y","nativeSrc":"28354:1:54","nodeType":"YulTypedName","src":"28354:1:54","type":""}],"returnVariables":[{"name":"r","nativeSrc":"28360:1:54","nodeType":"YulTypedName","src":"28360:1:54","type":""}],"src":"28320:120:54"},{"body":{"nativeSrc":"28497:222:54","nodeType":"YulBlock","src":"28497:222:54","statements":[{"nativeSrc":"28507:44:54","nodeType":"YulVariableDeclaration","src":"28507:44:54","value":{"kind":"number","nativeSrc":"28517:34:54","nodeType":"YulLiteral","src":"28517:34:54","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"28511:2:54","nodeType":"YulTypedName","src":"28511:2:54","type":""}]},{"nativeSrc":"28560:46:54","nodeType":"YulVariableDeclaration","src":"28560:46:54","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28587:1:54","nodeType":"YulIdentifier","src":"28587:1:54"},{"name":"_1","nativeSrc":"28590:2:54","nodeType":"YulIdentifier","src":"28590:2:54"}],"functionName":{"name":"and","nativeSrc":"28583:3:54","nodeType":"YulIdentifier","src":"28583:3:54"},"nativeSrc":"28583:10:54","nodeType":"YulFunctionCall","src":"28583:10:54"},{"arguments":[{"name":"y","nativeSrc":"28599:1:54","nodeType":"YulIdentifier","src":"28599:1:54"},{"name":"_1","nativeSrc":"28602:2:54","nodeType":"YulIdentifier","src":"28602:2:54"}],"functionName":{"name":"and","nativeSrc":"28595:3:54","nodeType":"YulIdentifier","src":"28595:3:54"},"nativeSrc":"28595:10:54","nodeType":"YulFunctionCall","src":"28595:10:54"}],"functionName":{"name":"mul","nativeSrc":"28579:3:54","nodeType":"YulIdentifier","src":"28579:3:54"},"nativeSrc":"28579:27:54","nodeType":"YulFunctionCall","src":"28579:27:54"},"variables":[{"name":"product_raw","nativeSrc":"28564:11:54","nodeType":"YulTypedName","src":"28564:11:54","type":""}]},{"nativeSrc":"28615:31:54","nodeType":"YulAssignment","src":"28615:31:54","value":{"arguments":[{"name":"product_raw","nativeSrc":"28630:11:54","nodeType":"YulIdentifier","src":"28630:11:54"},{"name":"_1","nativeSrc":"28643:2:54","nodeType":"YulIdentifier","src":"28643:2:54"}],"functionName":{"name":"and","nativeSrc":"28626:3:54","nodeType":"YulIdentifier","src":"28626:3:54"},"nativeSrc":"28626:20:54","nodeType":"YulFunctionCall","src":"28626:20:54"},"variableNames":[{"name":"product","nativeSrc":"28615:7:54","nodeType":"YulIdentifier","src":"28615:7:54"}]},{"body":{"nativeSrc":"28691:22:54","nodeType":"YulBlock","src":"28691:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28693:16:54","nodeType":"YulIdentifier","src":"28693:16:54"},"nativeSrc":"28693:18:54","nodeType":"YulFunctionCall","src":"28693:18:54"},"nativeSrc":"28693:18:54","nodeType":"YulExpressionStatement","src":"28693:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"product","nativeSrc":"28668:7:54","nodeType":"YulIdentifier","src":"28668:7:54"},{"name":"product_raw","nativeSrc":"28677:11:54","nodeType":"YulIdentifier","src":"28677:11:54"}],"functionName":{"name":"eq","nativeSrc":"28665:2:54","nodeType":"YulIdentifier","src":"28665:2:54"},"nativeSrc":"28665:24:54","nodeType":"YulFunctionCall","src":"28665:24:54"}],"functionName":{"name":"iszero","nativeSrc":"28658:6:54","nodeType":"YulIdentifier","src":"28658:6:54"},"nativeSrc":"28658:32:54","nodeType":"YulFunctionCall","src":"28658:32:54"},"nativeSrc":"28655:58:54","nodeType":"YulIf","src":"28655:58:54"}]},"name":"checked_mul_t_uint128","nativeSrc":"28445:274:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28476:1:54","nodeType":"YulTypedName","src":"28476:1:54","type":""},{"name":"y","nativeSrc":"28479:1:54","nodeType":"YulTypedName","src":"28479:1:54","type":""}],"returnVariables":[{"name":"product","nativeSrc":"28485:7:54","nodeType":"YulTypedName","src":"28485:7:54","type":""}],"src":"28445:274:54"},{"body":{"nativeSrc":"28770:170:54","nodeType":"YulBlock","src":"28770:170:54","statements":[{"nativeSrc":"28780:44:54","nodeType":"YulVariableDeclaration","src":"28780:44:54","value":{"kind":"number","nativeSrc":"28790:34:54","nodeType":"YulLiteral","src":"28790:34:54","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"28784:2:54","nodeType":"YulTypedName","src":"28784:2:54","type":""}]},{"nativeSrc":"28833:21:54","nodeType":"YulVariableDeclaration","src":"28833:21:54","value":{"arguments":[{"name":"y","nativeSrc":"28848:1:54","nodeType":"YulIdentifier","src":"28848:1:54"},{"name":"_1","nativeSrc":"28851:2:54","nodeType":"YulIdentifier","src":"28851:2:54"}],"functionName":{"name":"and","nativeSrc":"28844:3:54","nodeType":"YulIdentifier","src":"28844:3:54"},"nativeSrc":"28844:10:54","nodeType":"YulFunctionCall","src":"28844:10:54"},"variables":[{"name":"y_1","nativeSrc":"28837:3:54","nodeType":"YulTypedName","src":"28837:3:54","type":""}]},{"body":{"nativeSrc":"28878:22:54","nodeType":"YulBlock","src":"28878:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"28880:16:54","nodeType":"YulIdentifier","src":"28880:16:54"},"nativeSrc":"28880:18:54","nodeType":"YulFunctionCall","src":"28880:18:54"},"nativeSrc":"28880:18:54","nodeType":"YulExpressionStatement","src":"28880:18:54"}]},"condition":{"arguments":[{"name":"y_1","nativeSrc":"28873:3:54","nodeType":"YulIdentifier","src":"28873:3:54"}],"functionName":{"name":"iszero","nativeSrc":"28866:6:54","nodeType":"YulIdentifier","src":"28866:6:54"},"nativeSrc":"28866:11:54","nodeType":"YulFunctionCall","src":"28866:11:54"},"nativeSrc":"28863:37:54","nodeType":"YulIf","src":"28863:37:54"},{"nativeSrc":"28909:25:54","nodeType":"YulAssignment","src":"28909:25:54","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"28922:1:54","nodeType":"YulIdentifier","src":"28922:1:54"},{"name":"_1","nativeSrc":"28925:2:54","nodeType":"YulIdentifier","src":"28925:2:54"}],"functionName":{"name":"and","nativeSrc":"28918:3:54","nodeType":"YulIdentifier","src":"28918:3:54"},"nativeSrc":"28918:10:54","nodeType":"YulFunctionCall","src":"28918:10:54"},{"name":"y_1","nativeSrc":"28930:3:54","nodeType":"YulIdentifier","src":"28930:3:54"}],"functionName":{"name":"div","nativeSrc":"28914:3:54","nodeType":"YulIdentifier","src":"28914:3:54"},"nativeSrc":"28914:20:54","nodeType":"YulFunctionCall","src":"28914:20:54"},"variableNames":[{"name":"r","nativeSrc":"28909:1:54","nodeType":"YulIdentifier","src":"28909:1:54"}]}]},"name":"checked_div_t_uint128","nativeSrc":"28724:216:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28755:1:54","nodeType":"YulTypedName","src":"28755:1:54","type":""},{"name":"y","nativeSrc":"28758:1:54","nodeType":"YulTypedName","src":"28758:1:54","type":""}],"returnVariables":[{"name":"r","nativeSrc":"28764:1:54","nodeType":"YulTypedName","src":"28764:1:54","type":""}],"src":"28724:216:54"},{"body":{"nativeSrc":"29172:355:54","nodeType":"YulBlock","src":"29172:355:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29189:9:54","nodeType":"YulIdentifier","src":"29189:9:54"},{"arguments":[{"name":"value0","nativeSrc":"29204:6:54","nodeType":"YulIdentifier","src":"29204:6:54"},{"kind":"number","nativeSrc":"29212:6:54","nodeType":"YulLiteral","src":"29212:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"29200:3:54","nodeType":"YulIdentifier","src":"29200:3:54"},"nativeSrc":"29200:19:54","nodeType":"YulFunctionCall","src":"29200:19:54"}],"functionName":{"name":"mstore","nativeSrc":"29182:6:54","nodeType":"YulIdentifier","src":"29182:6:54"},"nativeSrc":"29182:38:54","nodeType":"YulFunctionCall","src":"29182:38:54"},"nativeSrc":"29182:38:54","nodeType":"YulExpressionStatement","src":"29182:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29240:9:54","nodeType":"YulIdentifier","src":"29240:9:54"},{"kind":"number","nativeSrc":"29251:2:54","nodeType":"YulLiteral","src":"29251:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29236:3:54","nodeType":"YulIdentifier","src":"29236:3:54"},"nativeSrc":"29236:18:54","nodeType":"YulFunctionCall","src":"29236:18:54"},{"kind":"number","nativeSrc":"29256:3:54","nodeType":"YulLiteral","src":"29256:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"29229:6:54","nodeType":"YulIdentifier","src":"29229:6:54"},"nativeSrc":"29229:31:54","nodeType":"YulFunctionCall","src":"29229:31:54"},"nativeSrc":"29229:31:54","nodeType":"YulExpressionStatement","src":"29229:31:54"},{"nativeSrc":"29269:76:54","nodeType":"YulVariableDeclaration","src":"29269:76:54","value":{"arguments":[{"name":"value1","nativeSrc":"29309:6:54","nodeType":"YulIdentifier","src":"29309:6:54"},{"name":"value2","nativeSrc":"29317:6:54","nodeType":"YulIdentifier","src":"29317:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"29329:9:54","nodeType":"YulIdentifier","src":"29329:9:54"},{"kind":"number","nativeSrc":"29340:3:54","nodeType":"YulLiteral","src":"29340:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29325:3:54","nodeType":"YulIdentifier","src":"29325:3:54"},"nativeSrc":"29325:19:54","nodeType":"YulFunctionCall","src":"29325:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"29283:25:54","nodeType":"YulIdentifier","src":"29283:25:54"},"nativeSrc":"29283:62:54","nodeType":"YulFunctionCall","src":"29283:62:54"},"variables":[{"name":"tail_1","nativeSrc":"29273:6:54","nodeType":"YulTypedName","src":"29273:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29365:9:54","nodeType":"YulIdentifier","src":"29365:9:54"},{"kind":"number","nativeSrc":"29376:2:54","nodeType":"YulLiteral","src":"29376:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29361:3:54","nodeType":"YulIdentifier","src":"29361:3:54"},"nativeSrc":"29361:18:54","nodeType":"YulFunctionCall","src":"29361:18:54"},{"arguments":[{"name":"value3","nativeSrc":"29385:6:54","nodeType":"YulIdentifier","src":"29385:6:54"},{"kind":"number","nativeSrc":"29393:18:54","nodeType":"YulLiteral","src":"29393:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"29381:3:54","nodeType":"YulIdentifier","src":"29381:3:54"},"nativeSrc":"29381:31:54","nodeType":"YulFunctionCall","src":"29381:31:54"}],"functionName":{"name":"mstore","nativeSrc":"29354:6:54","nodeType":"YulIdentifier","src":"29354:6:54"},"nativeSrc":"29354:59:54","nodeType":"YulFunctionCall","src":"29354:59:54"},"nativeSrc":"29354:59:54","nodeType":"YulExpressionStatement","src":"29354:59:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29433:9:54","nodeType":"YulIdentifier","src":"29433:9:54"},{"kind":"number","nativeSrc":"29444:2:54","nodeType":"YulLiteral","src":"29444:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29429:3:54","nodeType":"YulIdentifier","src":"29429:3:54"},"nativeSrc":"29429:18:54","nodeType":"YulFunctionCall","src":"29429:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"29453:6:54","nodeType":"YulIdentifier","src":"29453:6:54"},{"name":"headStart","nativeSrc":"29461:9:54","nodeType":"YulIdentifier","src":"29461:9:54"}],"functionName":{"name":"sub","nativeSrc":"29449:3:54","nodeType":"YulIdentifier","src":"29449:3:54"},"nativeSrc":"29449:22:54","nodeType":"YulFunctionCall","src":"29449:22:54"}],"functionName":{"name":"mstore","nativeSrc":"29422:6:54","nodeType":"YulIdentifier","src":"29422:6:54"},"nativeSrc":"29422:50:54","nodeType":"YulFunctionCall","src":"29422:50:54"},"nativeSrc":"29422:50:54","nodeType":"YulExpressionStatement","src":"29422:50:54"},{"nativeSrc":"29481:40:54","nodeType":"YulAssignment","src":"29481:40:54","value":{"arguments":[{"name":"value4","nativeSrc":"29506:6:54","nodeType":"YulIdentifier","src":"29506:6:54"},{"name":"tail_1","nativeSrc":"29514:6:54","nodeType":"YulIdentifier","src":"29514:6:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"29489:16:54","nodeType":"YulIdentifier","src":"29489:16:54"},"nativeSrc":"29489:32:54","nodeType":"YulFunctionCall","src":"29489:32:54"},"variableNames":[{"name":"tail","nativeSrc":"29481:4:54","nodeType":"YulIdentifier","src":"29481:4:54"}]}]},"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":"28945:582:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29109:9:54","nodeType":"YulTypedName","src":"29109:9:54","type":""},{"name":"value4","nativeSrc":"29120:6:54","nodeType":"YulTypedName","src":"29120:6:54","type":""},{"name":"value3","nativeSrc":"29128:6:54","nodeType":"YulTypedName","src":"29128:6:54","type":""},{"name":"value2","nativeSrc":"29136:6:54","nodeType":"YulTypedName","src":"29136:6:54","type":""},{"name":"value1","nativeSrc":"29144:6:54","nodeType":"YulTypedName","src":"29144:6:54","type":""},{"name":"value0","nativeSrc":"29152:6:54","nodeType":"YulTypedName","src":"29152:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29163:4:54","nodeType":"YulTypedName","src":"29163:4:54","type":""}],"src":"28945:582:54"},{"body":{"nativeSrc":"29564:152:54","nodeType":"YulBlock","src":"29564:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29581:1:54","nodeType":"YulLiteral","src":"29581:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"29584:77:54","nodeType":"YulLiteral","src":"29584:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"29574:6:54","nodeType":"YulIdentifier","src":"29574:6:54"},"nativeSrc":"29574:88:54","nodeType":"YulFunctionCall","src":"29574:88:54"},"nativeSrc":"29574:88:54","nodeType":"YulExpressionStatement","src":"29574:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29678:1:54","nodeType":"YulLiteral","src":"29678:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"29681:4:54","nodeType":"YulLiteral","src":"29681:4:54","type":"","value":"0x31"}],"functionName":{"name":"mstore","nativeSrc":"29671:6:54","nodeType":"YulIdentifier","src":"29671:6:54"},"nativeSrc":"29671:15:54","nodeType":"YulFunctionCall","src":"29671:15:54"},"nativeSrc":"29671:15:54","nodeType":"YulExpressionStatement","src":"29671:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29702:1:54","nodeType":"YulLiteral","src":"29702:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"29705:4:54","nodeType":"YulLiteral","src":"29705:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"29695:6:54","nodeType":"YulIdentifier","src":"29695:6:54"},"nativeSrc":"29695:15:54","nodeType":"YulFunctionCall","src":"29695:15:54"},"nativeSrc":"29695:15:54","nodeType":"YulExpressionStatement","src":"29695:15:54"}]},"name":"panic_error_0x31","nativeSrc":"29532:184:54","nodeType":"YulFunctionDefinition","src":"29532:184:54"},{"body":{"nativeSrc":"29895:171:54","nodeType":"YulBlock","src":"29895:171:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29912:9:54","nodeType":"YulIdentifier","src":"29912:9:54"},{"kind":"number","nativeSrc":"29923:2:54","nodeType":"YulLiteral","src":"29923:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29905:6:54","nodeType":"YulIdentifier","src":"29905:6:54"},"nativeSrc":"29905:21:54","nodeType":"YulFunctionCall","src":"29905:21:54"},"nativeSrc":"29905:21:54","nodeType":"YulExpressionStatement","src":"29905:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29946:9:54","nodeType":"YulIdentifier","src":"29946:9:54"},{"kind":"number","nativeSrc":"29957:2:54","nodeType":"YulLiteral","src":"29957:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29942:3:54","nodeType":"YulIdentifier","src":"29942:3:54"},"nativeSrc":"29942:18:54","nodeType":"YulFunctionCall","src":"29942:18:54"},{"kind":"number","nativeSrc":"29962:2:54","nodeType":"YulLiteral","src":"29962:2:54","type":"","value":"21"}],"functionName":{"name":"mstore","nativeSrc":"29935:6:54","nodeType":"YulIdentifier","src":"29935:6:54"},"nativeSrc":"29935:30:54","nodeType":"YulFunctionCall","src":"29935:30:54"},"nativeSrc":"29935:30:54","nodeType":"YulExpressionStatement","src":"29935:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29985:9:54","nodeType":"YulIdentifier","src":"29985:9:54"},{"kind":"number","nativeSrc":"29996:2:54","nodeType":"YulLiteral","src":"29996:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29981:3:54","nodeType":"YulIdentifier","src":"29981:3:54"},"nativeSrc":"29981:18:54","nodeType":"YulFunctionCall","src":"29981:18:54"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nativeSrc":"30001:23:54","nodeType":"YulLiteral","src":"30001:23:54","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nativeSrc":"29974:6:54","nodeType":"YulIdentifier","src":"29974:6:54"},"nativeSrc":"29974:51:54","nodeType":"YulFunctionCall","src":"29974:51:54"},"nativeSrc":"29974:51:54","nodeType":"YulExpressionStatement","src":"29974:51:54"},{"nativeSrc":"30034:26:54","nodeType":"YulAssignment","src":"30034:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"30046:9:54","nodeType":"YulIdentifier","src":"30046:9:54"},{"kind":"number","nativeSrc":"30057:2:54","nodeType":"YulLiteral","src":"30057:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30042:3:54","nodeType":"YulIdentifier","src":"30042:3:54"},"nativeSrc":"30042:18:54","nodeType":"YulFunctionCall","src":"30042:18:54"},"variableNames":[{"name":"tail","nativeSrc":"30034:4:54","nodeType":"YulIdentifier","src":"30034:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29721:345:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29872:9:54","nodeType":"YulTypedName","src":"29872:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29886:4:54","nodeType":"YulTypedName","src":"29886:4:54","type":""}],"src":"29721:345:54"},{"body":{"nativeSrc":"30245:168:54","nodeType":"YulBlock","src":"30245:168:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30262:9:54","nodeType":"YulIdentifier","src":"30262:9:54"},{"kind":"number","nativeSrc":"30273:2:54","nodeType":"YulLiteral","src":"30273:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30255:6:54","nodeType":"YulIdentifier","src":"30255:6:54"},"nativeSrc":"30255:21:54","nodeType":"YulFunctionCall","src":"30255:21:54"},"nativeSrc":"30255:21:54","nodeType":"YulExpressionStatement","src":"30255:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30296:9:54","nodeType":"YulIdentifier","src":"30296:9:54"},{"kind":"number","nativeSrc":"30307:2:54","nodeType":"YulLiteral","src":"30307:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30292:3:54","nodeType":"YulIdentifier","src":"30292:3:54"},"nativeSrc":"30292:18:54","nodeType":"YulFunctionCall","src":"30292:18:54"},{"kind":"number","nativeSrc":"30312:2:54","nodeType":"YulLiteral","src":"30312:2:54","type":"","value":"18"}],"functionName":{"name":"mstore","nativeSrc":"30285:6:54","nodeType":"YulIdentifier","src":"30285:6:54"},"nativeSrc":"30285:30:54","nodeType":"YulFunctionCall","src":"30285:30:54"},"nativeSrc":"30285:30:54","nodeType":"YulExpressionStatement","src":"30285:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30335:9:54","nodeType":"YulIdentifier","src":"30335:9:54"},{"kind":"number","nativeSrc":"30346:2:54","nodeType":"YulLiteral","src":"30346:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30331:3:54","nodeType":"YulIdentifier","src":"30331:3:54"},"nativeSrc":"30331:18:54","nodeType":"YulFunctionCall","src":"30331:18:54"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nativeSrc":"30351:20:54","nodeType":"YulLiteral","src":"30351:20:54","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nativeSrc":"30324:6:54","nodeType":"YulIdentifier","src":"30324:6:54"},"nativeSrc":"30324:48:54","nodeType":"YulFunctionCall","src":"30324:48:54"},"nativeSrc":"30324:48:54","nodeType":"YulExpressionStatement","src":"30324:48:54"},{"nativeSrc":"30381:26:54","nodeType":"YulAssignment","src":"30381:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"30393:9:54","nodeType":"YulIdentifier","src":"30393:9:54"},{"kind":"number","nativeSrc":"30404:2:54","nodeType":"YulLiteral","src":"30404:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30389:3:54","nodeType":"YulIdentifier","src":"30389:3:54"},"nativeSrc":"30389:18:54","nodeType":"YulFunctionCall","src":"30389:18:54"},"variableNames":[{"name":"tail","nativeSrc":"30381:4:54","nodeType":"YulIdentifier","src":"30381:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30071:342:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30222:9:54","nodeType":"YulTypedName","src":"30222:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30236:4:54","nodeType":"YulTypedName","src":"30236:4:54","type":""}],"src":"30071:342:54"},{"body":{"nativeSrc":"30592:161:54","nodeType":"YulBlock","src":"30592:161:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30609:9:54","nodeType":"YulIdentifier","src":"30609:9:54"},{"kind":"number","nativeSrc":"30620:2:54","nodeType":"YulLiteral","src":"30620:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30602:6:54","nodeType":"YulIdentifier","src":"30602:6:54"},"nativeSrc":"30602:21:54","nodeType":"YulFunctionCall","src":"30602:21:54"},"nativeSrc":"30602:21:54","nodeType":"YulExpressionStatement","src":"30602:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30643:9:54","nodeType":"YulIdentifier","src":"30643:9:54"},{"kind":"number","nativeSrc":"30654:2:54","nodeType":"YulLiteral","src":"30654:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30639:3:54","nodeType":"YulIdentifier","src":"30639:3:54"},"nativeSrc":"30639:18:54","nodeType":"YulFunctionCall","src":"30639:18:54"},{"kind":"number","nativeSrc":"30659:2:54","nodeType":"YulLiteral","src":"30659:2:54","type":"","value":"11"}],"functionName":{"name":"mstore","nativeSrc":"30632:6:54","nodeType":"YulIdentifier","src":"30632:6:54"},"nativeSrc":"30632:30:54","nodeType":"YulFunctionCall","src":"30632:30:54"},"nativeSrc":"30632:30:54","nodeType":"YulExpressionStatement","src":"30632:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30682:9:54","nodeType":"YulIdentifier","src":"30682:9:54"},{"kind":"number","nativeSrc":"30693:2:54","nodeType":"YulLiteral","src":"30693:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30678:3:54","nodeType":"YulIdentifier","src":"30678:3:54"},"nativeSrc":"30678:18:54","nodeType":"YulFunctionCall","src":"30678:18:54"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nativeSrc":"30698:13:54","nodeType":"YulLiteral","src":"30698:13:54","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nativeSrc":"30671:6:54","nodeType":"YulIdentifier","src":"30671:6:54"},"nativeSrc":"30671:41:54","nodeType":"YulFunctionCall","src":"30671:41:54"},"nativeSrc":"30671:41:54","nodeType":"YulExpressionStatement","src":"30671:41:54"},{"nativeSrc":"30721:26:54","nodeType":"YulAssignment","src":"30721:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"30733:9:54","nodeType":"YulIdentifier","src":"30733:9:54"},{"kind":"number","nativeSrc":"30744:2:54","nodeType":"YulLiteral","src":"30744:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30729:3:54","nodeType":"YulIdentifier","src":"30729:3:54"},"nativeSrc":"30729:18:54","nodeType":"YulFunctionCall","src":"30729:18:54"},"variableNames":[{"name":"tail","nativeSrc":"30721:4:54","nodeType":"YulIdentifier","src":"30721:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30418:335:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30569:9:54","nodeType":"YulTypedName","src":"30569:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30583:4:54","nodeType":"YulTypedName","src":"30583:4:54","type":""}],"src":"30418:335:54"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0xffffffffffffffff\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(memPtr, _1), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\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    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_bytes(value2, add(headStart, 96))\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_decode_uint128(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_uint128(headStart)\n        value1 := abi_decode_uint128(add(headStart, 32))\n        value2 := abi_decode_uint128(add(headStart, 64))\n        value3 := abi_decode_uint64(add(headStart, 96))\n        value4 := abi_decode_uint64(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let value_1 := calldataload(add(headStart, 96))\n        if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n        value3 := value_1\n        let offset_1 := calldataload(add(headStart, 128))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\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    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\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    {\n        tail := add(headStart, 160)\n        let _1 := 0xffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        let _2 := 0xffffffffffffffff\n        mstore(add(headStart, 96), and(value3, _2))\n        mstore(add(headStart, 128), and(value4, _2))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\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    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value3 := value\n        value4 := abi_decode_uint64(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n        let offset_1 := calldataload(add(headStart, 160))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value6 := value6_1\n        value7 := value7_1\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    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let value := calldataload(add(headStart, 96))\n        validator_revert_address(value)\n        value4 := value\n        let value_1 := calldataload(add(headStart, 128))\n        validator_revert_address(value_1)\n        value5 := value_1\n        let offset_2 := calldataload(add(headStart, 160))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value6 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value2 := value\n        value3 := calldataload(add(headStart, 96))\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\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        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"LayerZeroMock: no stored payload\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"LayerZeroMock: invalid caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"LayerZeroMock: invalid payload\")\n        tail := add(headStart, 96)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value4, value5, tail_1)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 96), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"LayerZeroMock: no receive reentr\")\n        mstore(add(headStart, 96), \"ancy\")\n        tail := add(headStart, 128)\n    }\n    function increment_t_uint64(value) -> ret\n    {\n        let _1 := 0xffffffffffffffff\n        let value_1 := and(value, _1)\n        if eq(value_1, _1) { panic_error_0x11() }\n        ret := add(value_1, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"LayerZeroMock: wrong nonce\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_bytes_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\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    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage(slot, src)\n    {\n        if eq(slot, src) { leave }\n        let newLen := extract_byte_array_length(sload(src))\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let src_1 := array_dataslot_bytes_storage(src)\n            let dstPtr := array_dataslot_bytes_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, sload(add(src_1, srcOffset)))\n                let _1 := 1\n                dstPtr := add(dstPtr, _1)\n                srcOffset := add(srcOffset, _1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := sload(add(src_1, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\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    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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 192))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), and(value4, 0xffffffffffffffff))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes_calldata(value5, value6, tail_1)\n        mstore(add(headStart, 160), sub(tail_2, headStart))\n        tail := abi_encode_bytes(value7, tail_2)\n    }\n    function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"LayerZeroMock: no send reentranc\")\n        mstore(add(headStart, 96), \"y\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"LayerZeroMock: incorrect remote \")\n        mstore(add(headStart, 96), \"address size\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"LayerZeroMock: destination Layer\")\n        mstore(add(headStart, 96), \"Zero Endpoint not found\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"LayerZeroMock: not enough native\")\n        mstore(add(headStart, 96), \" for fees\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    { end := pos }\n    function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"LayerZeroMock: failed to refund\")\n        tail := add(headStart, 96)\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        let _1 := 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n        mstore(pos, and(shl(96, value0), _1))\n        mstore(add(pos, 20), and(shl(96, value1), _1))\n        end := add(pos, 40)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value5, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"LayerZeroMock: dstNativeAmt too \")\n        mstore(add(headStart, 96), \"large \")\n        tail := add(headStart, 128)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function checked_mul_t_uint128(x, y) -> product\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffff\n        let product_raw := mul(and(x, _1), and(y, _1))\n        product := and(product_raw, _1)\n        if iszero(eq(product, product_raw)) { panic_error_0x11() }\n    }\n    function checked_div_t_uint128(x, y) -> r\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffff\n        let y_1 := and(y, _1)\n        if iszero(y_1) { panic_error_0x12() }\n        r := div(and(x, _1), y_1)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value4, tail_1)\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Invalid adapterParams\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"Unsupported txType\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"Gas too low\")\n        tail := add(headStart, 96)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061026a5760003560e01c80639924d33b11610153578063ca066b35116100cb578063e97a448a1161007f578063f9cd3ceb11610064578063f9cd3ceb146109b2578063fbba623b146109c8578063fdc07c70146109e857600080fd5b8063e97a448a14610964578063f5ecbdbc1461098057600080fd5b8063d23104f1116100b0578063d23104f11461090a578063da1a7c9a146102c4578063db14f3051461094957600080fd5b8063ca066b35146108c8578063cbed8b9c146108e957600080fd5b8063b6d9ef6011610122578063c2fa481311610107578063c2fa481314610852578063c580310014610872578063c81b383a1461088557600080fd5b8063b6d9ef60146107c4578063c08f15a1146107e457600080fd5b80639924d33b1461070f5780639c729da1146104e3578063aaff5f1614610762578063b20864991461078257600080fd5b80633408e470116101e657806371ba2fd6116101b55780637a1457481161019a5780637a145748146105e25780637f6df8e61461061b578063907c5e7e1461064957600080fd5b806371ba2fd6146104e357806376a386dc1461052857600080fd5b80633408e4701461046a5780633e0dd83e1461048357806340a7bb10146104a357806342d65a8d146104c357600080fd5b806310ddb1371161023d578063240de27711610222578063240de27714610357578063272bd3841461037d5780632c365e251461039f57600080fd5b806310ddb137146102a457806312a9ee6b1461032857600080fd5b806307d3277f1461026f57806307e0db17146102a4578063096568f6146102c45780630eaf6ea6146102f8575b600080fd5b34801561027b57600080fd5b5060045460055461028a919082565b604080519283526020830191909152015b60405180910390f35b3480156102b057600080fd5b506102c26102bf3660046127d7565b50565b005b3480156102d057600080fd5b506102e56102df366004612814565b50600190565b60405161ffff909116815260200161029b565b34801561030457600080fd5b5061031861031336600461287a565b610a08565b604051901515815260200161029b565b34801561033457600080fd5b506103486103433660046129a7565b610a4e565b60405161029b93929190612a62565b34801561036357600080fd5b506102c2610372366004612aaa565b600491909155600555565b34801561038957600080fd5b50610392610b6a565b60405161029b9190612acc565b3480156103ab57600080fd5b506102c26103ba366004612b17565b6fffffffffffffffffffffffffffffffff94851670010000000000000000000000000000000094861685021760025560038054939095167fffffffffffffffff0000000000000000000000000000000000000000000000009093169290921767ffffffffffffffff9182169093029290921777ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602179055565b34801561047657600080fd5b5060015461ffff166102e5565b34801561048f57600080fd5b506001546103189062010000900460ff1681565b3480156104af57600080fd5b5061028a6104be366004612b7c565b610bf8565b3480156104cf57600080fd5b506102c26104de36600461287a565b610cf7565b3480156104ef57600080fd5b506105036104fe366004612814565b503090565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161029b565b34801561053457600080fd5b506105a7610543366004612c1d565b600a60209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff82169168010000000000000000900473ffffffffffffffffffffffffffffffffffffffff169083565b6040805167ffffffffffffffff909416845273ffffffffffffffffffffffffffffffffffffffff90921660208401529082015260600161029b565b3480156105ee57600080fd5b506106026105fd366004612c6b565b610e68565b60405167ffffffffffffffff909116815260200161029b565b34801561062757600080fd5b5061063b61063636600461287a565b610eae565b60405190815260200161029b565b34801561065557600080fd5b506002546003546106c1916fffffffffffffffffffffffffffffffff80821692700100000000000000000000000000000000928390048216929181169167ffffffffffffffff908204811691780100000000000000000000000000000000000000000000000090041685565b604080516fffffffffffffffffffffffffffffffff96871681529486166020860152929094169183019190915267ffffffffffffffff9081166060830152909116608082015260a00161029b565b34801561071b57600080fd5b5061060261072a366004612c1d565b6008602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b34801561076e57600080fd5b506102c261077d366004612ca2565b610eea565b34801561078e57600080fd5b5061060261079d366004612c6b565b600960209081526000928352604080842090915290825290205467ffffffffffffffff1681565b3480156107d057600080fd5b506102c26107df366004612d23565b600655565b3480156107f057600080fd5b506102c26107ff366004612d3c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b34801561085e57600080fd5b506102c261086d366004612d5a565b611152565b6102c2610880366004612e0a565b611aab565b34801561089157600080fd5b506105036108a0366004612814565b60006020819052908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b3480156108d457600080fd5b50610318600c54610100900460ff1660021490565b3480156108f557600080fd5b506102c2610904366004612ed2565b50505050565b34801561091657600080fd5b506102c2600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1662010000179055565b34801561095557600080fd5b506001546102e59061ffff1681565b34801561097057600080fd5b50610318600c5460ff1660021490565b34801561098c57600080fd5b5061039261099b366004612f3a565b604080516020810190915260008152949350505050565b3480156109be57600080fd5b5061063b60065481565b3480156109d457600080fd5b506102c26109e3366004612f87565b612127565b3480156109f457600080fd5b50610602610a0336600461287a565b612137565b61ffff83166000908152600a60205260408082209051829190610a2e9086908690612fc4565b9081526040519081900360200190206001015415159150505b9392505050565b600b6020908152600084815260409020835180850183018051928152908301928501929092209152805482908110610a8557600080fd5b60009182526020909120600290910201805460018201805473ffffffffffffffffffffffffffffffffffffffff831696507401000000000000000000000000000000000000000090920467ffffffffffffffff169450919250610ae790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1390612fd4565b8015610b605780601f10610b3557610100808354040283529160200191610b60565b820191906000526020600020905b815481529060010190602001808311610b4357829003601f168201915b5050505050905083565b60078054610b7790612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba390612fd4565b8015610bf05780601f10610bc557610100808354040283529160200191610bf0565b820191906000526020600020905b815481529060010190602001808311610bd357829003601f168201915b505050505081565b600080600080845111610c955760078054610c1290612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3e90612fd4565b8015610c8b5780601f10610c6057610100808354040283529160200191610c8b565b820191906000526020600020905b815481529060010190602001808311610c6e57829003601f168201915b5050505050610c97565b835b90506000610caa8960018a8a518661217d565b90506000610cbb8783600654612398565b905086610ccb5780945084610cd0565b809350835b50600654610cde8387613056565b610ce89190613056565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610d1a9085908590612fc4565b9081526040519081900360200190206001810154909150610d825760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f616460448201526064015b60405180910390fd5b805468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff163314610df45760405162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c65720000006044820152606401610d79565b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610e55908690869086906130b2565b60405180910390a16109048484846123d5565b61ffff8216600090815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205467ffffffffffffffff165b92915050565b61ffff83166000908152600b60205260408082209051610ed19085908590612fc4565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610f0d9087908790612fc4565b9081526040519081900360200190206001810154909150610f705760405162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f61646044820152606401610d79565b805467ffffffffffffffff1682148015610fa4575080600101548383604051610f9a929190612fc4565b6040518091039020145b610ff05760405162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f616400006044820152606401610d79565b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff881681526008602052604080822090516801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16926110649089908990612fc4565b908152604051908190036020018120547e1d356700000000000000000000000000000000000000000000000000000000825267ffffffffffffffff16915073ffffffffffffffffffffffffffffffffffffffff831690621d3567906110d7908b908b908b9087908c908c906004016130d0565b600060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d888888848660405161114095949392919061311e565b60405180910390a15050505050505050565b600c54610100900460ff166001146111d15760405162461bcd60e51b8152602060048201526024808201527f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e747260448201527f616e6379000000000000000000000000000000000000000000000000000000006064820152608401610d79565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff88166000908152600a60205260408082209051611220908a908a90612fc4565b90815260200160405180910390209050600860008a61ffff1661ffff168152602001908152602001600020888860405161125b929190612fc4565b90815260405190819003602001902080546000906112829067ffffffffffffffff16613174565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905567ffffffffffffffff168567ffffffffffffffff16146113095760405162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e63650000000000006044820152606401610d79565b6001810154156116d15761ffff89166000908152600b60205260408082209051611336908b908b90612fc4565b90815260200160405180910390209050600060405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018867ffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561162b578154600181810184556000848152602090819020845160029094020180549185015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff90941693909317178255604083015183929182019061145c90826131ec565b50505060005b825461147090600190613306565b8110156115795782818154811061148957611489613319565b9060005260206000209060020201838260016114a59190613056565b815481106114b5576114b5613319565b600091825260209091208254600290920201805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117825583547fffffffff0000000000000000000000000000000000000000000000000000000090931617740100000000000000000000000000000000000000009283900467ffffffffffffffff1690920291909117815560018082019061156e90840182613348565b505050600101611462565b50808260008154811061158e5761158e613319565b6000918252602091829020835160029092020180549284015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931673ffffffffffffffffffffffffffffffffffffffff909216919091179190911781556040820151600182019061162290826131ec565b509050506116ca565b8154600181810184556000848152602090819020845160029094020180549185015167ffffffffffffffff1674010000000000000000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff9094169390931717825560408301518392918201906116c690826131ec565b5050505b5050611a74565b60015462010000900460ff16156118545760405180606001604052808484905067ffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001848460405161172c929190612fc4565b604080519182900390912090915261ffff8b166000908152600a602052819020905161175b908b908b90612fc4565b908152604080519182900360209081018320845181548684015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090911667ffffffffffffffff909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db9161181f918c918c918c918c918c918b918b919061347d565b60405180910390a1600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff169055611a74565b6040517e1d356700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690621d35679086906118b0908d908d908d908c908b908b906004016130d0565b600060405180830381600088803b1580156118ca57600080fd5b5087f1935050505080156118dc575060015b611a74573d80801561190a576040519150601f19603f3d011682016040523d82523d6000602084013e61190f565b606091505b5060405180606001604052808585905067ffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001858560405161195a929190612fc4565b604080519182900390912090915261ffff8c166000908152600a6020528190209051611989908c908c90612fc4565b908152604080519182900360209081018320845181549286015173ffffffffffffffffffffffffffffffffffffffff1668010000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090931667ffffffffffffffff909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db90611a42908c908c908c908c908c908b908b908a9061347d565b60405180910390a150600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690555b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905550505050505050565b600c5460ff16600114611b265760405162461bcd60e51b815260206004820152602160248201527f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6360448201527f79000000000000000000000000000000000000000000000000000000000000006064820152608401610d79565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790558551602814611bc85760405162461bcd60e51b815260206004820152602c60248201527f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652060448201527f616464726573732073697a6500000000000000000000000000000000000000006064820152608401610d79565b601486015173ffffffffffffffffffffffffffffffffffffffff8082166000908152602081905260409020541680611c685760405162461bcd60e51b815260206004820152603760248201527f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657260448201527f5a65726f20456e64706f696e74206e6f7420666f756e640000000000000000006064820152608401610d79565b600080845111611d025760078054611c7f90612fd4565b80601f0160208091040260200160405190810160405280929190818152602001828054611cab90612fd4565b8015611cf85780601f10611ccd57610100808354040283529160200191611cf8565b820191906000526020600020905b815481529060010190602001808311611cdb57829003601f168201915b5050505050611d04565b835b90506000611d628b338b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505073ffffffffffffffffffffffffffffffffffffffff8a16151586610bf8565b50905080341015611ddb5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766560448201527f20666f72206665657300000000000000000000000000000000000000000000006064820152608401610d79565b61ffff8b166000908152600960209081526040808320338452909152812080548290611e109067ffffffffffffffff16613174565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055905060008234611e459190613306565b90508015611eff5760008973ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611ea7576040519150601f19603f3d011682016040523d82523d6000602084013e611eac565b606091505b5050905080611efd5760405162461bcd60e51b815260206004820152601f60248201527f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64006044820152606401610d79565b505b6000806000611f0d8761262e565b91955093509150508115611fc95760008173ffffffffffffffffffffffffffffffffffffffff168360405160006040518083038185875af1925050503d8060008114611f75576040519150601f19603f3d011682016040523d82523d6000602084013e611f7a565b606091505b5050905080611fc757604051839073ffffffffffffffffffffffffffffffffffffffff8416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b821660208401528b901b166034820152600090604801604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090508973ffffffffffffffffffffffffffffffffffffffff1663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b81526004016120b6969594939291906134fd565b600060405180830381600087803b1580156120d057600080fd5b505af11580156120e4573d6000803e3d6000fd5b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050505050505050565b600761213382826131ec565b5050565b61ffff8316600090815260086020526040808220905161215a9085908590612fc4565b9081526040519081900360200190205467ffffffffffffffff1690509392505050565b60008060008061218c8561262e565b5092509250925060008361ffff16600203612238576003546fffffffffffffffffffffffffffffffff1682111561222b5760405162461bcd60e51b815260206004820152602660248201527f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2060448201527f6c617267652000000000000000000000000000000000000000000000000000006064820152608401610d79565b6122358282613056565b90505b600354600090612267908590700100000000000000000000000000000000900467ffffffffffffffff16613056565b60025461229a919070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661355e565b90506122a68183613056565b6002549092506000906402540be400906122d2906fffffffffffffffffffffffffffffffff168561355e565b6122dc91906135a4565b6002546003549192506000916402540be400916fffffffffffffffffffffffffffffffff8082169261234b92780100000000000000000000000000000000000000000000000090910467ffffffffffffffff1691700100000000000000000000000000000000909104166135b8565b61235591906135b8565b61235f91906135ec565b6fffffffffffffffffffffffffffffffff16905061237d818b61355e565b6123879083613056565b9d9c50505050505050505050505050565b600083156123a95750600454610a47565b600554612710906123ba8486613056565b6123c4919061355e565b6123ce91906135a4565b9050610a47565b61ffff83166000908152600b602052604080822090516123f89085908590612fc4565b908152602001604051809103902090505b805415610904578054600090829061242390600190613306565b8154811061243357612433613319565b6000918252602091829020604080516060810182526002909302909101805473ffffffffffffffffffffffffffffffffffffffff8116845267ffffffffffffffff740100000000000000000000000000000000000000009091041693830193909352600183018054929392918401916124ab90612fd4565b80601f01602080910402602001604051908101604052809291908181526020018280546124d790612fd4565b80156125245780601f106124f957610100808354040283529160200191612524565b820191906000526020600020905b81548152906001019060200180831161250757829003601f168201915b5050505050815250509050806000015173ffffffffffffffffffffffffffffffffffffffff16621d3567868686856020015186604001516040518663ffffffff1660e01b815260040161257b95949392919061361b565b600060405180830381600087803b15801561259557600080fd5b505af11580156125a9573d6000803e3d6000fd5b50505050818054806125bd576125bd613667565b60008281526020812060027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019283020180547fffffffff00000000000000000000000000000000000000000000000000000000168155906126246001830182612772565b5050905550612409565b600080600080845160221480612645575060428551115b6126915760405162461bcd60e51b815260206004820152601560248201527f496e76616c69642061646170746572506172616d7300000000000000000000006044820152606401610d79565b60028501519350602285015192508361ffff16600114806126b657508361ffff166002145b6127025760405162461bcd60e51b815260206004820152601260248201527f556e737570706f727465642074785479706500000000000000000000000000006044820152606401610d79565b600083116127525760405162461bcd60e51b815260206004820152600b60248201527f47617320746f6f206c6f770000000000000000000000000000000000000000006044820152606401610d79565b8361ffff1660020361276b575050604283015160568401515b9193509193565b50805461277e90612fd4565b6000825580601f1061278e575050565b601f0160209004906000526020600020908101906102bf91905b808211156127bc57600081556001016127a8565b5090565b803561ffff811681146127d257600080fd5b919050565b6000602082840312156127e957600080fd5b610a47826127c0565b73ffffffffffffffffffffffffffffffffffffffff811681146102bf57600080fd5b60006020828403121561282657600080fd5b8135610a47816127f2565b60008083601f84011261284357600080fd5b50813567ffffffffffffffff81111561285b57600080fd5b60208301915083602082850101111561287357600080fd5b9250929050565b60008060006040848603121561288f57600080fd5b612898846127c0565b9250602084013567ffffffffffffffff8111156128b457600080fd5b6128c086828701612831565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261290d57600080fd5b813567ffffffffffffffff80821115612928576129286128cd565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561296e5761296e6128cd565b8160405283815286602085880101111561298757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156129bc57600080fd5b6129c5846127c0565b9250602084013567ffffffffffffffff8111156129e157600080fd5b6129ed868287016128fc565b925050604084013590509250925092565b6000815180845260005b81811015612a2457602081850181015186830182015201612a08565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff83166020820152606060408201526000612aa160608301846129fe565b95945050505050565b60008060408385031215612abd57600080fd5b50508035926020909101359150565b602081526000610a4760208301846129fe565b80356fffffffffffffffffffffffffffffffff811681146127d257600080fd5b803567ffffffffffffffff811681146127d257600080fd5b600080600080600060a08688031215612b2f57600080fd5b612b3886612adf565b9450612b4660208701612adf565b9350612b5460408701612adf565b9250612b6260608701612aff565b9150612b7060808701612aff565b90509295509295909350565b600080600080600060a08688031215612b9457600080fd5b612b9d866127c0565b94506020860135612bad816127f2565b9350604086013567ffffffffffffffff80821115612bca57600080fd5b612bd689838a016128fc565b9450606088013591508115158214612bed57600080fd5b90925060808701359080821115612c0357600080fd5b50612c10888289016128fc565b9150509295509295909350565b60008060408385031215612c3057600080fd5b612c39836127c0565b9150602083013567ffffffffffffffff811115612c5557600080fd5b612c61858286016128fc565b9150509250929050565b60008060408385031215612c7e57600080fd5b612c87836127c0565b91506020830135612c97816127f2565b809150509250929050565b600080600080600060608688031215612cba57600080fd5b612cc3866127c0565b9450602086013567ffffffffffffffff80821115612ce057600080fd5b612cec89838a01612831565b90965094506040880135915080821115612d0557600080fd5b50612d1288828901612831565b969995985093965092949392505050565b600060208284031215612d3557600080fd5b5035919050565b60008060408385031215612d4f57600080fd5b8235612c87816127f2565b60008060008060008060008060c0898b031215612d7657600080fd5b612d7f896127c0565b9750602089013567ffffffffffffffff80821115612d9c57600080fd5b612da88c838d01612831565b909950975060408b01359150612dbd826127f2565b819650612dcc60608c01612aff565b955060808b0135945060a08b0135915080821115612de957600080fd5b50612df68b828c01612831565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a031215612e2557600080fd5b612e2e886127c0565b9650602088013567ffffffffffffffff80821115612e4b57600080fd5b612e578b838c016128fc565b975060408a0135915080821115612e6d57600080fd5b612e798b838c01612831565b909750955060608a01359150612e8e826127f2565b909350608089013590612ea0826127f2565b90925060a08901359080821115612eb657600080fd5b50612ec38a828b016128fc565b91505092959891949750929550565b60008060008060808587031215612ee857600080fd5b612ef1856127c0565b9350612eff602086016127c0565b925060408501359150606085013567ffffffffffffffff811115612f2257600080fd5b612f2e878288016128fc565b91505092959194509250565b60008060008060808587031215612f5057600080fd5b612f59856127c0565b9350612f67602086016127c0565b92506040850135612f77816127f2565b9396929550929360600135925050565b600060208284031215612f9957600080fd5b813567ffffffffffffffff811115612fb057600080fd5b612fbc848285016128fc565b949350505050565b8183823760009101908152919050565b600181811c90821680612fe857607f821691505b602082108103613021577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ea857610ea8613027565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b61ffff84168152604060208201526000612aa1604083018486613069565b61ffff871681526080602082015260006130ee608083018789613069565b67ffffffffffffffff861660408401528281036060840152613111818587613069565b9998505050505050505050565b61ffff8616815260806020820152600061313c608083018688613069565b905067ffffffffffffffff8416604083015273ffffffffffffffffffffffffffffffffffffffff831660608301529695505050505050565b600067ffffffffffffffff80831681810361319157613191613027565b6001019392505050565b601f8211156131e7576000816000526020600020601f850160051c810160208610156131c45750805b601f850160051c820191505b818110156131e3578281556001016131d0565b5050505b505050565b815167ffffffffffffffff811115613206576132066128cd565b61321a816132148454612fd4565b8461319b565b602080601f83116001811461326d57600084156132375750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556131e3565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156132ba5788860151825594840194600190910190840161329b565b50858210156132f657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610ea857610ea8613027565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b818103613353575050565b61335d8254612fd4565b67ffffffffffffffff811115613375576133756128cd565b613383816132148454612fd4565b6000601f8211600181146133d5576000831561339f5750848201545b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455613476565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690600086815260209020845b8381101561342d578286015482556001958601959091019060200161340d565b508583101561346957818501547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b61ffff8916815260c06020820152600061349b60c08301898b613069565b73ffffffffffffffffffffffffffffffffffffffff8816604084015267ffffffffffffffff8716606084015282810360808401526134da818688613069565b905082810360a08401526134ee81856129fe565b9b9a5050505050505050505050565b61ffff8716815260c06020820152600061351a60c08301886129fe565b73ffffffffffffffffffffffffffffffffffffffff8716604084015267ffffffffffffffff8616606084015284608084015282810360a084015261311181856129fe565b8082028115828204841417610ea857610ea8613027565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826135b3576135b3613575565b500490565b6fffffffffffffffffffffffffffffffff8181168382160280821691908281146135e4576135e4613027565b505092915050565b60006fffffffffffffffffffffffffffffffff8084168061360f5761360f613575565b92169190910492915050565b61ffff86168152608060208201526000613639608083018688613069565b67ffffffffffffffff85166040840152828103606084015261365b81856129fe565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220b0ab817030528fa2895fd39b9e3a47c1921762205d7e5ede8791dca3421d241b64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x26A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x153 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xF9CD3CEB GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x9B2 JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x9C8 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x9E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE97A448A EQ PUSH2 0x964 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x980 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD23104F1 GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x90A JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x949 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x8C8 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x8E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0x122 JUMPI DUP1 PUSH4 0xC2FA4813 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x852 JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x872 JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x7C4 JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x70F JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x762 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x7A145748 GT PUSH2 0x19A JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x61B JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x23D JUMPI DUP1 PUSH4 0x240DE277 GT PUSH2 0x222 JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x357 JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x37D JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x39F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x2C4 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x2F8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x28A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x2BF CALLDATASIZE PUSH1 0x4 PUSH2 0x27D7 JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0x2DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x304 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xA08 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x29A7 JUMP JUMPDEST PUSH2 0xA4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x372 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AAA JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x392 PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x2ACC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x3BA CALLDATASIZE PUSH1 0x4 PUSH2 0x2B17 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND PUSH17 0x100000000000000000000000000000000 SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH8 0xFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH24 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x2E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x318 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x4BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2B7C JUMP JUMPDEST PUSH2 0xBF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x503 PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A7 PUSH2 0x543 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D 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 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP2 PUSH9 0x10000000000000000 SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND DUP5 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x5FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6B JUMP JUMPDEST PUSH2 0xE68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x627 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63B PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0xEAE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x6C1 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH17 0x100000000000000000000000000000000 SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP7 DUP8 AND DUP2 MSTORE SWAP5 DUP7 AND PUSH1 0x20 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP5 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x29B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x72A CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D 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 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x76E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x77D CALLDATASIZE PUSH1 0x4 PUSH2 0x2CA2 JUMP JUMPDEST PUSH2 0xEEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0x79D CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6B 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 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x7DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2D23 JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x7FF CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x86D CALLDATASIZE PUSH1 0x4 PUSH2 0x2D5A JUMP JUMPDEST PUSH2 0x1152 JUMP JUMPDEST PUSH2 0x2C2 PUSH2 0x880 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E0A JUMP JUMPDEST PUSH2 0x1AAB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x503 PUSH2 0x8A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2814 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x904 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x955 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2E5 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x318 PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x392 PUSH2 0x99B CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x63B PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH2 0x9E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F87 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x602 PUSH2 0xA03 CALLDATASIZE PUSH1 0x4 PUSH2 0x287A JUMP JUMPDEST PUSH2 0x2137 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 0xA2E SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2FC4 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 0xA85 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP7 POP PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP3 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0xAE7 SWAP1 PUSH2 0x2FD4 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 0xB13 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB60 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB35 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB60 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 0xB43 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 0xB77 SWAP1 PUSH2 0x2FD4 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 0xBA3 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBF0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBC5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBF0 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 0xBD3 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 0xC95 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xC12 SWAP1 PUSH2 0x2FD4 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 0xC3E SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC8B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC60 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC8B 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 0xC6E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xC97 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCAA DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x217D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCBB DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x2398 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xCCB JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xCD0 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xCDE DUP4 DUP8 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x3056 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 0xD1A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 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 0xD82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xDF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xE55 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x30B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x904 DUP5 DUP5 DUP5 PUSH2 0x23D5 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF 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 0xED1 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 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 0xF0D SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2FC4 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 0xF70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 EQ DUP1 ISZERO PUSH2 0xFA4 JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xF9A SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xFF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 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 PUSH9 0x10000000000000000 SWAP1 SWAP4 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 PUSH2 0x1064 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH31 0x1D356700000000000000000000000000000000000000000000000000000000 DUP3 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0x10D7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1105 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 0x1140 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x311E 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 0x11D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E637900000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF 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 0x1220 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2FC4 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 0x125B SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1282 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3174 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE PUSH8 0xFFFFFFFFFFFFFFFF AND DUP6 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1309 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x16D1 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1336 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2FC4 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH8 0xFFFFFFFFFFFFFFFF 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 0x162B 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 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x145C SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x1470 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3306 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x1579 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1489 JUMPI PUSH2 0x1489 PUSH2 0x3319 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x14A5 SWAP2 SWAP1 PUSH2 0x3056 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x14B5 JUMPI PUSH2 0x14B5 PUSH2 0x3319 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND OR PUSH21 0x10000000000000000000000000000000000000000 SWAP3 DUP4 SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP3 ADD SWAP1 PUSH2 0x156E SWAP1 DUP5 ADD DUP3 PUSH2 0x3348 JUMP JUMPDEST POP POP POP PUSH1 0x1 ADD PUSH2 0x1462 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x158E JUMPI PUSH2 0x158E PUSH2 0x3319 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 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x1622 SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x16CA 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 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP3 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x16C6 SWAP1 DUP3 PUSH2 0x31EC JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x1A74 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1854 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x172C SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 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 0x175B SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2FC4 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH9 0x10000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND PUSH8 0xFFFFFFFFFFFFFFFF 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 0x181F SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND SWAP1 SSTORE PUSH2 0x1A74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH31 0x1D356700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x18B0 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x18DC JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1A74 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x190A 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 0x190F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x195A SWAP3 SWAP2 SWAP1 PUSH2 0x2FC4 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 0x1989 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2FC4 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH9 0x10000000000000000 MUL PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND PUSH8 0xFFFFFFFFFFFFFFFF 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 0x1A42 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x347D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF 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 0x1B26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1BC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616464726573732073697A650000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x1C68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x1D02 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1C7F SWAP1 PUSH2 0x2FD4 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 0x1CAB SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CF8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CCD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CF8 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 0x1CDB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x1D04 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D62 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND ISZERO ISZERO DUP7 PUSH2 0xBF8 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x1DDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20666F7220666565730000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 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 0x1E10 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3174 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x1E45 SWAP2 SWAP1 PUSH2 0x3306 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1EFF JUMPI PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1EA7 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 0x1EAC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1EFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1F0D DUP8 PUSH2 0x262E JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F75 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 0x1F7A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1FC7 JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 CALLER PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x48 ADD 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 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 0x20B6 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 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 0x7 PUSH2 0x2133 DUP3 DUP3 PUSH2 0x31EC 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 0x215A SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x218C DUP6 PUSH2 0x262E JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x2238 JUMPI PUSH1 0x3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 GT ISZERO PUSH2 0x222B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C61726765200000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x2235 DUP3 DUP3 PUSH2 0x3056 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2267 SWAP1 DUP6 SWAP1 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x229A SWAP2 SWAP1 PUSH17 0x100000000000000000000000000000000 SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x355E JUMP JUMPDEST SWAP1 POP PUSH2 0x22A6 DUP2 DUP4 PUSH2 0x3056 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x22D2 SWAP1 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x22DC SWAP2 SWAP1 PUSH2 0x35A4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH2 0x234B SWAP3 PUSH25 0x1000000000000000000000000000000000000000000000000 SWAP1 SWAP2 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP2 PUSH17 0x100000000000000000000000000000000 SWAP1 SWAP2 DIV AND PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x2355 SWAP2 SWAP1 PUSH2 0x35B8 JUMP JUMPDEST PUSH2 0x235F SWAP2 SWAP1 PUSH2 0x35EC JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x237D DUP2 DUP12 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x2387 SWAP1 DUP4 PUSH2 0x3056 JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x23A9 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x23BA DUP5 DUP7 PUSH2 0x3056 JUMP JUMPDEST PUSH2 0x23C4 SWAP2 SWAP1 PUSH2 0x355E JUMP JUMPDEST PUSH2 0x23CE SWAP2 SWAP1 PUSH2 0x35A4 JUMP JUMPDEST SWAP1 POP PUSH2 0xA47 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x23F8 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2FC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x904 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x2423 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3306 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2433 JUMPI PUSH2 0x2433 PUSH2 0x3319 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP5 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF PUSH21 0x10000000000000000000000000000000000000000 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 0x24AB SWAP1 PUSH2 0x2FD4 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 0x24D7 SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2524 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x24F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2524 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 0x2507 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 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 0x257B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x361B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x25BD JUMPI PUSH2 0x25BD PUSH2 0x3667 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 SSTORE SWAP1 PUSH2 0x2624 PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x2772 JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x2409 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x2645 JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x2691 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C69642061646170746572506172616D730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 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 0x26B6 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x2702 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E737570706F72746564207478547970650000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x2752 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x47617320746F6F206C6F77000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD79 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x276B 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 0x277E SWAP1 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x278E 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 0x2BF SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27BC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x27A8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA47 DUP3 PUSH2 0x27C0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA47 DUP2 PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2843 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x285B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2873 JUMPI 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 0x288F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2898 DUP5 PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C0 DUP7 DUP3 DUP8 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x290D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2928 JUMPI PUSH2 0x2928 PUSH2 0x28CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x296E JUMPI PUSH2 0x296E PUSH2 0x28CD JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x2987 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x29BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29C5 DUP5 PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29ED DUP7 DUP3 DUP8 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2A24 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x2A08 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AA1 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x29FE JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2ABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA47 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x29FE JUMP JUMPDEST DUP1 CALLDATALOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x27D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B38 DUP7 PUSH2 0x2ADF JUMP JUMPDEST SWAP5 POP PUSH2 0x2B46 PUSH1 0x20 DUP8 ADD PUSH2 0x2ADF JUMP JUMPDEST SWAP4 POP PUSH2 0x2B54 PUSH1 0x40 DUP8 ADD PUSH2 0x2ADF JUMP JUMPDEST SWAP3 POP PUSH2 0x2B62 PUSH1 0x60 DUP8 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP2 POP PUSH2 0x2B70 PUSH1 0x80 DUP8 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B9D DUP7 PUSH2 0x27C0 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2BAD DUP2 PUSH2 0x27F2 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2BCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BD6 DUP10 DUP4 DUP11 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP2 ISZERO ISZERO DUP3 EQ PUSH2 0x2BED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C10 DUP9 DUP3 DUP10 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C39 DUP4 PUSH2 0x27C0 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C61 DUP6 DUP3 DUP7 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C87 DUP4 PUSH2 0x27C0 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2C97 DUP2 PUSH2 0x27F2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2CBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CC3 DUP7 PUSH2 0x27C0 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CEC DUP10 DUP4 DUP11 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D12 DUP9 DUP3 DUP10 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C87 DUP2 PUSH2 0x27F2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2D76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D7F DUP10 PUSH2 0x27C0 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DA8 DUP13 DUP4 DUP14 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2DBD DUP3 PUSH2 0x27F2 JUMP JUMPDEST DUP2 SWAP7 POP PUSH2 0x2DCC PUSH1 0x60 DUP13 ADD PUSH2 0x2AFF JUMP JUMPDEST SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DF6 DUP12 DUP3 DUP13 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2E25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2E DUP9 PUSH2 0x27C0 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2E4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E57 DUP12 DUP4 DUP13 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2E6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E79 DUP12 DUP4 DUP13 ADD PUSH2 0x2831 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2E8E DUP3 PUSH2 0x27F2 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP1 PUSH2 0x2EA0 DUP3 PUSH2 0x27F2 JUMP JUMPDEST SWAP1 SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2EB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC3 DUP11 DUP3 DUP12 ADD PUSH2 0x28FC 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 0x2EE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF1 DUP6 PUSH2 0x27C0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EFF PUSH1 0x20 DUP7 ADD PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2F22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F2E DUP8 DUP3 DUP9 ADD PUSH2 0x28FC 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 0x2F50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F59 DUP6 PUSH2 0x27C0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2F67 PUSH1 0x20 DUP7 ADD PUSH2 0x27C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x2F77 DUP2 PUSH2 0x27F2 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FBC DUP5 DUP3 DUP6 ADD PUSH2 0x28FC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2FE8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3021 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2AA1 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x3069 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x30EE PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x3069 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3111 DUP2 DUP6 DUP8 PUSH2 0x3069 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x313C PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 SUB PUSH2 0x3191 JUMPI PUSH2 0x3191 PUSH2 0x3027 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x31E7 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x31C4 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x31E3 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x31D0 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3206 JUMPI PUSH2 0x3206 PUSH2 0x28CD JUMP JUMPDEST PUSH2 0x321A DUP2 PUSH2 0x3214 DUP5 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST DUP5 PUSH2 0x319B JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x326D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3237 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x31E3 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x32BA JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x329B JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x32F6 JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB PUSH2 0x3353 JUMPI POP POP JUMP JUMPDEST PUSH2 0x335D DUP3 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3375 JUMPI PUSH2 0x3375 PUSH2 0x28CD JUMP JUMPDEST PUSH2 0x3383 DUP2 PUSH2 0x3214 DUP5 SLOAD PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x33D5 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x339F JUMPI POP DUP5 DUP3 ADD SLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x3476 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP5 AND SWAP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x342D JUMPI DUP3 DUP7 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x340D JUMP JUMPDEST POP DUP6 DUP4 LT ISZERO PUSH2 0x3469 JUMPI DUP2 DUP6 ADD SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP PUSH1 0x1 DUP4 PUSH1 0x1 SHL ADD DUP5 SSTORE JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x349B PUSH1 0xC0 DUP4 ADD DUP10 DUP12 PUSH2 0x3069 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x34DA DUP2 DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x34EE DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x351A PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x29FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x60 DUP5 ADD MSTORE DUP5 PUSH1 0x80 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x3111 DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xEA8 JUMPI PUSH2 0xEA8 PUSH2 0x3027 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x35B3 JUMPI PUSH2 0x35B3 PUSH2 0x3575 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 DUP2 AND DUP4 DUP3 AND MUL DUP1 DUP3 AND SWAP2 SWAP1 DUP3 DUP2 EQ PUSH2 0x35E4 JUMPI PUSH2 0x35E4 PUSH2 0x3027 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND DUP1 PUSH2 0x360F JUMPI PUSH2 0x360F PUSH2 0x3575 JUMP JUMPDEST SWAP3 AND SWAP2 SWAP1 SWAP2 DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3639 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3069 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x365B DUP2 DUP6 PUSH2 0x29FE JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xAB DUP2 PUSH17 0x30528FA2895FD39B9E3A47C1921762205D PUSH31 0x5EDE8791DCA3421D241B64736F6C6343000819003300000000000000000000 ","sourceMap":"812:15736:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1139:42;;;;;;;;;;-1:-1:-1;1139:42:8;;;;;;;;;;;;;188:25:54;;;244:2;229:18;;222:34;;;;161:18;1139:42:8;;;;;;;;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;;;;1205:6:54;1193:19;;;1175:38;;1163:2;1148:18;11394:133:8;1031:188:54;10434:228:8;;;;;;;;;;-1:-1:-1;10434:228:8;;;;;:::i;:::-;;:::i;:::-;;;2227:14:54;;2220:22;2202:41;;2190:2;2175:18;10434:228:8;2062:187:54;1841:73:8;;;;;;;;;;-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;:::-;13537:47;;;;13594:53;;;;;;;13537:16;13594:53;13657:32;:51;;;;;;13718:35;;;;;;;;;;;;;;;;;;;13763:41;;;;;;;;;;;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;;;;7039:42:54;7027:55;;;7009:74;;6997:2;6982:18;10792:121:8;6863:226:54;1723:71:8;;;;;;;;;;-1:-1:-1;1723:71:8;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7721:18:54;7709:31;;;7691:50;;7789:42;7777:55;;;7772:2;7757:18;;7750:83;7849:18;;;7842:34;7679:2;7664:18;1723:71:8;7491:391:54;8578:164:8;;;;;;;;;;-1:-1:-1;8578:164:8;;;;;:::i;:::-;;:::i;:::-;;;8385:18:54;8373:31;;;8355:50;;8343:2;8328:18;8578:164:8;8211:200:54;12867:173:8;;;;;;;;;;-1:-1:-1;12867:173:8;;;;;:::i;:::-;;:::i;:::-;;;8562:25:54;;;8550:2;8535:18;12867:173:8;8416:177:54;1093:40:8;;;;;;;;;;-1:-1:-1;1093:40:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8863:34:54;8924:15;;;8906:34;;8976:15;;;8971:2;8956:18;;8949:43;9028:15;;;;9008:18;;;9001:43;;;;9063:18;9117:15;;;9112:2;9097:18;;9090:43;9170:15;;;9164:3;9149:19;;9142:44;8840:3;8825:19;1093:40:8;8598:594:54;1340:63:8;;;;;;;;;;-1:-1:-1;1340:63:8;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9605:823;;;;;;;;;;-1:-1:-1;9605:823:8;;;;;:::i;:::-;;:::i;1484:66::-;;;;;;;;;;-1:-1:-1;1484:66:8;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13985:87;;;;;;;;;;-1:-1:-1;13985:87:8;;;;;:::i;:::-;14043:9;:22;13985:87;13189:138;;;;;;;;;;-1:-1:-1;13189:138:8;;;;;:::i;:::-;13277:26;;;;:16;:26;;;;;;;;;;:43;;;;;;;;;;;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;:::-;;;;;;;;;;;;;;;;;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;;;;;;;;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;:::-;11372:9;;;;;;;;;-1:-1:-1;11372:9:8;;11178:210;;;;;;;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;;;:::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;;15398:2:54;12265:73:8;;;15380:21:54;;;15417:18;;;15410:30;15476:34;15456:18;;;15449:62;15528:18;;12265:73:8;;;;;;;;;12356:13;;;;;:27;:13;12373:10;12356:27;12348:69;;;;-1:-1:-1;;;12348:69:8;;15759:2:54;12348:69:8;;;15741:21:54;15798:2;15778:18;;;15771:30;15837:31;15817:18;;;15810:59;15886:18;;12348:69:8;15557:353:54;12348:69:8;12463:20;;12493:26;;;;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;;;;;;;;:36;;;;;;;;;;;;;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;;15398:2:54;9822:73:8;;;15380:21:54;;;15417:18;;;15410:30;15476:34;15456:18;;;15449:62;15528:18;;9822:73:8;15196:356:54;9822:73:8;9932:16;;;;9913:35;;:76;;;;;9975:2;:14;;;9962:8;;9952:19;;;;;;;:::i;:::-;;;;;;;;:37;9913:76;9905:119;;;;-1:-1:-1;;;9905:119:8;;16778:2:54;9905:119:8;;;16760:21:54;16817:2;16797:18;;;16790:30;16856:32;16836:18;;;16829:60;16906:18;;9905:119:8;16576:354:54;9905:119:8;10056:13;;10144:26;;;;;-1:-1:-1;;10180:14:8;;:27;;;10233:25;;;;;10056:13;10233:25;;;;;;:32;;10056:13;;;;;;;10233:32;;10259:5;;;;10233:32;:::i;:::-;;;;;;;;;;;;;;;10276:77;;;10233:32;;;-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;;18298:2:54;2810:87:8;;;18280:21:54;18337:2;18317:18;;;18310:30;18376:34;18356:18;;;18349:62;18447:6;18427:18;;;18420:34;18471:19;;2810:87:8;18096:400:54;2810:87:8;2907:22;:33;;;;;;;;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;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;6468:44;;:6;:44;;;6460:83;;;::::0;-1:-1:-1;;;6460:83:8;;18917:2:54;6460:83:8::1;::::0;::::1;18899:21:54::0;18956:2;18936:18;;;18929:30;18995:28;18975:18;;;18968:56;19041:18;;6460:83:8::1;18715:350:54::0;6460:83:8::1;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;6833:44;;;;;;6860:6;6833:44;;;;;;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;;::::0;::::1;::::0;;;;::::1;::::0;;::::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;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;::::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;;::::0;::::1;::::0;;;;::::1;::::0;;::::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;;::::0;::::1;::::0;;;;::::1;::::0;;::::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;;7601:72;;;;;;7640:11;7601:72;;;;;;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;;::::0;::::1;::::0;;;;::::1;::::0;;::::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;::::0;;7531:872:::1;;;7912:95;::::0;;;;:41:::1;::::0;::::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;;8093:72;;;;;;8132:11;8093:72;;;;;;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;;::::0;::::1;::::0;;;;::::1;::::0;;::::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;::::0;;7908:485:::1;-1:-1:-1::0;;2961:22:8;:37;;;;;;;;-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;;24408:2:54;2580:81:8;;;24390:21:54;24447:2;24427:18;;;24420:30;24486:34;24466:18;;;24459:62;24557:3;24537:18;;;24530:31;24578:19;;2580:81:8;24206:397:54;2580:81:8;2671:19;:30;;;;945:1;2671:30;;;4288:12;;4304:2:::1;4288:18;4280:75;;;::::0;-1:-1:-1;;;4280:75:8;;24810:2:54;4280:75:8::1;::::0;::::1;24792:21:54::0;24849:2;24829:18;;;24822:30;24888:34;24868:18;;;24861:62;24959:14;24939:18;;;24932:42;24991:19;;4280:75:8::1;24608:408:54::0;4280:75:8::1;4469:2;4458:14:::0;::::1;4452:21:::0;4514:25:::1;::::0;;::::1;4393:15;4514:25:::0;;;::::1;::::0;;;;;;;::::1;::::0;4549:92:::1;;;::::0;-1:-1:-1;;;4549:92:8;;25223:2:54;4549:92:8::1;::::0;::::1;25205:21:54::0;25262:2;25242:18;;;25235:30;25301:34;25281:18;;;25274:62;25372:25;25352:18;;;25345:53;25415:19;;4549:92:8::1;25021:419:54::0;4549:92:8::1;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;::::0;::::1;4890:13:::0;4809:12:::1;:95::i;:::-;4788:116;;;4935:9;4922;:22;;4914:76;;;::::0;-1:-1:-1;;;4914:76:8;;25647:2:54;4914:76:8::1;::::0;::::1;25629:21:54::0;25686:2;25666:18;;;25659:30;25725:34;25705:18;;;25698:62;25796:11;25776:18;;;25769:39;25825:19;;4914:76:8::1;25445:405:54::0;4914:76:8::1;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;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;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;:19;;5225:6;5198:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5179:57;;;5258:7;5250:51;;;::::0;-1:-1:-1;;;5250:51:8;;26267:2:54;5250:51:8::1;::::0;::::1;26249:21:54::0;26306:2;26286:18;;;26279:30;26345:33;26325:18;;;26318:61;26396:18;;5250:51:8::1;26065:355:54::0;5250:51:8::1;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;:18;;5667:12;5641:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5622:62;;;5703:7;5698:100;;5735:48;::::0;5770:12;;5735:48:::1;::::0;::::1;::::0;::::1;::::0;;;::::1;5698:100;5608:200;5586:222;5846:37;::::0;26592:66:54;5863:10:8::1;26687:2:54::0;26683:15;;;26679:24;;5846:37:8::1;::::0;::::1;26667::54::0;26738:15;;;26734:24;26720:12;;;26713:46;5818:25:8::1;::::0;26775:12:54;;5846:37:8::1;;;;;;;;;;;;5818:65;;5923:20;5946:8;;5923:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5979:10;5964:41;;;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;;;;903:1;2722:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4008:2066:8: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;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;;;;:48;-1:-1:-1;15694:48:8;15686:99;;;;-1:-1:-1;;;15686:99:8;;27753:2:54;15686:99:8;;;27735:21:54;27792:2;27772:18;;;27765:30;27831:34;27811:18;;;27804:62;27902:8;27882:18;;;27875:36;27928:19;;15686:99:8;27551:402:54;15686:99:8;15799:32;15819:12;15799:32;;:::i;:::-;;;15655:187;15978:24;;15919:19;;15978:35;;16005:8;;15978:24;;;;;:35;:::i;:::-;15941:16;:33;:73;;;:33;;;;;: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;;16223:30;;16024:34;16204:49;:::i;:::-;16203:60;;;;:::i;:::-;16442:16;:30;16412:27;;16186:77;;-1:-1:-1;16355:17:8;;16476:6;;16442:30;;;;;16376:63;;16412:27;;;;;;;16376:33;;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16375:107;;;;:::i;:::-;16355:127;;;-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;;;;;;;;;;;;;;;;;;;;;;;;;;;14710:21;14679:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14764:7;:18;;;14745:48;;;14794:11;14807:5;;14814:7;:13;;;14829:7;:15;;;14745:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14859:4;:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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;;29923:2:54;2292:91:7;;;29905:21:54;29962:2;29942:18;;;29935:30;30001:23;29981:18;;;29974:51;30042:18;;2292:91:7;29721:345:54;2292:91:7;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;;30273:2:54;2526:57:7;;;30255:21:54;30312:2;30292:18;;;30285:30;30351:20;30331:18;;;30324:48;30389:18;;2526:57:7;30071:342:54;2526:57:7;2609:1;2601:5;:9;2593:33;;;;-1:-1:-1;;;2593:33:7;;30620:2:54;2593:33:7;;;30602:21:54;30659:2;30639:18;;;30632:30;30698:13;30678:18;;;30671:41;30729:18;;2593:33:7;30418:335:54;2593:33:7;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;267:159:54:-;334:20;;394:6;383:18;;373:29;;363:57;;416:1;413;406:12;363:57;267:159;;;:::o;431:184::-;489:6;542:2;530:9;521:7;517:23;513:32;510:52;;;558:1;555;548:12;510:52;581:28;599:9;581:28;:::i;620:154::-;706:42;699:5;695:54;688:5;685:65;675:93;;764:1;761;754:12;779:247;838:6;891:2;879:9;870:7;866:23;862:32;859:52;;;907:1;904;897:12;859:52;946:9;933:23;965:31;990:5;965:31;:::i;1224:347::-;1275:8;1285:6;1339:3;1332:4;1324:6;1320:17;1316:27;1306:55;;1357:1;1354;1347:12;1306:55;-1:-1:-1;1380:20:54;;1423:18;1412:30;;1409:50;;;1455:1;1452;1445:12;1409:50;1492:4;1484:6;1480:17;1468:29;;1544:3;1537:4;1528:6;1520;1516:19;1512:30;1509:39;1506:59;;;1561:1;1558;1551:12;1506:59;1224:347;;;;;:::o;1576:481::-;1654:6;1662;1670;1723:2;1711:9;1702:7;1698:23;1694:32;1691:52;;;1739:1;1736;1729:12;1691:52;1762:28;1780:9;1762:28;:::i;:::-;1752:38;;1841:2;1830:9;1826:18;1813:32;1868:18;1860:6;1857:30;1854:50;;;1900:1;1897;1890:12;1854:50;1939:58;1989:7;1980:6;1969:9;1965:22;1939:58;:::i;:::-;1576:481;;2016:8;;-1:-1:-1;1913:84:54;;-1:-1:-1;;;;1576:481:54:o;2254:184::-;2306:77;2303:1;2296:88;2403:4;2400:1;2393:15;2427:4;2424:1;2417:15;2443:777;2485:5;2538:3;2531:4;2523:6;2519:17;2515:27;2505:55;;2556:1;2553;2546:12;2505:55;2592:6;2579:20;2618:18;2655:2;2651;2648:10;2645:36;;;2661:18;;:::i;:::-;2795:2;2789:9;2857:4;2849:13;;2700:66;2845:22;;;2869:2;2841:31;2837:40;2825:53;;;2893:18;;;2913:22;;;2890:46;2887:72;;;2939:18;;:::i;:::-;2979:10;2975:2;2968:22;3014:2;3006:6;2999:18;3060:3;3053:4;3048:2;3040:6;3036:15;3032:26;3029:35;3026:55;;;3077:1;3074;3067:12;3026:55;3141:2;3134:4;3126:6;3122:17;3115:4;3107:6;3103:17;3090:54;3188:1;3181:4;3176:2;3168:6;3164:15;3160:26;3153:37;3208:6;3199:15;;;;;;2443:777;;;;:::o;3225:460::-;3310:6;3318;3326;3379:2;3367:9;3358:7;3354:23;3350:32;3347:52;;;3395:1;3392;3385:12;3347:52;3418:28;3436:9;3418:28;:::i;:::-;3408:38;;3497:2;3486:9;3482:18;3469:32;3524:18;3516:6;3513:30;3510:50;;;3556:1;3553;3546:12;3510:50;3579:49;3620:7;3611:6;3600:9;3596:22;3579:49;:::i;:::-;3569:59;;;3675:2;3664:9;3660:18;3647:32;3637:42;;3225:460;;;;;:::o;3690:481::-;3731:3;3769:5;3763:12;3796:6;3791:3;3784:19;3821:1;3831:162;3845:6;3842:1;3839:13;3831:162;;;3907:4;3963:13;;;3959:22;;3953:29;3935:11;;;3931:20;;3924:59;3860:12;3831:162;;;3835:3;4038:1;4031:4;4022:6;4017:3;4013:16;4009:27;4002:38;4160:4;4090:66;4085:2;4077:6;4073:15;4069:88;4064:3;4060:98;4056:109;4049:116;;;3690:481;;;;:::o;4176:431::-;4389:42;4381:6;4377:55;4366:9;4359:74;4481:18;4473:6;4469:31;4464:2;4453:9;4449:18;4442:59;4537:2;4532;4521:9;4517:18;4510:30;4340:4;4557:44;4597:2;4586:9;4582:18;4574:6;4557:44;:::i;:::-;4549:52;4176:431;-1:-1:-1;;;;;4176:431:54:o;4612:248::-;4680:6;4688;4741:2;4729:9;4720:7;4716:23;4712:32;4709:52;;;4757:1;4754;4747:12;4709:52;-1:-1:-1;;4780:23:54;;;4850:2;4835:18;;;4822:32;;-1:-1:-1;4612:248:54:o;4865:217::-;5012:2;5001:9;4994:21;4975:4;5032:44;5072:2;5061:9;5057:18;5049:6;5032:44;:::i;5087:188::-;5155:20;;5215:34;5204:46;;5194:57;;5184:85;;5265:1;5262;5255:12;5280:171;5347:20;;5407:18;5396:30;;5386:41;;5376:69;;5441:1;5438;5431:12;5456:480;5549:6;5557;5565;5573;5581;5634:3;5622:9;5613:7;5609:23;5605:33;5602:53;;;5651:1;5648;5641:12;5602:53;5674:29;5693:9;5674:29;:::i;:::-;5664:39;;5722:38;5756:2;5745:9;5741:18;5722:38;:::i;:::-;5712:48;;5779:38;5813:2;5802:9;5798:18;5779:38;:::i;:::-;5769:48;;5836:37;5869:2;5858:9;5854:18;5836:37;:::i;:::-;5826:47;;5892:38;5925:3;5914:9;5910:19;5892:38;:::i;:::-;5882:48;;5456:480;;;;;;;;:::o;5941:917::-;6050:6;6058;6066;6074;6082;6135:3;6123:9;6114:7;6110:23;6106:33;6103:53;;;6152:1;6149;6142:12;6103:53;6175:28;6193:9;6175:28;:::i;:::-;6165:38;;6253:2;6242:9;6238:18;6225:32;6266:31;6291:5;6266:31;:::i;:::-;6316:5;-1:-1:-1;6372:2:54;6357:18;;6344:32;6395:18;6425:14;;;6422:34;;;6452:1;6449;6442:12;6422:34;6475:49;6516:7;6507:6;6496:9;6492:22;6475:49;:::i;:::-;6465:59;;6576:2;6565:9;6561:18;6548:32;6533:47;;6625:7;6618:15;6611:23;6602:7;6599:36;6589:64;;6649:1;6646;6639:12;6589:64;6672:7;;-1:-1:-1;6732:3:54;6717:19;;6704:33;;6749:16;;;6746:36;;;6778:1;6775;6768:12;6746:36;;6801:51;6844:7;6833:8;6822:9;6818:24;6801:51;:::i;:::-;6791:61;;;5941:917;;;;;;;;:::o;7094:392::-;7170:6;7178;7231:2;7219:9;7210:7;7206:23;7202:32;7199:52;;;7247:1;7244;7237:12;7199:52;7270:28;7288:9;7270:28;:::i;:::-;7260:38;;7349:2;7338:9;7334:18;7321:32;7376:18;7368:6;7365:30;7362:50;;;7408:1;7405;7398:12;7362:50;7431:49;7472:7;7463:6;7452:9;7448:22;7431:49;:::i;:::-;7421:59;;;7094:392;;;;;:::o;7887:319::-;7954:6;7962;8015:2;8003:9;7994:7;7990:23;7986:32;7983:52;;;8031:1;8028;8021:12;7983:52;8054:28;8072:9;8054:28;:::i;:::-;8044:38;;8132:2;8121:9;8117:18;8104:32;8145:31;8170:5;8145:31;:::i;:::-;8195:5;8185:15;;;7887:319;;;;;:::o;9197:789::-;9295:6;9303;9311;9319;9327;9380:2;9368:9;9359:7;9355:23;9351:32;9348:52;;;9396:1;9393;9386:12;9348:52;9419:28;9437:9;9419:28;:::i;:::-;9409:38;;9498:2;9487:9;9483:18;9470:32;9521:18;9562:2;9554:6;9551:14;9548:34;;;9578:1;9575;9568:12;9548:34;9617:58;9667:7;9658:6;9647:9;9643:22;9617:58;:::i;:::-;9694:8;;-1:-1:-1;9591:84:54;-1:-1:-1;9782:2:54;9767:18;;9754:32;;-1:-1:-1;9798:16:54;;;9795:36;;;9827:1;9824;9817:12;9795:36;;9866:60;9918:7;9907:8;9896:9;9892:24;9866:60;:::i;:::-;9197:789;;;;-1:-1:-1;9197:789:54;;-1:-1:-1;9945:8:54;;9840:86;9197:789;-1:-1:-1;;;9197:789:54:o;9991:180::-;10050:6;10103:2;10091:9;10082:7;10078:23;10074:32;10071:52;;;10119:1;10116;10109:12;10071:52;-1:-1:-1;10142:23:54;;9991:180;-1:-1:-1;9991:180:54:o;10176:388::-;10244:6;10252;10305:2;10293:9;10284:7;10280:23;10276:32;10273:52;;;10321:1;10318;10311:12;10273:52;10360:9;10347:23;10379:31;10404:5;10379:31;:::i;10569:1067::-;10693:6;10701;10709;10717;10725;10733;10741;10749;10802:3;10790:9;10781:7;10777:23;10773:33;10770:53;;;10819:1;10816;10809:12;10770:53;10842:28;10860:9;10842:28;:::i;:::-;10832:38;;10921:2;10910:9;10906:18;10893:32;10944:18;10985:2;10977:6;10974:14;10971:34;;;11001:1;10998;10991:12;10971:34;11040:58;11090:7;11081:6;11070:9;11066:22;11040:58;:::i;:::-;11117:8;;-1:-1:-1;11014:84:54;-1:-1:-1;11202:2:54;11187:18;;11174:32;;-1:-1:-1;11215:31:54;11174:32;11215:31;:::i;:::-;11265:5;11255:15;;11289:37;11322:2;11311:9;11307:18;11289:37;:::i;:::-;11279:47;;11373:3;11362:9;11358:19;11345:33;11335:43;;11431:3;11420:9;11416:19;11403:33;11387:49;;11461:2;11451:8;11448:16;11445:36;;;11477:1;11474;11467:12;11445:36;;11516:60;11568:7;11557:8;11546:9;11542:24;11516:60;:::i;:::-;10569:1067;;;;-1:-1:-1;10569:1067:54;;-1:-1:-1;10569:1067:54;;;;;;11595:8;-1:-1:-1;;;10569:1067:54:o;11641:1185::-;11781:6;11789;11797;11805;11813;11821;11829;11882:3;11870:9;11861:7;11857:23;11853:33;11850:53;;;11899:1;11896;11889:12;11850:53;11922:28;11940:9;11922:28;:::i;:::-;11912:38;;12001:2;11990:9;11986:18;11973:32;12024:18;12065:2;12057:6;12054:14;12051:34;;;12081:1;12078;12071:12;12051:34;12104:49;12145:7;12136:6;12125:9;12121:22;12104:49;:::i;:::-;12094:59;;12206:2;12195:9;12191:18;12178:32;12162:48;;12235:2;12225:8;12222:16;12219:36;;;12251:1;12248;12241:12;12219:36;12290:60;12342:7;12331:8;12320:9;12316:24;12290:60;:::i;:::-;12369:8;;-1:-1:-1;12264:86:54;-1:-1:-1;12454:2:54;12439:18;;12426:32;;-1:-1:-1;12467:31:54;12426:32;12467:31;:::i;:::-;12517:5;;-1:-1:-1;12574:3:54;12559:19;;12546:33;;12588;12546;12588;:::i;:::-;12640:7;;-1:-1:-1;12700:3:54;12685:19;;12672:33;;12717:16;;;12714:36;;;12746:1;12743;12736:12;12714:36;;12769:51;12812:7;12801:8;12790:9;12786:24;12769:51;:::i;:::-;12759:61;;;11641:1185;;;;;;;;;;:::o;12831:533::-;12924:6;12932;12940;12948;13001:3;12989:9;12980:7;12976:23;12972:33;12969:53;;;13018:1;13015;13008:12;12969:53;13041:28;13059:9;13041:28;:::i;:::-;13031:38;;13088:37;13121:2;13110:9;13106:18;13088:37;:::i;:::-;13078:47;;13172:2;13161:9;13157:18;13144:32;13134:42;;13227:2;13216:9;13212:18;13199:32;13254:18;13246:6;13243:30;13240:50;;;13286:1;13283;13276:12;13240:50;13309:49;13350:7;13341:6;13330:9;13326:22;13309:49;:::i;:::-;13299:59;;;12831:533;;;;;;;:::o;13369:460::-;13453:6;13461;13469;13477;13530:3;13518:9;13509:7;13505:23;13501:33;13498:53;;;13547:1;13544;13537:12;13498:53;13570:28;13588:9;13570:28;:::i;:::-;13560:38;;13617:37;13650:2;13639:9;13635:18;13617:37;:::i;:::-;13607:47;;13704:2;13693:9;13689:18;13676:32;13717:31;13742:5;13717:31;:::i;:::-;13369:460;;;;-1:-1:-1;13767:5:54;;13819:2;13804:18;13791:32;;-1:-1:-1;;13369:460:54:o;13834:320::-;13902:6;13955:2;13943:9;13934:7;13930:23;13926:32;13923:52;;;13971:1;13968;13961:12;13923:52;14011:9;13998:23;14044:18;14036:6;14033:30;14030:50;;;14076:1;14073;14066:12;14030:50;14099:49;14140:7;14131:6;14120:9;14116:22;14099:49;:::i;:::-;14089:59;13834:320;-1:-1:-1;;;;13834:320:54:o;14159:271::-;14342:6;14334;14329:3;14316:33;14298:3;14368:16;;14393:13;;;14368:16;14159:271;-1:-1:-1;14159:271:54:o;14435:437::-;14514:1;14510:12;;;;14557;;;14578:61;;14632:4;14624:6;14620:17;14610:27;;14578:61;14685:2;14677:6;14674:14;14654:18;14651:38;14648:218;;14722:77;14719:1;14712:88;14823:4;14820:1;14813:15;14851:4;14848:1;14841:15;14648:218;;14435:437;;;:::o;14877:184::-;14929:77;14926:1;14919:88;15026:4;15023:1;15016:15;15050:4;15047:1;15040:15;15066:125;15131:9;;;15152:10;;;15149:36;;;15165:18;;:::i;15915:325::-;16003:6;15998:3;15991:19;16055:6;16048:5;16041:4;16036:3;16032:14;16019:43;;16107:1;16100:4;16091:6;16086:3;16082:16;16078:27;16071:38;15973:3;16229:4;16159:66;16154:2;16146:6;16142:15;16138:88;16133:3;16129:98;16125:109;16118:116;;15915:325;;;;:::o;16245:326::-;16440:6;16432;16428:19;16417:9;16410:38;16484:2;16479;16468:9;16464:18;16457:30;16391:4;16504:61;16561:2;16550:9;16546:18;16538:6;16530;16504:61;:::i;16935:609::-;17212:6;17204;17200:19;17189:9;17182:38;17256:3;17251:2;17240:9;17236:18;17229:31;17163:4;17283:62;17340:3;17329:9;17325:19;17317:6;17309;17283:62;:::i;:::-;17393:18;17385:6;17381:31;17376:2;17365:9;17361:18;17354:59;17461:9;17453:6;17449:22;17444:2;17433:9;17429:18;17422:50;17489:49;17531:6;17523;17515;17489:49;:::i;:::-;17481:57;16935:609;-1:-1:-1;;;;;;;;;16935:609:54:o;17549:542::-;17798:6;17790;17786:19;17775:9;17768:38;17842:3;17837:2;17826:9;17822:18;17815:31;17749:4;17863:62;17920:3;17909:9;17905:19;17897:6;17889;17863:62;:::i;:::-;17855:70;;17973:18;17965:6;17961:31;17956:2;17945:9;17941:18;17934:59;18041:42;18033:6;18029:55;18024:2;18013:9;18009:18;18002:83;17549:542;;;;;;;;:::o;18501:209::-;18539:3;18567:18;18620:2;18613:5;18609:14;18647:2;18638:7;18635:15;18632:41;;18653:18;;:::i;:::-;18702:1;18689:15;;18501:209;-1:-1:-1;;;18501:209:54:o;19195:542::-;19296:2;19291:3;19288:11;19285:446;;;19332:1;19356:5;19353:1;19346:16;19400:4;19397:1;19387:18;19470:2;19458:10;19454:19;19451:1;19447:27;19441:4;19437:38;19506:4;19494:10;19491:20;19488:47;;;-1:-1:-1;19529:4:54;19488:47;19584:2;19579:3;19575:12;19572:1;19568:20;19562:4;19558:31;19548:41;;19639:82;19657:2;19650:5;19647:13;19639:82;;;19702:17;;;19683:1;19672:13;19639:82;;;19643:3;;;19285:446;19195:542;;;:::o;19973:1460::-;20097:3;20091:10;20124:18;20116:6;20113:30;20110:56;;;20146:18;;:::i;:::-;20175:96;20264:6;20224:38;20256:4;20250:11;20224:38;:::i;:::-;20218:4;20175:96;:::i;:::-;20326:4;;20383:2;20372:14;;20400:1;20395:781;;;;21220:1;21237:6;21234:89;;;-1:-1:-1;21289:19:54;;;21283:26;21234:89;19879:66;19870:1;19866:11;;;19862:84;19858:89;19848:100;19954:1;19950:11;;;19845:117;21336:81;;20365:1062;;20395:781;19142:1;19135:14;;;19179:4;19166:18;;20443:66;20431:79;;;20607:236;20621:7;20618:1;20615:14;20607:236;;;20710:19;;;20704:26;20689:42;;20802:27;;;;20770:1;20758:14;;;;20637:19;;20607:236;;;20611:3;20871:6;20862:7;20859:19;20856:261;;;20932:19;;;20926:26;21033:66;21015:1;21011:14;;;21027:3;21007:24;21003:97;20999:102;20984:118;20969:134;;20856:261;-1:-1:-1;;;;;21163:1:54;21147:14;;;21143:22;21130:36;;-1:-1:-1;19973:1460:54:o;21438:128::-;21505:9;;;21526:11;;;21523:37;;;21540:18;;:::i;21571:184::-;21623:77;21620:1;21613:88;21720:4;21717:1;21710:15;21744:4;21741:1;21734:15;21760:1545;21873:3;21867:4;21864:13;21861:26;;21880:5;;21760:1545::o;21861:26::-;21910:37;21942:3;21936:10;21910:37;:::i;:::-;21970:18;21962:6;21959:30;21956:56;;;21992:18;;:::i;:::-;22021:96;22110:6;22070:38;22102:4;22096:11;22070:38;:::i;22021:96::-;22143:1;22171:2;22163:6;22160:14;22188:1;22183:865;;;;23092:1;23109:6;23106:89;;;-1:-1:-1;23161:19:54;;;23155:26;23106:89;19879:66;19870:1;19866:11;;;19862:84;19858:89;19848:100;19954:1;19950:11;;;19845:117;23208:81;;22153:1146;;22183:865;19142:1;19135:14;;;19179:4;19166:18;;22231:66;22219:79;;;19142:1;19135:14;;;19179:4;19166:18;;22440:9;22462:251;22476:7;22473:1;22470:14;22462:251;;;22558:21;;;22552:28;22537:44;;22608:1;22681:18;;;;22636:15;;;;22499:4;22492:12;22462:251;;;22466:3;22741:6;22732:7;22729:19;22726:263;;;22802:21;;;22796:28;22905:66;22887:1;22883:14;;;22899:3;22879:24;22875:97;22871:102;22856:118;22841:134;;22726:263;;;;23035:1;23026:6;23023:1;23019:14;23015:22;23009:4;23002:36;22153:1146;;;;21760:1545;;:::o;23310:891::-;23661:6;23653;23649:19;23638:9;23631:38;23705:3;23700:2;23689:9;23685:18;23678:31;23612:4;23732:62;23789:3;23778:9;23774:19;23766:6;23758;23732:62;:::i;:::-;23842:42;23834:6;23830:55;23825:2;23814:9;23810:18;23803:83;23934:18;23926:6;23922:31;23917:2;23906:9;23902:18;23895:59;24003:9;23995:6;23991:22;23985:3;23974:9;23970:19;23963:51;24037:49;24079:6;24071;24063;24037:49;:::i;:::-;24023:63;;24135:9;24127:6;24123:22;24117:3;24106:9;24102:19;24095:51;24163:32;24188:6;24180;24163:32;:::i;:::-;24155:40;23310:891;-1:-1:-1;;;;;;;;;;;23310:891:54:o;26798:748::-;27111:6;27103;27099:19;27088:9;27081:38;27155:3;27150:2;27139:9;27135:18;27128:31;27062:4;27182:45;27222:3;27211:9;27207:19;27199:6;27182:45;:::i;:::-;27275:42;27267:6;27263:55;27258:2;27247:9;27243:18;27236:83;27367:18;27359:6;27355:31;27350:2;27339:9;27335:18;27328:59;27424:6;27418:3;27407:9;27403:19;27396:35;27480:9;27472:6;27468:22;27462:3;27451:9;27447:19;27440:51;27508:32;27533:6;27525;27508:32;:::i;27958:168::-;28031:9;;;28062;;28079:15;;;28073:22;;28059:37;28049:71;;28100:18;;:::i;28131:184::-;28183:77;28180:1;28173:88;28280:4;28277:1;28270:15;28304:4;28301:1;28294:15;28320:120;28360:1;28386;28376:35;;28391:18;;:::i;:::-;-1:-1:-1;28425:9:54;;28320:120::o;28445:274::-;28517:34;28583:10;;;28595;;;28579:27;28626:20;;;;28517:34;28665:24;;;28655:58;;28693:18;;:::i;:::-;28655:58;;28445:274;;;;:::o;28724:216::-;28764:1;28790:34;28851:2;28848:1;28844:10;28873:3;28863:37;;28880:18;;:::i;:::-;28918:10;;28914:20;;;;;28724:216;-1:-1:-1;;28724:216:54:o;28945:582::-;29212:6;29204;29200:19;29189:9;29182:38;29256:3;29251:2;29240:9;29236:18;29229:31;29163:4;29283:62;29340:3;29329:9;29325:19;29317:6;29309;29283:62;:::i;:::-;29393:18;29385:6;29381:31;29376:2;29365:9;29361:18;29354:59;29461:9;29453:6;29449:22;29444:2;29433:9;29429:18;29422:50;29489:32;29514:6;29506;29489:32;:::i;:::-;29481:40;28945:582;-1:-1:-1;;;;;;;;28945:582:54:o;29532:184::-;29584:77;29581:1;29574:88;29681:4;29678:1;29671:15;29705:4;29702:1;29695:15"},"gasEstimates":{"creation":{"codeDepositCost":"2805600","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24420","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2353","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"2785","getReceiveLibraryAddress(address)":"413","getReceiveVersion(address)":"435","getSendLibraryAddress(address)":"413","getSendVersion(address)":"437","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2392","isSendingPayload()":"2380","lzEndpointLookup(address)":"2630","mockChainId()":"2424","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2389","oracleFee()":"2361","outboundNonce(uint16,address)":"2795","protocolFeeConfig()":"4464","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"4725","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)":"22380","setProtocolFee(uint256,uint256)":"44515","setReceiveVersion(uint16)":"349","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"349","storedPayload(uint16,bytes)":"infinite"},"internal":{"_clearMsgQue(uint16,bytes calldata)":"infinite","_getProtocolFees(bool,uint256,uint256)":"infinite","_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\":{\"enabled\":true,\"runs\":10000},\"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}}},"@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 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":"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 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\":\"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\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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() external {\\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\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.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 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    /**\\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\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (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 * ```\\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 *\\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\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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     *\\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 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(\\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        (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 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\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"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":3190,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":3193,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":3677,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":3062,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":3182,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":2971,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":3050,"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 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."}},"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 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.\"}},\"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\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.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 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    /**\\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\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (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 * ```\\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 *\\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\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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     *\\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 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(\\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        (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 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\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"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":3190,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":3193,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":3677,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":3062,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":3182,"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] ``` 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] ``` 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\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (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 * ```\\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 *\\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\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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     *\\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 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(\\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        (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 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\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3190,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":3193,"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":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa04b887c2d898594da76880d738f804bfbcc8c3afb01ea14c8d5d89d89ba4c764736f6c63430008190033","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 STATICCALL DIV 0xB8 DUP8 0xC2 0xD8 SWAP9 MSIZE 0x4D 0xA7 PUSH9 0x80D738F804BFBCC8C3 0xAF 0xB0 0x1E LOG1 0x4C DUP14 TSTORE DUP10 0xD8 SWAP12 LOG4 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"194:8087:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8087:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa04b887c2d898594da76880d738f804bfbcc8c3afb01ea14c8d5d89d89ba4c764736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL DIV 0xB8 DUP8 0xC2 0xD8 SWAP9 MSIZE 0x4D 0xA7 PUSH9 0x80D738F804BFBCC8C3 0xAF 0xB0 0x1E LOG1 0x4C DUP14 TSTORE DUP10 0xD8 SWAP12 LOG4 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"194:8087:12:-: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","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\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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     *\\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 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(\\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        (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 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\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"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\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (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 * ```\\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 *\\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\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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     *\\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 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(\\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        (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 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\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"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":3190,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":3193,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":3677,"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: ``` 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}: ``` 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.","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: ``` 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}: ``` 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.\",\"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\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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 * ```\\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 * ```\\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.\\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\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"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.8.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.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 `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\",\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"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.8.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(\\n        uint256 x,\\n        uint256 y,\\n        uint256 denominator\\n    ) 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                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1);\\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(\\n        uint256 x,\\n        uint256 y,\\n        uint256 denominator,\\n        Rounding rounding\\n    ) 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 10, 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 * 8) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3703,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)3698_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)3698_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)3698_storage"},"t_struct(RoleData)3698_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":3695,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":3697,"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\":{\"enabled\":true,\"runs\":10000},\"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 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\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.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 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\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"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":4075,"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\":{\"enabled\":true,\"runs\":10000},\"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":4198,"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/security/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[],"devdoc":{"details":"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].","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\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Contract module that helps prevent reentrant calls to a function.\\n *\\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\n * available, which can be applied to functions to make sure there are no nested\\n * (reentrant) calls to them.\\n *\\n * Note that because there is a single `nonReentrant` guard, functions marked as\\n * `nonReentrant` may not call one another. This can be worked around by making\\n * those functions `private`, and then adding `external` `nonReentrant` entry\\n * points to them.\\n *\\n * TIP: If you would like to learn more about reentrancy and alternative ways\\n * to protect against it, check out our blog post\\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\\n */\\nabstract contract ReentrancyGuard {\\n    // Booleans are more expensive than uint256 or any type that takes up a full\\n    // word because each write operation emits an extra SLOAD to first read the\\n    // slot's contents, replace the bits taken up by the boolean, and then write\\n    // back. This is the compiler's defense against contract upgrades and\\n    // pointer aliasing, and it cannot be disabled.\\n\\n    // The values being non-zero value makes deployment a bit more expensive,\\n    // but in exchange the refund on every call to nonReentrant will be lower in\\n    // amount. Since refunds are capped to a percentage of the total\\n    // transaction's gas, it is best to keep them low in cases like this one, to\\n    // increase the likelihood of the full refund coming into effect.\\n    uint256 private constant _NOT_ENTERED = 1;\\n    uint256 private constant _ENTERED = 2;\\n\\n    uint256 private _status;\\n\\n    constructor() {\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Prevents a contract from calling itself, directly or indirectly.\\n     * Calling a `nonReentrant` function from another `nonReentrant`\\n     * function is not supported. It is possible to prevent this from happening\\n     * by making the `nonReentrant` function external, and making it call a\\n     * `private` function that does the actual work.\\n     */\\n    modifier nonReentrant() {\\n        _nonReentrantBefore();\\n        _;\\n        _nonReentrantAfter();\\n    }\\n\\n    function _nonReentrantBefore() private {\\n        // On the first call to nonReentrant, _status will be _NOT_ENTERED\\n        require(_status != _ENTERED, \\\"ReentrancyGuard: reentrant call\\\");\\n\\n        // Any calls to nonReentrant after this point will fail\\n        _status = _ENTERED;\\n    }\\n\\n    function _nonReentrantAfter() private {\\n        // By storing the original value once again, a refund is triggered (see\\n        // https://eips.ethereum.org/EIPS/eip-2200)\\n        _status = _NOT_ENTERED;\\n    }\\n}\\n\",\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4299,"contract":"@openzeppelin/contracts/security/ReentrancyGuard.sol:ReentrancyGuard","label":"_status","offset":0,"slot":"0","type":"t_uint256"}],"types":{"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"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\":{\"enabled\":true,\"runs\":10000},\"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":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b7895dea1239fb2d3d05ee09d979e850e60232cd548a8f5478c21a1feebe6eea64736f6c63430008190033","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 0xB7 DUP10 TSTORE 0xEA SLT CODECOPY 0xFB 0x2D RETURNDATASIZE SDIV 0xEE MULMOD 0xD9 PUSH26 0xE850E60232CD548A8F5478C21A1FEEBE6EEA64736F6C63430008 NOT STOP CALLER ","sourceMap":"188:2065:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;188:2065:20;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b7895dea1239fb2d3d05ee09d979e850e60232cd548a8f5478c21a1feebe6eea64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB7 DUP10 TSTORE 0xEA SLT CODECOPY 0xFB 0x2D RETURNDATASIZE SDIV 0xEE MULMOD 0xD9 PUSH26 0xE850E60232CD548A8F5478C21A1FEEBE6EEA64736F6C63430008 NOT STOP CALLER ","sourceMap":"188:2065:20:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"toHexString(address)":"infinite","toHexString(uint256)":"infinite","toHexString(uint256,uint256)":"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\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.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 `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\",\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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(\\n        uint256 x,\\n        uint256 y,\\n        uint256 denominator\\n    ) 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                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1);\\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(\\n        uint256 x,\\n        uint256 y,\\n        uint256 denominator,\\n        Rounding rounding\\n    ) 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 10, 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 * 8) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"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\":{\"enabled\":true,\"runs\":10000},\"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\":{\"enabled\":true,\"runs\":10000},\"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":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220accdeeae4104886f75924a623fbd1a22ff70e7f5a0e700f1e67e8454da6f198064736f6c63430008190033","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 0xAC 0xCD 0xEE 0xAE COINBASE DIV DUP9 PUSH16 0x75924A623FBD1A22FF70E7F5A0E700F1 0xE6 PUSH31 0x8454DA6F198064736F6C634300081900330000000000000000000000000000 ","sourceMap":"202:12302:23:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12302:23;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220accdeeae4104886f75924a623fbd1a22ff70e7f5a0e700f1e67e8454da6f198064736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAC 0xCD 0xEE 0xAE COINBASE DIV DUP9 PUSH16 0x75924A623FBD1A22FF70E7F5A0E700F1 0xE6 PUSH31 0x8454DA6F198064736F6C634300081900330000000000000000000000000000 ","sourceMap":"202:12302:23:-: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\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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(\\n        uint256 x,\\n        uint256 y,\\n        uint256 denominator\\n    ) 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                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1);\\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(\\n        uint256 x,\\n        uint256 y,\\n        uint256 denominator,\\n        Rounding rounding\\n    ) 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 10, 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 * 8) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/Cross-chain/BaseOmnichainControllerDest.sol":{"BaseOmnichainControllerDest":{"abi":[{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"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":"address","name":"account","type":"address"}],"name":"Paused","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":"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":"_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":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","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":"last24HourCommandsReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last24HourReceiveWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"maxDailyReceiveLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"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":[],"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":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyReceiveLimit","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"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","details":"This contract is the base for the Omnichain controller destination contract It provides functionality related to daily command limits and pausability","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":{"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."},"setMaxDailyReceiveLimit(uint256)":{"custom:access":"Only Owner","custom:event":"Emits SetMaxDailyReceiveLimit with old and new limit","params":{"limit_":"Number of commands"}},"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"}},"title":"BaseOmnichainControllerDest","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","last24HourCommandsReceived()":"70f6ad9a","last24HourReceiveWindowStart()":"876919e8","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","maxDailyReceiveLimit()":"0435bb56","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMaxDailyReceiveLimit(uint256)":"9493ffad","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","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\":\"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\":\"_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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"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\":\"last24HourCommandsReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last24HourReceiveWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[],\"name\":\"maxDailyReceiveLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":[],\"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\":[],\"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\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyReceiveLimit\",\"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\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"details\":\"This contract is the base for the Omnichain controller destination contract It provides functionality related to daily command limits and pausability\",\"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\":{\"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.\"},\"setMaxDailyReceiveLimit(uint256)\":{\"custom:access\":\"Only Owner\",\"custom:event\":\"Emits SetMaxDailyReceiveLimit with old and new limit\",\"params\":{\"limit_\":\"Number of commands\"}},\"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\"}},\"title\":\"BaseOmnichainControllerDest\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"SetMaxDailyReceiveLimit(uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit for receiving command from Binance chain is modified\"}},\"kind\":\"user\",\"methods\":{\"last24HourCommandsReceived()\":{\"notice\":\"Total received commands within the last 24-hour window from Binance chain\"},\"last24HourReceiveWindowStart()\":{\"notice\":\"Timestamp when the last 24-hour window started from Binance chain\"},\"maxDailyReceiveLimit()\":{\"notice\":\"Maximum daily limit for receiving commands from Binance chain\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening\"},\"setMaxDailyReceiveLimit(uint256)\":{\"notice\":\"Sets the maximum daily limit for receiving commands\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/BaseOmnichainControllerDest.sol\":\"BaseOmnichainControllerDest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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        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\":\"0xf4bd9e0ecfa4eb18e7305eb66da44c8a4610c3d5afeaf6a3b44c4bf4b7169b40\",\"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.7.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 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\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"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/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/Cross-chain/BaseOmnichainControllerDest.sol\":{\"content\":\"//  SPDX-License-Identifier: BSD-3-Clause\\n\\npragma solidity 0.8.25;\\n\\nimport { NonblockingLzApp } from \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title BaseOmnichainControllerDest\\n * @author Venus\\n * @dev This contract is the base for the Omnichain controller destination contract\\n * It provides functionality related to daily command limits and pausability\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\nabstract contract BaseOmnichainControllerDest is NonblockingLzApp, Pausable {\\n    /**\\n     * @notice Maximum daily limit for receiving commands from Binance chain\\n     */\\n    uint256 public maxDailyReceiveLimit;\\n\\n    /**\\n     * @notice Total received commands within the last 24-hour window from Binance chain\\n     */\\n    uint256 public last24HourCommandsReceived;\\n\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from Binance chain\\n     */\\n    uint256 public last24HourReceiveWindowStart;\\n\\n    /**\\n     * @notice Emitted when the maximum daily limit for receiving command from Binance chain is modified\\n     */\\n    event SetMaxDailyReceiveLimit(uint256 oldMaxLimit, uint256 newMaxLimit);\\n\\n    constructor(address endpoint_) NonblockingLzApp(endpoint_) {\\n        ensureNonzeroAddress(endpoint_);\\n    }\\n\\n    /**\\n     * @notice Sets the maximum daily limit for receiving commands\\n     * @param limit_ Number of commands\\n     * @custom:access Only Owner\\n     * @custom:event Emits SetMaxDailyReceiveLimit with old and new limit\\n     */\\n    function setMaxDailyReceiveLimit(uint256 limit_) external onlyOwner {\\n        emit SetMaxDailyReceiveLimit(maxDailyReceiveLimit, limit_);\\n        maxDailyReceiveLimit = limit_;\\n    }\\n\\n    /**\\n     * @notice Triggers the paused state of the controller\\n     * @custom:access Only owner\\n     */\\n    function pause() external onlyOwner {\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers the resume state of the controller\\n     * @custom:access Only owner\\n     */\\n    function unpause() external onlyOwner {\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishappening\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Check eligibility to receive commands\\n     * @param noOfCommands_ Number of commands to be received\\n     */\\n    function _isEligibleToReceive(uint256 noOfCommands_) internal {\\n        uint256 currentBlockTimestamp = block.timestamp;\\n\\n        // Load values for the 24-hour window checks for receiving\\n        uint256 receivedInWindow = last24HourCommandsReceived;\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - last24HourReceiveWindowStart > 1 days) {\\n            receivedInWindow = noOfCommands_;\\n            last24HourReceiveWindowStart = currentBlockTimestamp;\\n        } else {\\n            receivedInWindow += noOfCommands_;\\n        }\\n\\n        // Revert if the received amount exceeds the daily limit\\n        require(receivedInWindow <= maxDailyReceiveLimit, \\\"Daily Transaction Limit Exceeded\\\");\\n\\n        // Update the received amount for the 24-hour window\\n        last24HourCommandsReceived = receivedInWindow;\\n    }\\n}\\n\",\"keccak256\":\"0x5ccc63f55acd7c37e6e3ce36d034f82173bc8daf257cb859e08238b860cf3723\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4075,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":455,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":997,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":4198,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"_paused","offset":0,"slot":"6","type":"t_bool"},{"astId":5497,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"maxDailyReceiveLimit","offset":0,"slot":"7","type":"t_uint256"},{"astId":5500,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"last24HourCommandsReceived","offset":0,"slot":"8","type":"t_uint256"},{"astId":5503,"contract":"contracts/Cross-chain/BaseOmnichainControllerDest.sol:BaseOmnichainControllerDest","label":"last24HourReceiveWindowStart","offset":0,"slot":"9","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_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":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"SetMaxDailyReceiveLimit(uint256,uint256)":{"notice":"Emitted when the maximum daily limit for receiving command from Binance chain is modified"}},"kind":"user","methods":{"last24HourCommandsReceived()":{"notice":"Total received commands within the last 24-hour window from Binance chain"},"last24HourReceiveWindowStart()":{"notice":"Timestamp when the last 24-hour window started from Binance chain"},"maxDailyReceiveLimit()":{"notice":"Maximum daily limit for receiving commands from Binance chain"},"pause()":{"notice":"Triggers the paused state of the controller"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening"},"setMaxDailyReceiveLimit(uint256)":{"notice":"Sets the maximum daily limit for receiving commands"},"unpause()":{"notice":"Triggers the resume state of the controller"}},"version":1}}},"contracts/Cross-chain/BaseOmnichainControllerSrc.sol":{"BaseOmnichainControllerSrc":{"abi":[{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"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":"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":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourCommandsSent","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":"chainIdToLastProposalSentTimestamp","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":[],"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":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","details":"This contract is the base for the Omnichain controller source contracts. It provides functionality related to daily command limits and pausability.","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":{"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."},"setAccessControlManager(address)":{"custom:access":"Only owner","custom:event":"Emits NewAccessControlManager with old and new access control manager addresses","params":{"accessControlManager_":"The new address of the Access Control Manager"}},"setMaxDailyLimit(uint16,uint256)":{"custom:access":"Controlled by AccessControlManager","custom:event":"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id","params":{"chainId_":"Destination chain id","limit_":"Number of commands"}},"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"}},"title":"BaseOmnichainControllerSrc","version":1},"evm":{"bytecode":{"functionDebugData":{"@_4091":{"entryPoint":null,"id":4091,"parameterSlots":0,"returnSlots":0},"@_4207":{"entryPoint":null,"id":4207,"parameterSlots":0,"returnSlots":0},"@_5682":{"entryPoint":null,"id":5682,"parameterSlots":1,"returnSlots":0},"@_msgSender_4354":{"entryPoint":null,"id":4354,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_4179":{"entryPoint":115,"id":4179,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":195,"id":5466,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":237,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:54","nodeType":"YulBlock","src":"0:306:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"95:209:54","nodeType":"YulBlock","src":"95:209:54","statements":[{"body":{"nativeSrc":"141:16:54","nodeType":"YulBlock","src":"141:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:54","nodeType":"YulLiteral","src":"150:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:54","nodeType":"YulLiteral","src":"153:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:54","nodeType":"YulIdentifier","src":"143:6:54"},"nativeSrc":"143:12:54","nodeType":"YulFunctionCall","src":"143:12:54"},"nativeSrc":"143:12:54","nodeType":"YulExpressionStatement","src":"143:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:54","nodeType":"YulIdentifier","src":"116:7:54"},{"name":"headStart","nativeSrc":"125:9:54","nodeType":"YulIdentifier","src":"125:9:54"}],"functionName":{"name":"sub","nativeSrc":"112:3:54","nodeType":"YulIdentifier","src":"112:3:54"},"nativeSrc":"112:23:54","nodeType":"YulFunctionCall","src":"112:23:54"},{"kind":"number","nativeSrc":"137:2:54","nodeType":"YulLiteral","src":"137:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:54","nodeType":"YulIdentifier","src":"108:3:54"},"nativeSrc":"108:32:54","nodeType":"YulFunctionCall","src":"108:32:54"},"nativeSrc":"105:52:54","nodeType":"YulIf","src":"105:52:54"},{"nativeSrc":"166:29:54","nodeType":"YulVariableDeclaration","src":"166:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:54","nodeType":"YulIdentifier","src":"185:9:54"}],"functionName":{"name":"mload","nativeSrc":"179:5:54","nodeType":"YulIdentifier","src":"179:5:54"},"nativeSrc":"179:16:54","nodeType":"YulFunctionCall","src":"179:16:54"},"variables":[{"name":"value","nativeSrc":"170:5:54","nodeType":"YulTypedName","src":"170:5:54","type":""}]},{"body":{"nativeSrc":"258:16:54","nodeType":"YulBlock","src":"258:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:54","nodeType":"YulLiteral","src":"267:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:54","nodeType":"YulLiteral","src":"270:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:54","nodeType":"YulIdentifier","src":"260:6:54"},"nativeSrc":"260:12:54","nodeType":"YulFunctionCall","src":"260:12:54"},"nativeSrc":"260:12:54","nodeType":"YulExpressionStatement","src":"260:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:54","nodeType":"YulIdentifier","src":"217:5:54"},{"arguments":[{"name":"value","nativeSrc":"228:5:54","nodeType":"YulIdentifier","src":"228:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:54","nodeType":"YulLiteral","src":"243:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:54","nodeType":"YulLiteral","src":"248:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:54","nodeType":"YulIdentifier","src":"239:3:54"},"nativeSrc":"239:11:54","nodeType":"YulFunctionCall","src":"239:11:54"},{"kind":"number","nativeSrc":"252:1:54","nodeType":"YulLiteral","src":"252:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:54","nodeType":"YulIdentifier","src":"235:3:54"},"nativeSrc":"235:19:54","nodeType":"YulFunctionCall","src":"235:19:54"}],"functionName":{"name":"and","nativeSrc":"224:3:54","nodeType":"YulIdentifier","src":"224:3:54"},"nativeSrc":"224:31:54","nodeType":"YulFunctionCall","src":"224:31:54"}],"functionName":{"name":"eq","nativeSrc":"214:2:54","nodeType":"YulIdentifier","src":"214:2:54"},"nativeSrc":"214:42:54","nodeType":"YulFunctionCall","src":"214:42:54"}],"functionName":{"name":"iszero","nativeSrc":"207:6:54","nodeType":"YulIdentifier","src":"207:6:54"},"nativeSrc":"207:50:54","nodeType":"YulFunctionCall","src":"207:50:54"},"nativeSrc":"204:70:54","nodeType":"YulIf","src":"204:70:54"},{"nativeSrc":"283:15:54","nodeType":"YulAssignment","src":"283:15:54","value":{"name":"value","nativeSrc":"293:5:54","nodeType":"YulIdentifier","src":"293:5:54"},"variableNames":[{"name":"value0","nativeSrc":"283:6:54","nodeType":"YulIdentifier","src":"283:6:54"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:54","nodeType":"YulTypedName","src":"61:9:54","type":""},{"name":"dataEnd","nativeSrc":"72:7:54","nodeType":"YulTypedName","src":"72:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:54","nodeType":"YulTypedName","src":"84:6:54","type":""}],"src":"14:290:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610bba380380610bba83398101604081905261002f916100ed565b61003833610073565b6000805460ff60a01b1916905561004e816100c3565b600180546001600160a01b0319166001600160a01b039290921691909117905561011d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166100ea576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6000602082840312156100ff57600080fd5b81516001600160a01b038116811461011657600080fd5b9392505050565b610a8e8061012c6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c57806393a61d6c1161006657806393a61d6c146101dc578063b4a0bdf3146101fc578063e0354d7f1461021c578063f2fde38b1461023c57600080fd5b8063715018a6146100f75780638456cb59146101955780638da5cb5b1461019d57600080fd5b80633f4ba83a116100bd5780633f4ba83a1461013f5780634f4ba0f4146101475780635c975abb1461016757600080fd5b80630e32cb86146100e45780631183a3b2146100f95780632488eec81461012c575b600080fd5b6100f76100f2366004610912565b61024f565b005b610119610107366004610966565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6100f761013a366004610981565b6102ee565b6100f7610391565b610119610155366004610966565b60026020526000908152604090205481565b60005474010000000000000000000000000000000000000000900460ff166040519015158152602001610123565b6100f76103d9565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610123565b6101196101ea366004610966565b60046020526000908152604090205481565b6001546101b79073ffffffffffffffffffffffffffffffffffffffff1681565b61011961022a366004610966565b60056020526000908152604090205481565b6100f761024a366004610912565b61041f565b6102576104db565b6102608161055c565b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61032c6040518060400160405280602081526020017f7365744d61784461696c794c696d69742875696e7431362c75696e74323536298152506105a9565b61ffff82166000818152600260209081526040918290205482519081529081018490527f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693910160405180910390a261ffff909116600090815260026020526040902055565b6103cf6040518060400160405280600981526020017f756e7061757365282900000000000000000000000000000000000000000000008152506105a9565b6103d76106a8565b565b6104176040518060400160405280600781526020017f70617573652829000000000000000000000000000000000000000000000000008152506105a9565b6103d7610725565b6104276104db565b73ffffffffffffffffffffffffffffffffffffffff81166104cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104d881610794565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c6565b73ffffffffffffffffffffffffffffffffffffffff81166104d8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906318c5e8ab9061060190339085906004016109ab565b602060405180830381865afa15801561061e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106429190610a36565b6104d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6163636573732064656e6965640000000000000000000000000000000000000060448201526064016104c6565b6106b0610809565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61072d61088d565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586106fb3390565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005474010000000000000000000000000000000000000000900460ff166103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104c6565b60005474010000000000000000000000000000000000000000900460ff16156103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016104c6565b60006020828403121561092457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461094857600080fd5b9392505050565b803561ffff8116811461096157600080fd5b919050565b60006020828403121561097857600080fd5b6109488261094f565b6000806040838503121561099457600080fd5b61099d8361094f565b946020939093013593505050565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109f6578581018301518582016060015282016109da565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509392505050565b600060208284031215610a4857600080fd5b8151801515811461094857600080fdfea2646970667358221220cfe99bea710d73a0ec5f4b2b5053cde02581c744d1a4487ea4e22be48575b9a464736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xBBA CODESIZE SUB DUP1 PUSH2 0xBBA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xED 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 0x11D 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 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x116 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xA8E DUP1 PUSH2 0x12C 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 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x93A61D6C GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xE0354D7F EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x23C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x1183A3B2 EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x912 JUMP JUMPDEST PUSH2 0x24F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x119 PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x981 JUMP JUMPDEST PUSH2 0x2EE JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x123 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x123 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1B7 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x22A CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0x912 JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH2 0x257 PUSH2 0x4DB JUMP JUMPDEST PUSH2 0x260 DUP2 PUSH2 0x55C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x32C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D61784461696C794C696D69742875696E7431362C75696E7432353629 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x3CF PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E706175736528290000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x3D7 PUSH2 0x6A8 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x417 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061757365282900000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x3D7 PUSH2 0x725 JUMP JUMPDEST PUSH2 0x427 PUSH2 0x4DB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP2 PUSH2 0x794 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x601 SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x61E 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 0x642 SWAP2 SWAP1 PUSH2 0xA36 JUMP JUMPDEST PUSH2 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6163636573732064656E69656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH2 0x6B0 PUSH2 0x809 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x72D PUSH2 0x88D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x6FB CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x924 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x961 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x978 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x948 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99D DUP4 PUSH2 0x94F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 PUSH1 0x20 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9F6 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x9DA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x60 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCF 0xE9 SWAP12 0xEA PUSH18 0xD73A0EC5F4B2B5053CDE02581C744D1A448 PUSH31 0xA4E22BE48575B9A464736F6C63430008190033000000000000000000000000 ","sourceMap":"696:5319:26:-:0;;;1954:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:16;719:10:19;936:18:16;:32::i;:::-;1006:5:17;996:15;;-1:-1:-1;;;;996:15:17;;;2007:43:26;2028:21;2007:20;:43::i;:::-;2060:20;:44;;-1:-1:-1;;;;;;2060:44:26;-1:-1:-1;;;;;2060:44:26;;;;;;;;;;696:5319;;2433:187:16;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:16;;;-1:-1:-1;;;;;;2541:17:16;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;485:136:24:-;-1:-1:-1;;;;;548:22:24;;544:75;;589:23;;-1:-1:-1;;;589:23:24;;;;;;;;;;;544:75;485:136;:::o;14:290:54:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:54;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:54:o;:::-;696:5319:26;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_4122":{"entryPoint":1243,"id":4122,"parameterSlots":0,"returnSlots":0},"@_ensureAllowed_5866":{"entryPoint":1449,"id":5866,"parameterSlots":1,"returnSlots":0},"@_msgSender_4354":{"entryPoint":null,"id":4354,"parameterSlots":0,"returnSlots":1},"@_pause_4271":{"entryPoint":1829,"id":4271,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_4244":{"entryPoint":2189,"id":4244,"parameterSlots":0,"returnSlots":0},"@_requirePaused_4255":{"entryPoint":2057,"id":4255,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_4179":{"entryPoint":1940,"id":4179,"parameterSlots":1,"returnSlots":0},"@_unpause_4287":{"entryPoint":1704,"id":4287,"parameterSlots":0,"returnSlots":0},"@accessControlManager_5633":{"entryPoint":null,"id":5633,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourCommandsSent_5643":{"entryPoint":null,"id":5643,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourWindowStart_5648":{"entryPoint":null,"id":5648,"parameterSlots":0,"returnSlots":0},"@chainIdToLastProposalSentTimestamp_5653":{"entryPoint":null,"id":5653,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxDailyLimit_5638":{"entryPoint":null,"id":5638,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":1372,"id":5466,"parameterSlots":1,"returnSlots":0},"@owner_4108":{"entryPoint":null,"id":4108,"parameterSlots":0,"returnSlots":1},"@pause_5721":{"entryPoint":985,"id":5721,"parameterSlots":0,"returnSlots":0},"@paused_4232":{"entryPoint":null,"id":4232,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_5761":{"entryPoint":null,"id":5761,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_5755":{"entryPoint":591,"id":5755,"parameterSlots":1,"returnSlots":0},"@setMaxDailyLimit_5709":{"entryPoint":750,"id":5709,"parameterSlots":2,"returnSlots":0},"@transferOwnership_4159":{"entryPoint":1055,"id":4159,"parameterSlots":1,"returnSlots":0},"@unpause_5733":{"entryPoint":913,"id":5733,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":2322,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":2614,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16":{"entryPoint":2406,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_uint256":{"entryPoint":2433,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":2383,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"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":2475,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:4611:54","nodeType":"YulBlock","src":"0:4611:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"84:239:54","nodeType":"YulBlock","src":"84:239:54","statements":[{"body":{"nativeSrc":"130:16:54","nodeType":"YulBlock","src":"130:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"139:1:54","nodeType":"YulLiteral","src":"139:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"142:1:54","nodeType":"YulLiteral","src":"142:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"132:6:54","nodeType":"YulIdentifier","src":"132:6:54"},"nativeSrc":"132:12:54","nodeType":"YulFunctionCall","src":"132:12:54"},"nativeSrc":"132:12:54","nodeType":"YulExpressionStatement","src":"132:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"105:7:54","nodeType":"YulIdentifier","src":"105:7:54"},{"name":"headStart","nativeSrc":"114:9:54","nodeType":"YulIdentifier","src":"114:9:54"}],"functionName":{"name":"sub","nativeSrc":"101:3:54","nodeType":"YulIdentifier","src":"101:3:54"},"nativeSrc":"101:23:54","nodeType":"YulFunctionCall","src":"101:23:54"},{"kind":"number","nativeSrc":"126:2:54","nodeType":"YulLiteral","src":"126:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"97:3:54","nodeType":"YulIdentifier","src":"97:3:54"},"nativeSrc":"97:32:54","nodeType":"YulFunctionCall","src":"97:32:54"},"nativeSrc":"94:52:54","nodeType":"YulIf","src":"94:52:54"},{"nativeSrc":"155:36:54","nodeType":"YulVariableDeclaration","src":"155:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"181:9:54","nodeType":"YulIdentifier","src":"181:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"168:12:54","nodeType":"YulIdentifier","src":"168:12:54"},"nativeSrc":"168:23:54","nodeType":"YulFunctionCall","src":"168:23:54"},"variables":[{"name":"value","nativeSrc":"159:5:54","nodeType":"YulTypedName","src":"159:5:54","type":""}]},{"body":{"nativeSrc":"277:16:54","nodeType":"YulBlock","src":"277:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"286:1:54","nodeType":"YulLiteral","src":"286:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"289:1:54","nodeType":"YulLiteral","src":"289:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"279:6:54","nodeType":"YulIdentifier","src":"279:6:54"},"nativeSrc":"279:12:54","nodeType":"YulFunctionCall","src":"279:12:54"},"nativeSrc":"279:12:54","nodeType":"YulExpressionStatement","src":"279:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"213:5:54","nodeType":"YulIdentifier","src":"213:5:54"},{"arguments":[{"name":"value","nativeSrc":"224:5:54","nodeType":"YulIdentifier","src":"224:5:54"},{"kind":"number","nativeSrc":"231:42:54","nodeType":"YulLiteral","src":"231:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"220:3:54","nodeType":"YulIdentifier","src":"220:3:54"},"nativeSrc":"220:54:54","nodeType":"YulFunctionCall","src":"220:54:54"}],"functionName":{"name":"eq","nativeSrc":"210:2:54","nodeType":"YulIdentifier","src":"210:2:54"},"nativeSrc":"210:65:54","nodeType":"YulFunctionCall","src":"210:65:54"}],"functionName":{"name":"iszero","nativeSrc":"203:6:54","nodeType":"YulIdentifier","src":"203:6:54"},"nativeSrc":"203:73:54","nodeType":"YulFunctionCall","src":"203:73:54"},"nativeSrc":"200:93:54","nodeType":"YulIf","src":"200:93:54"},{"nativeSrc":"302:15:54","nodeType":"YulAssignment","src":"302:15:54","value":{"name":"value","nativeSrc":"312:5:54","nodeType":"YulIdentifier","src":"312:5:54"},"variableNames":[{"name":"value0","nativeSrc":"302:6:54","nodeType":"YulIdentifier","src":"302:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"14:309:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50:9:54","nodeType":"YulTypedName","src":"50:9:54","type":""},{"name":"dataEnd","nativeSrc":"61:7:54","nodeType":"YulTypedName","src":"61:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"73:6:54","nodeType":"YulTypedName","src":"73:6:54","type":""}],"src":"14:309:54"},{"body":{"nativeSrc":"376:111:54","nodeType":"YulBlock","src":"376:111:54","statements":[{"nativeSrc":"386:29:54","nodeType":"YulAssignment","src":"386:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"408:6:54","nodeType":"YulIdentifier","src":"408:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"395:12:54","nodeType":"YulIdentifier","src":"395:12:54"},"nativeSrc":"395:20:54","nodeType":"YulFunctionCall","src":"395:20:54"},"variableNames":[{"name":"value","nativeSrc":"386:5:54","nodeType":"YulIdentifier","src":"386:5:54"}]},{"body":{"nativeSrc":"465:16:54","nodeType":"YulBlock","src":"465:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"474:1:54","nodeType":"YulLiteral","src":"474:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"477:1:54","nodeType":"YulLiteral","src":"477:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"467:6:54","nodeType":"YulIdentifier","src":"467:6:54"},"nativeSrc":"467:12:54","nodeType":"YulFunctionCall","src":"467:12:54"},"nativeSrc":"467:12:54","nodeType":"YulExpressionStatement","src":"467:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"437:5:54","nodeType":"YulIdentifier","src":"437:5:54"},{"arguments":[{"name":"value","nativeSrc":"448:5:54","nodeType":"YulIdentifier","src":"448:5:54"},{"kind":"number","nativeSrc":"455:6:54","nodeType":"YulLiteral","src":"455:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"444:3:54","nodeType":"YulIdentifier","src":"444:3:54"},"nativeSrc":"444:18:54","nodeType":"YulFunctionCall","src":"444:18:54"}],"functionName":{"name":"eq","nativeSrc":"434:2:54","nodeType":"YulIdentifier","src":"434:2:54"},"nativeSrc":"434:29:54","nodeType":"YulFunctionCall","src":"434:29:54"}],"functionName":{"name":"iszero","nativeSrc":"427:6:54","nodeType":"YulIdentifier","src":"427:6:54"},"nativeSrc":"427:37:54","nodeType":"YulFunctionCall","src":"427:37:54"},"nativeSrc":"424:57:54","nodeType":"YulIf","src":"424:57:54"}]},"name":"abi_decode_uint16","nativeSrc":"328:159:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"355:6:54","nodeType":"YulTypedName","src":"355:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"366:5:54","nodeType":"YulTypedName","src":"366:5:54","type":""}],"src":"328:159:54"},{"body":{"nativeSrc":"561:115:54","nodeType":"YulBlock","src":"561:115:54","statements":[{"body":{"nativeSrc":"607:16:54","nodeType":"YulBlock","src":"607:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"616:1:54","nodeType":"YulLiteral","src":"616:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"619:1:54","nodeType":"YulLiteral","src":"619:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"609:6:54","nodeType":"YulIdentifier","src":"609:6:54"},"nativeSrc":"609:12:54","nodeType":"YulFunctionCall","src":"609:12:54"},"nativeSrc":"609:12:54","nodeType":"YulExpressionStatement","src":"609:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"582:7:54","nodeType":"YulIdentifier","src":"582:7:54"},{"name":"headStart","nativeSrc":"591:9:54","nodeType":"YulIdentifier","src":"591:9:54"}],"functionName":{"name":"sub","nativeSrc":"578:3:54","nodeType":"YulIdentifier","src":"578:3:54"},"nativeSrc":"578:23:54","nodeType":"YulFunctionCall","src":"578:23:54"},{"kind":"number","nativeSrc":"603:2:54","nodeType":"YulLiteral","src":"603:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"574:3:54","nodeType":"YulIdentifier","src":"574:3:54"},"nativeSrc":"574:32:54","nodeType":"YulFunctionCall","src":"574:32:54"},"nativeSrc":"571:52:54","nodeType":"YulIf","src":"571:52:54"},{"nativeSrc":"632:38:54","nodeType":"YulAssignment","src":"632:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"660:9:54","nodeType":"YulIdentifier","src":"660:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"642:17:54","nodeType":"YulIdentifier","src":"642:17:54"},"nativeSrc":"642:28:54","nodeType":"YulFunctionCall","src":"642:28:54"},"variableNames":[{"name":"value0","nativeSrc":"632:6:54","nodeType":"YulIdentifier","src":"632:6:54"}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"492:184:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"527:9:54","nodeType":"YulTypedName","src":"527:9:54","type":""},{"name":"dataEnd","nativeSrc":"538:7:54","nodeType":"YulTypedName","src":"538:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"550:6:54","nodeType":"YulTypedName","src":"550:6:54","type":""}],"src":"492:184:54"},{"body":{"nativeSrc":"782:76:54","nodeType":"YulBlock","src":"782:76:54","statements":[{"nativeSrc":"792:26:54","nodeType":"YulAssignment","src":"792:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"804:9:54","nodeType":"YulIdentifier","src":"804:9:54"},{"kind":"number","nativeSrc":"815:2:54","nodeType":"YulLiteral","src":"815:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"800:3:54","nodeType":"YulIdentifier","src":"800:3:54"},"nativeSrc":"800:18:54","nodeType":"YulFunctionCall","src":"800:18:54"},"variableNames":[{"name":"tail","nativeSrc":"792:4:54","nodeType":"YulIdentifier","src":"792:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"834:9:54","nodeType":"YulIdentifier","src":"834:9:54"},{"name":"value0","nativeSrc":"845:6:54","nodeType":"YulIdentifier","src":"845:6:54"}],"functionName":{"name":"mstore","nativeSrc":"827:6:54","nodeType":"YulIdentifier","src":"827:6:54"},"nativeSrc":"827:25:54","nodeType":"YulFunctionCall","src":"827:25:54"},"nativeSrc":"827:25:54","nodeType":"YulExpressionStatement","src":"827:25:54"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"681:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"751:9:54","nodeType":"YulTypedName","src":"751:9:54","type":""},{"name":"value0","nativeSrc":"762:6:54","nodeType":"YulTypedName","src":"762:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"773:4:54","nodeType":"YulTypedName","src":"773:4:54","type":""}],"src":"681:177:54"},{"body":{"nativeSrc":"949:166:54","nodeType":"YulBlock","src":"949:166:54","statements":[{"body":{"nativeSrc":"995:16:54","nodeType":"YulBlock","src":"995:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1004:1:54","nodeType":"YulLiteral","src":"1004:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1007:1:54","nodeType":"YulLiteral","src":"1007:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"997:6:54","nodeType":"YulIdentifier","src":"997:6:54"},"nativeSrc":"997:12:54","nodeType":"YulFunctionCall","src":"997:12:54"},"nativeSrc":"997:12:54","nodeType":"YulExpressionStatement","src":"997:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"970:7:54","nodeType":"YulIdentifier","src":"970:7:54"},{"name":"headStart","nativeSrc":"979:9:54","nodeType":"YulIdentifier","src":"979:9:54"}],"functionName":{"name":"sub","nativeSrc":"966:3:54","nodeType":"YulIdentifier","src":"966:3:54"},"nativeSrc":"966:23:54","nodeType":"YulFunctionCall","src":"966:23:54"},{"kind":"number","nativeSrc":"991:2:54","nodeType":"YulLiteral","src":"991:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"962:3:54","nodeType":"YulIdentifier","src":"962:3:54"},"nativeSrc":"962:32:54","nodeType":"YulFunctionCall","src":"962:32:54"},"nativeSrc":"959:52:54","nodeType":"YulIf","src":"959:52:54"},{"nativeSrc":"1020:38:54","nodeType":"YulAssignment","src":"1020:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1048:9:54","nodeType":"YulIdentifier","src":"1048:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"1030:17:54","nodeType":"YulIdentifier","src":"1030:17:54"},"nativeSrc":"1030:28:54","nodeType":"YulFunctionCall","src":"1030:28:54"},"variableNames":[{"name":"value0","nativeSrc":"1020:6:54","nodeType":"YulIdentifier","src":"1020:6:54"}]},{"nativeSrc":"1067:42:54","nodeType":"YulAssignment","src":"1067:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1094:9:54","nodeType":"YulIdentifier","src":"1094:9:54"},{"kind":"number","nativeSrc":"1105:2:54","nodeType":"YulLiteral","src":"1105:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1090:3:54","nodeType":"YulIdentifier","src":"1090:3:54"},"nativeSrc":"1090:18:54","nodeType":"YulFunctionCall","src":"1090:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1077:12:54","nodeType":"YulIdentifier","src":"1077:12:54"},"nativeSrc":"1077:32:54","nodeType":"YulFunctionCall","src":"1077:32:54"},"variableNames":[{"name":"value1","nativeSrc":"1067:6:54","nodeType":"YulIdentifier","src":"1067:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint256","nativeSrc":"863:252:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"907:9:54","nodeType":"YulTypedName","src":"907:9:54","type":""},{"name":"dataEnd","nativeSrc":"918:7:54","nodeType":"YulTypedName","src":"918:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"930:6:54","nodeType":"YulTypedName","src":"930:6:54","type":""},{"name":"value1","nativeSrc":"938:6:54","nodeType":"YulTypedName","src":"938:6:54","type":""}],"src":"863:252:54"},{"body":{"nativeSrc":"1215:92:54","nodeType":"YulBlock","src":"1215:92:54","statements":[{"nativeSrc":"1225:26:54","nodeType":"YulAssignment","src":"1225:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1237:9:54","nodeType":"YulIdentifier","src":"1237:9:54"},{"kind":"number","nativeSrc":"1248:2:54","nodeType":"YulLiteral","src":"1248:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1233:3:54","nodeType":"YulIdentifier","src":"1233:3:54"},"nativeSrc":"1233:18:54","nodeType":"YulFunctionCall","src":"1233:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1225:4:54","nodeType":"YulIdentifier","src":"1225:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1267:9:54","nodeType":"YulIdentifier","src":"1267:9:54"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"1292:6:54","nodeType":"YulIdentifier","src":"1292:6:54"}],"functionName":{"name":"iszero","nativeSrc":"1285:6:54","nodeType":"YulIdentifier","src":"1285:6:54"},"nativeSrc":"1285:14:54","nodeType":"YulFunctionCall","src":"1285:14:54"}],"functionName":{"name":"iszero","nativeSrc":"1278:6:54","nodeType":"YulIdentifier","src":"1278:6:54"},"nativeSrc":"1278:22:54","nodeType":"YulFunctionCall","src":"1278:22:54"}],"functionName":{"name":"mstore","nativeSrc":"1260:6:54","nodeType":"YulIdentifier","src":"1260:6:54"},"nativeSrc":"1260:41:54","nodeType":"YulFunctionCall","src":"1260:41:54"},"nativeSrc":"1260:41:54","nodeType":"YulExpressionStatement","src":"1260:41:54"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1120:187:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1184:9:54","nodeType":"YulTypedName","src":"1184:9:54","type":""},{"name":"value0","nativeSrc":"1195:6:54","nodeType":"YulTypedName","src":"1195:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1206:4:54","nodeType":"YulTypedName","src":"1206:4:54","type":""}],"src":"1120:187:54"},{"body":{"nativeSrc":"1413:125:54","nodeType":"YulBlock","src":"1413:125:54","statements":[{"nativeSrc":"1423:26:54","nodeType":"YulAssignment","src":"1423:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1435:9:54","nodeType":"YulIdentifier","src":"1435:9:54"},{"kind":"number","nativeSrc":"1446:2:54","nodeType":"YulLiteral","src":"1446:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1431:3:54","nodeType":"YulIdentifier","src":"1431:3:54"},"nativeSrc":"1431:18:54","nodeType":"YulFunctionCall","src":"1431:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1423:4:54","nodeType":"YulIdentifier","src":"1423:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1465:9:54","nodeType":"YulIdentifier","src":"1465:9:54"},{"arguments":[{"name":"value0","nativeSrc":"1480:6:54","nodeType":"YulIdentifier","src":"1480:6:54"},{"kind":"number","nativeSrc":"1488:42:54","nodeType":"YulLiteral","src":"1488:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1476:3:54","nodeType":"YulIdentifier","src":"1476:3:54"},"nativeSrc":"1476:55:54","nodeType":"YulFunctionCall","src":"1476:55:54"}],"functionName":{"name":"mstore","nativeSrc":"1458:6:54","nodeType":"YulIdentifier","src":"1458:6:54"},"nativeSrc":"1458:74:54","nodeType":"YulFunctionCall","src":"1458:74:54"},"nativeSrc":"1458:74:54","nodeType":"YulExpressionStatement","src":"1458:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1312:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1382:9:54","nodeType":"YulTypedName","src":"1382:9:54","type":""},{"name":"value0","nativeSrc":"1393:6:54","nodeType":"YulTypedName","src":"1393:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1404:4:54","nodeType":"YulTypedName","src":"1404:4:54","type":""}],"src":"1312:226:54"},{"body":{"nativeSrc":"1672:119:54","nodeType":"YulBlock","src":"1672:119:54","statements":[{"nativeSrc":"1682:26:54","nodeType":"YulAssignment","src":"1682:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1694:9:54","nodeType":"YulIdentifier","src":"1694:9:54"},{"kind":"number","nativeSrc":"1705:2:54","nodeType":"YulLiteral","src":"1705:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1690:3:54","nodeType":"YulIdentifier","src":"1690:3:54"},"nativeSrc":"1690:18:54","nodeType":"YulFunctionCall","src":"1690:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1682:4:54","nodeType":"YulIdentifier","src":"1682:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1724:9:54","nodeType":"YulIdentifier","src":"1724:9:54"},{"name":"value0","nativeSrc":"1735:6:54","nodeType":"YulIdentifier","src":"1735:6:54"}],"functionName":{"name":"mstore","nativeSrc":"1717:6:54","nodeType":"YulIdentifier","src":"1717:6:54"},"nativeSrc":"1717:25:54","nodeType":"YulFunctionCall","src":"1717:25:54"},"nativeSrc":"1717:25:54","nodeType":"YulExpressionStatement","src":"1717:25:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1762:9:54","nodeType":"YulIdentifier","src":"1762:9:54"},{"kind":"number","nativeSrc":"1773:2:54","nodeType":"YulLiteral","src":"1773:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1758:3:54","nodeType":"YulIdentifier","src":"1758:3:54"},"nativeSrc":"1758:18:54","nodeType":"YulFunctionCall","src":"1758:18:54"},{"name":"value1","nativeSrc":"1778:6:54","nodeType":"YulIdentifier","src":"1778:6:54"}],"functionName":{"name":"mstore","nativeSrc":"1751:6:54","nodeType":"YulIdentifier","src":"1751:6:54"},"nativeSrc":"1751:34:54","nodeType":"YulFunctionCall","src":"1751:34:54"},"nativeSrc":"1751:34:54","nodeType":"YulExpressionStatement","src":"1751:34:54"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"1543:248:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1633:9:54","nodeType":"YulTypedName","src":"1633:9:54","type":""},{"name":"value1","nativeSrc":"1644:6:54","nodeType":"YulTypedName","src":"1644:6:54","type":""},{"name":"value0","nativeSrc":"1652:6:54","nodeType":"YulTypedName","src":"1652:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1663:4:54","nodeType":"YulTypedName","src":"1663:4:54","type":""}],"src":"1543:248:54"},{"body":{"nativeSrc":"1970:228:54","nodeType":"YulBlock","src":"1970:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1987:9:54","nodeType":"YulIdentifier","src":"1987:9:54"},{"kind":"number","nativeSrc":"1998:2:54","nodeType":"YulLiteral","src":"1998:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1980:6:54","nodeType":"YulIdentifier","src":"1980:6:54"},"nativeSrc":"1980:21:54","nodeType":"YulFunctionCall","src":"1980:21:54"},"nativeSrc":"1980:21:54","nodeType":"YulExpressionStatement","src":"1980:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2021:9:54","nodeType":"YulIdentifier","src":"2021:9:54"},{"kind":"number","nativeSrc":"2032:2:54","nodeType":"YulLiteral","src":"2032:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2017:3:54","nodeType":"YulIdentifier","src":"2017:3:54"},"nativeSrc":"2017:18:54","nodeType":"YulFunctionCall","src":"2017:18:54"},{"kind":"number","nativeSrc":"2037:2:54","nodeType":"YulLiteral","src":"2037:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2010:6:54","nodeType":"YulIdentifier","src":"2010:6:54"},"nativeSrc":"2010:30:54","nodeType":"YulFunctionCall","src":"2010:30:54"},"nativeSrc":"2010:30:54","nodeType":"YulExpressionStatement","src":"2010:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2060:9:54","nodeType":"YulIdentifier","src":"2060:9:54"},{"kind":"number","nativeSrc":"2071:2:54","nodeType":"YulLiteral","src":"2071:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2056:3:54","nodeType":"YulIdentifier","src":"2056:3:54"},"nativeSrc":"2056:18:54","nodeType":"YulFunctionCall","src":"2056:18:54"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"2076:34:54","nodeType":"YulLiteral","src":"2076:34:54","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"2049:6:54","nodeType":"YulIdentifier","src":"2049:6:54"},"nativeSrc":"2049:62:54","nodeType":"YulFunctionCall","src":"2049:62:54"},"nativeSrc":"2049:62:54","nodeType":"YulExpressionStatement","src":"2049:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2131:9:54","nodeType":"YulIdentifier","src":"2131:9:54"},{"kind":"number","nativeSrc":"2142:2:54","nodeType":"YulLiteral","src":"2142:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2127:3:54","nodeType":"YulIdentifier","src":"2127:3:54"},"nativeSrc":"2127:18:54","nodeType":"YulFunctionCall","src":"2127:18:54"},{"hexValue":"646472657373","kind":"string","nativeSrc":"2147:8:54","nodeType":"YulLiteral","src":"2147:8:54","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"2120:6:54","nodeType":"YulIdentifier","src":"2120:6:54"},"nativeSrc":"2120:36:54","nodeType":"YulFunctionCall","src":"2120:36:54"},"nativeSrc":"2120:36:54","nodeType":"YulExpressionStatement","src":"2120:36:54"},{"nativeSrc":"2165:27:54","nodeType":"YulAssignment","src":"2165:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2177:9:54","nodeType":"YulIdentifier","src":"2177:9:54"},{"kind":"number","nativeSrc":"2188:3:54","nodeType":"YulLiteral","src":"2188:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2173:3:54","nodeType":"YulIdentifier","src":"2173:3:54"},"nativeSrc":"2173:19:54","nodeType":"YulFunctionCall","src":"2173:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2165:4:54","nodeType":"YulIdentifier","src":"2165:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1796:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1947:9:54","nodeType":"YulTypedName","src":"1947:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1961:4:54","nodeType":"YulTypedName","src":"1961:4:54","type":""}],"src":"1796:402:54"},{"body":{"nativeSrc":"2377:182:54","nodeType":"YulBlock","src":"2377:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2394:9:54","nodeType":"YulIdentifier","src":"2394:9:54"},{"kind":"number","nativeSrc":"2405:2:54","nodeType":"YulLiteral","src":"2405:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2387:6:54","nodeType":"YulIdentifier","src":"2387:6:54"},"nativeSrc":"2387:21:54","nodeType":"YulFunctionCall","src":"2387:21:54"},"nativeSrc":"2387:21:54","nodeType":"YulExpressionStatement","src":"2387:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2428:9:54","nodeType":"YulIdentifier","src":"2428:9:54"},{"kind":"number","nativeSrc":"2439:2:54","nodeType":"YulLiteral","src":"2439:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2424:3:54","nodeType":"YulIdentifier","src":"2424:3:54"},"nativeSrc":"2424:18:54","nodeType":"YulFunctionCall","src":"2424:18:54"},{"kind":"number","nativeSrc":"2444:2:54","nodeType":"YulLiteral","src":"2444:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2417:6:54","nodeType":"YulIdentifier","src":"2417:6:54"},"nativeSrc":"2417:30:54","nodeType":"YulFunctionCall","src":"2417:30:54"},"nativeSrc":"2417:30:54","nodeType":"YulExpressionStatement","src":"2417:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2467:9:54","nodeType":"YulIdentifier","src":"2467:9:54"},{"kind":"number","nativeSrc":"2478:2:54","nodeType":"YulLiteral","src":"2478:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2463:3:54","nodeType":"YulIdentifier","src":"2463:3:54"},"nativeSrc":"2463:18:54","nodeType":"YulFunctionCall","src":"2463:18:54"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"2483:34:54","nodeType":"YulLiteral","src":"2483:34:54","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"2456:6:54","nodeType":"YulIdentifier","src":"2456:6:54"},"nativeSrc":"2456:62:54","nodeType":"YulFunctionCall","src":"2456:62:54"},"nativeSrc":"2456:62:54","nodeType":"YulExpressionStatement","src":"2456:62:54"},{"nativeSrc":"2527:26:54","nodeType":"YulAssignment","src":"2527:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2539:9:54","nodeType":"YulIdentifier","src":"2539:9:54"},{"kind":"number","nativeSrc":"2550:2:54","nodeType":"YulLiteral","src":"2550:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2535:3:54","nodeType":"YulIdentifier","src":"2535:3:54"},"nativeSrc":"2535:18:54","nodeType":"YulFunctionCall","src":"2535:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2527:4:54","nodeType":"YulIdentifier","src":"2527:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2203:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2354:9:54","nodeType":"YulTypedName","src":"2354:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2368:4:54","nodeType":"YulTypedName","src":"2368:4:54","type":""}],"src":"2203:356:54"},{"body":{"nativeSrc":"2713:578:54","nodeType":"YulBlock","src":"2713:578:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2730:9:54","nodeType":"YulIdentifier","src":"2730:9:54"},{"arguments":[{"name":"value0","nativeSrc":"2745:6:54","nodeType":"YulIdentifier","src":"2745:6:54"},{"kind":"number","nativeSrc":"2753:42:54","nodeType":"YulLiteral","src":"2753:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2741:3:54","nodeType":"YulIdentifier","src":"2741:3:54"},"nativeSrc":"2741:55:54","nodeType":"YulFunctionCall","src":"2741:55:54"}],"functionName":{"name":"mstore","nativeSrc":"2723:6:54","nodeType":"YulIdentifier","src":"2723:6:54"},"nativeSrc":"2723:74:54","nodeType":"YulFunctionCall","src":"2723:74:54"},"nativeSrc":"2723:74:54","nodeType":"YulExpressionStatement","src":"2723:74:54"},{"nativeSrc":"2806:12:54","nodeType":"YulVariableDeclaration","src":"2806:12:54","value":{"kind":"number","nativeSrc":"2816:2:54","nodeType":"YulLiteral","src":"2816:2:54","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"2810:2:54","nodeType":"YulTypedName","src":"2810:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2838:9:54","nodeType":"YulIdentifier","src":"2838:9:54"},{"kind":"number","nativeSrc":"2849:2:54","nodeType":"YulLiteral","src":"2849:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2834:3:54","nodeType":"YulIdentifier","src":"2834:3:54"},"nativeSrc":"2834:18:54","nodeType":"YulFunctionCall","src":"2834:18:54"},{"kind":"number","nativeSrc":"2854:2:54","nodeType":"YulLiteral","src":"2854:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"2827:6:54","nodeType":"YulIdentifier","src":"2827:6:54"},"nativeSrc":"2827:30:54","nodeType":"YulFunctionCall","src":"2827:30:54"},"nativeSrc":"2827:30:54","nodeType":"YulExpressionStatement","src":"2827:30:54"},{"nativeSrc":"2866:27:54","nodeType":"YulVariableDeclaration","src":"2866:27:54","value":{"arguments":[{"name":"value1","nativeSrc":"2886:6:54","nodeType":"YulIdentifier","src":"2886:6:54"}],"functionName":{"name":"mload","nativeSrc":"2880:5:54","nodeType":"YulIdentifier","src":"2880:5:54"},"nativeSrc":"2880:13:54","nodeType":"YulFunctionCall","src":"2880:13:54"},"variables":[{"name":"length","nativeSrc":"2870:6:54","nodeType":"YulTypedName","src":"2870:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2913:9:54","nodeType":"YulIdentifier","src":"2913:9:54"},{"kind":"number","nativeSrc":"2924:2:54","nodeType":"YulLiteral","src":"2924:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2909:3:54","nodeType":"YulIdentifier","src":"2909:3:54"},"nativeSrc":"2909:18:54","nodeType":"YulFunctionCall","src":"2909:18:54"},{"name":"length","nativeSrc":"2929:6:54","nodeType":"YulIdentifier","src":"2929:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2902:6:54","nodeType":"YulIdentifier","src":"2902:6:54"},"nativeSrc":"2902:34:54","nodeType":"YulFunctionCall","src":"2902:34:54"},"nativeSrc":"2902:34:54","nodeType":"YulExpressionStatement","src":"2902:34:54"},{"nativeSrc":"2945:10:54","nodeType":"YulVariableDeclaration","src":"2945:10:54","value":{"kind":"number","nativeSrc":"2954:1:54","nodeType":"YulLiteral","src":"2954:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2949:1:54","nodeType":"YulTypedName","src":"2949:1:54","type":""}]},{"body":{"nativeSrc":"3014:90:54","nodeType":"YulBlock","src":"3014:90:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3043:9:54","nodeType":"YulIdentifier","src":"3043:9:54"},{"name":"i","nativeSrc":"3054:1:54","nodeType":"YulIdentifier","src":"3054:1:54"}],"functionName":{"name":"add","nativeSrc":"3039:3:54","nodeType":"YulIdentifier","src":"3039:3:54"},"nativeSrc":"3039:17:54","nodeType":"YulFunctionCall","src":"3039:17:54"},{"kind":"number","nativeSrc":"3058:2:54","nodeType":"YulLiteral","src":"3058:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3035:3:54","nodeType":"YulIdentifier","src":"3035:3:54"},"nativeSrc":"3035:26:54","nodeType":"YulFunctionCall","src":"3035:26:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"3077:6:54","nodeType":"YulIdentifier","src":"3077:6:54"},{"name":"i","nativeSrc":"3085:1:54","nodeType":"YulIdentifier","src":"3085:1:54"}],"functionName":{"name":"add","nativeSrc":"3073:3:54","nodeType":"YulIdentifier","src":"3073:3:54"},"nativeSrc":"3073:14:54","nodeType":"YulFunctionCall","src":"3073:14:54"},{"name":"_1","nativeSrc":"3089:2:54","nodeType":"YulIdentifier","src":"3089:2:54"}],"functionName":{"name":"add","nativeSrc":"3069:3:54","nodeType":"YulIdentifier","src":"3069:3:54"},"nativeSrc":"3069:23:54","nodeType":"YulFunctionCall","src":"3069:23:54"}],"functionName":{"name":"mload","nativeSrc":"3063:5:54","nodeType":"YulIdentifier","src":"3063:5:54"},"nativeSrc":"3063:30:54","nodeType":"YulFunctionCall","src":"3063:30:54"}],"functionName":{"name":"mstore","nativeSrc":"3028:6:54","nodeType":"YulIdentifier","src":"3028:6:54"},"nativeSrc":"3028:66:54","nodeType":"YulFunctionCall","src":"3028:66:54"},"nativeSrc":"3028:66:54","nodeType":"YulExpressionStatement","src":"3028:66:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2975:1:54","nodeType":"YulIdentifier","src":"2975:1:54"},{"name":"length","nativeSrc":"2978:6:54","nodeType":"YulIdentifier","src":"2978:6:54"}],"functionName":{"name":"lt","nativeSrc":"2972:2:54","nodeType":"YulIdentifier","src":"2972:2:54"},"nativeSrc":"2972:13:54","nodeType":"YulFunctionCall","src":"2972:13:54"},"nativeSrc":"2964:140:54","nodeType":"YulForLoop","post":{"nativeSrc":"2986:19:54","nodeType":"YulBlock","src":"2986:19:54","statements":[{"nativeSrc":"2988:15:54","nodeType":"YulAssignment","src":"2988:15:54","value":{"arguments":[{"name":"i","nativeSrc":"2997:1:54","nodeType":"YulIdentifier","src":"2997:1:54"},{"name":"_1","nativeSrc":"3000:2:54","nodeType":"YulIdentifier","src":"3000:2:54"}],"functionName":{"name":"add","nativeSrc":"2993:3:54","nodeType":"YulIdentifier","src":"2993:3:54"},"nativeSrc":"2993:10:54","nodeType":"YulFunctionCall","src":"2993:10:54"},"variableNames":[{"name":"i","nativeSrc":"2988:1:54","nodeType":"YulIdentifier","src":"2988:1:54"}]}]},"pre":{"nativeSrc":"2968:3:54","nodeType":"YulBlock","src":"2968:3:54","statements":[]},"src":"2964:140:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3128:9:54","nodeType":"YulIdentifier","src":"3128:9:54"},{"name":"length","nativeSrc":"3139:6:54","nodeType":"YulIdentifier","src":"3139:6:54"}],"functionName":{"name":"add","nativeSrc":"3124:3:54","nodeType":"YulIdentifier","src":"3124:3:54"},"nativeSrc":"3124:22:54","nodeType":"YulFunctionCall","src":"3124:22:54"},{"kind":"number","nativeSrc":"3148:2:54","nodeType":"YulLiteral","src":"3148:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3120:3:54","nodeType":"YulIdentifier","src":"3120:3:54"},"nativeSrc":"3120:31:54","nodeType":"YulFunctionCall","src":"3120:31:54"},{"kind":"number","nativeSrc":"3153:1:54","nodeType":"YulLiteral","src":"3153:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3113:6:54","nodeType":"YulIdentifier","src":"3113:6:54"},"nativeSrc":"3113:42:54","nodeType":"YulFunctionCall","src":"3113:42:54"},"nativeSrc":"3113:42:54","nodeType":"YulExpressionStatement","src":"3113:42:54"},{"nativeSrc":"3164:121:54","nodeType":"YulAssignment","src":"3164:121:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3180:9:54","nodeType":"YulIdentifier","src":"3180:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3199:6:54","nodeType":"YulIdentifier","src":"3199:6:54"},{"kind":"number","nativeSrc":"3207:2:54","nodeType":"YulLiteral","src":"3207:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3195:3:54","nodeType":"YulIdentifier","src":"3195:3:54"},"nativeSrc":"3195:15:54","nodeType":"YulFunctionCall","src":"3195:15:54"},{"kind":"number","nativeSrc":"3212:66:54","nodeType":"YulLiteral","src":"3212:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"3191:3:54","nodeType":"YulIdentifier","src":"3191:3:54"},"nativeSrc":"3191:88:54","nodeType":"YulFunctionCall","src":"3191:88:54"}],"functionName":{"name":"add","nativeSrc":"3176:3:54","nodeType":"YulIdentifier","src":"3176:3:54"},"nativeSrc":"3176:104:54","nodeType":"YulFunctionCall","src":"3176:104:54"},{"kind":"number","nativeSrc":"3282:2:54","nodeType":"YulLiteral","src":"3282:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3172:3:54","nodeType":"YulIdentifier","src":"3172:3:54"},"nativeSrc":"3172:113:54","nodeType":"YulFunctionCall","src":"3172:113:54"},"variableNames":[{"name":"tail","nativeSrc":"3164:4:54","nodeType":"YulIdentifier","src":"3164:4:54"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2564:727:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2674:9:54","nodeType":"YulTypedName","src":"2674:9:54","type":""},{"name":"value1","nativeSrc":"2685:6:54","nodeType":"YulTypedName","src":"2685:6:54","type":""},{"name":"value0","nativeSrc":"2693:6:54","nodeType":"YulTypedName","src":"2693:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2704:4:54","nodeType":"YulTypedName","src":"2704:4:54","type":""}],"src":"2564:727:54"},{"body":{"nativeSrc":"3374:199:54","nodeType":"YulBlock","src":"3374:199:54","statements":[{"body":{"nativeSrc":"3420:16:54","nodeType":"YulBlock","src":"3420:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3429:1:54","nodeType":"YulLiteral","src":"3429:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3432:1:54","nodeType":"YulLiteral","src":"3432:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3422:6:54","nodeType":"YulIdentifier","src":"3422:6:54"},"nativeSrc":"3422:12:54","nodeType":"YulFunctionCall","src":"3422:12:54"},"nativeSrc":"3422:12:54","nodeType":"YulExpressionStatement","src":"3422:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3395:7:54","nodeType":"YulIdentifier","src":"3395:7:54"},{"name":"headStart","nativeSrc":"3404:9:54","nodeType":"YulIdentifier","src":"3404:9:54"}],"functionName":{"name":"sub","nativeSrc":"3391:3:54","nodeType":"YulIdentifier","src":"3391:3:54"},"nativeSrc":"3391:23:54","nodeType":"YulFunctionCall","src":"3391:23:54"},{"kind":"number","nativeSrc":"3416:2:54","nodeType":"YulLiteral","src":"3416:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3387:3:54","nodeType":"YulIdentifier","src":"3387:3:54"},"nativeSrc":"3387:32:54","nodeType":"YulFunctionCall","src":"3387:32:54"},"nativeSrc":"3384:52:54","nodeType":"YulIf","src":"3384:52:54"},{"nativeSrc":"3445:29:54","nodeType":"YulVariableDeclaration","src":"3445:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3464:9:54","nodeType":"YulIdentifier","src":"3464:9:54"}],"functionName":{"name":"mload","nativeSrc":"3458:5:54","nodeType":"YulIdentifier","src":"3458:5:54"},"nativeSrc":"3458:16:54","nodeType":"YulFunctionCall","src":"3458:16:54"},"variables":[{"name":"value","nativeSrc":"3449:5:54","nodeType":"YulTypedName","src":"3449:5:54","type":""}]},{"body":{"nativeSrc":"3527:16:54","nodeType":"YulBlock","src":"3527:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3536:1:54","nodeType":"YulLiteral","src":"3536:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3539:1:54","nodeType":"YulLiteral","src":"3539:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3529:6:54","nodeType":"YulIdentifier","src":"3529:6:54"},"nativeSrc":"3529:12:54","nodeType":"YulFunctionCall","src":"3529:12:54"},"nativeSrc":"3529:12:54","nodeType":"YulExpressionStatement","src":"3529:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3496:5:54","nodeType":"YulIdentifier","src":"3496:5:54"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3517:5:54","nodeType":"YulIdentifier","src":"3517:5:54"}],"functionName":{"name":"iszero","nativeSrc":"3510:6:54","nodeType":"YulIdentifier","src":"3510:6:54"},"nativeSrc":"3510:13:54","nodeType":"YulFunctionCall","src":"3510:13:54"}],"functionName":{"name":"iszero","nativeSrc":"3503:6:54","nodeType":"YulIdentifier","src":"3503:6:54"},"nativeSrc":"3503:21:54","nodeType":"YulFunctionCall","src":"3503:21:54"}],"functionName":{"name":"eq","nativeSrc":"3493:2:54","nodeType":"YulIdentifier","src":"3493:2:54"},"nativeSrc":"3493:32:54","nodeType":"YulFunctionCall","src":"3493:32:54"}],"functionName":{"name":"iszero","nativeSrc":"3486:6:54","nodeType":"YulIdentifier","src":"3486:6:54"},"nativeSrc":"3486:40:54","nodeType":"YulFunctionCall","src":"3486:40:54"},"nativeSrc":"3483:60:54","nodeType":"YulIf","src":"3483:60:54"},{"nativeSrc":"3552:15:54","nodeType":"YulAssignment","src":"3552:15:54","value":{"name":"value","nativeSrc":"3562:5:54","nodeType":"YulIdentifier","src":"3562:5:54"},"variableNames":[{"name":"value0","nativeSrc":"3552:6:54","nodeType":"YulIdentifier","src":"3552:6:54"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"3296:277:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3340:9:54","nodeType":"YulTypedName","src":"3340:9:54","type":""},{"name":"dataEnd","nativeSrc":"3351:7:54","nodeType":"YulTypedName","src":"3351:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3363:6:54","nodeType":"YulTypedName","src":"3363:6:54","type":""}],"src":"3296:277:54"},{"body":{"nativeSrc":"3752:163:54","nodeType":"YulBlock","src":"3752:163:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3769:9:54","nodeType":"YulIdentifier","src":"3769:9:54"},{"kind":"number","nativeSrc":"3780:2:54","nodeType":"YulLiteral","src":"3780:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3762:6:54","nodeType":"YulIdentifier","src":"3762:6:54"},"nativeSrc":"3762:21:54","nodeType":"YulFunctionCall","src":"3762:21:54"},"nativeSrc":"3762:21:54","nodeType":"YulExpressionStatement","src":"3762:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3803:9:54","nodeType":"YulIdentifier","src":"3803:9:54"},{"kind":"number","nativeSrc":"3814:2:54","nodeType":"YulLiteral","src":"3814:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3799:3:54","nodeType":"YulIdentifier","src":"3799:3:54"},"nativeSrc":"3799:18:54","nodeType":"YulFunctionCall","src":"3799:18:54"},{"kind":"number","nativeSrc":"3819:2:54","nodeType":"YulLiteral","src":"3819:2:54","type":"","value":"13"}],"functionName":{"name":"mstore","nativeSrc":"3792:6:54","nodeType":"YulIdentifier","src":"3792:6:54"},"nativeSrc":"3792:30:54","nodeType":"YulFunctionCall","src":"3792:30:54"},"nativeSrc":"3792:30:54","nodeType":"YulExpressionStatement","src":"3792:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3842:9:54","nodeType":"YulIdentifier","src":"3842:9:54"},{"kind":"number","nativeSrc":"3853:2:54","nodeType":"YulLiteral","src":"3853:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3838:3:54","nodeType":"YulIdentifier","src":"3838:3:54"},"nativeSrc":"3838:18:54","nodeType":"YulFunctionCall","src":"3838:18:54"},{"hexValue":"6163636573732064656e696564","kind":"string","nativeSrc":"3858:15:54","nodeType":"YulLiteral","src":"3858:15:54","type":"","value":"access denied"}],"functionName":{"name":"mstore","nativeSrc":"3831:6:54","nodeType":"YulIdentifier","src":"3831:6:54"},"nativeSrc":"3831:43:54","nodeType":"YulFunctionCall","src":"3831:43:54"},"nativeSrc":"3831:43:54","nodeType":"YulExpressionStatement","src":"3831:43:54"},{"nativeSrc":"3883:26:54","nodeType":"YulAssignment","src":"3883:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3895:9:54","nodeType":"YulIdentifier","src":"3895:9:54"},{"kind":"number","nativeSrc":"3906:2:54","nodeType":"YulLiteral","src":"3906:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3891:3:54","nodeType":"YulIdentifier","src":"3891:3:54"},"nativeSrc":"3891:18:54","nodeType":"YulFunctionCall","src":"3891:18:54"},"variableNames":[{"name":"tail","nativeSrc":"3883:4:54","nodeType":"YulIdentifier","src":"3883:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3578:337:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3729:9:54","nodeType":"YulTypedName","src":"3729:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3743:4:54","nodeType":"YulTypedName","src":"3743:4:54","type":""}],"src":"3578:337:54"},{"body":{"nativeSrc":"4094:170:54","nodeType":"YulBlock","src":"4094:170:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4111:9:54","nodeType":"YulIdentifier","src":"4111:9:54"},{"kind":"number","nativeSrc":"4122:2:54","nodeType":"YulLiteral","src":"4122:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4104:6:54","nodeType":"YulIdentifier","src":"4104:6:54"},"nativeSrc":"4104:21:54","nodeType":"YulFunctionCall","src":"4104:21:54"},"nativeSrc":"4104:21:54","nodeType":"YulExpressionStatement","src":"4104:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4145:9:54","nodeType":"YulIdentifier","src":"4145:9:54"},{"kind":"number","nativeSrc":"4156:2:54","nodeType":"YulLiteral","src":"4156:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4141:3:54","nodeType":"YulIdentifier","src":"4141:3:54"},"nativeSrc":"4141:18:54","nodeType":"YulFunctionCall","src":"4141:18:54"},{"kind":"number","nativeSrc":"4161:2:54","nodeType":"YulLiteral","src":"4161:2:54","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"4134:6:54","nodeType":"YulIdentifier","src":"4134:6:54"},"nativeSrc":"4134:30:54","nodeType":"YulFunctionCall","src":"4134:30:54"},"nativeSrc":"4134:30:54","nodeType":"YulExpressionStatement","src":"4134:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4184:9:54","nodeType":"YulIdentifier","src":"4184:9:54"},{"kind":"number","nativeSrc":"4195:2:54","nodeType":"YulLiteral","src":"4195:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4180:3:54","nodeType":"YulIdentifier","src":"4180:3:54"},"nativeSrc":"4180:18:54","nodeType":"YulFunctionCall","src":"4180:18:54"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"4200:22:54","nodeType":"YulLiteral","src":"4200:22:54","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"4173:6:54","nodeType":"YulIdentifier","src":"4173:6:54"},"nativeSrc":"4173:50:54","nodeType":"YulFunctionCall","src":"4173:50:54"},"nativeSrc":"4173:50:54","nodeType":"YulExpressionStatement","src":"4173:50:54"},{"nativeSrc":"4232:26:54","nodeType":"YulAssignment","src":"4232:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4244:9:54","nodeType":"YulIdentifier","src":"4244:9:54"},{"kind":"number","nativeSrc":"4255:2:54","nodeType":"YulLiteral","src":"4255:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4240:3:54","nodeType":"YulIdentifier","src":"4240:3:54"},"nativeSrc":"4240:18:54","nodeType":"YulFunctionCall","src":"4240:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4232:4:54","nodeType":"YulIdentifier","src":"4232:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3920:344:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4071:9:54","nodeType":"YulTypedName","src":"4071:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4085:4:54","nodeType":"YulTypedName","src":"4085:4:54","type":""}],"src":"3920:344:54"},{"body":{"nativeSrc":"4443:166:54","nodeType":"YulBlock","src":"4443:166:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4460:9:54","nodeType":"YulIdentifier","src":"4460:9:54"},{"kind":"number","nativeSrc":"4471:2:54","nodeType":"YulLiteral","src":"4471:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4453:6:54","nodeType":"YulIdentifier","src":"4453:6:54"},"nativeSrc":"4453:21:54","nodeType":"YulFunctionCall","src":"4453:21:54"},"nativeSrc":"4453:21:54","nodeType":"YulExpressionStatement","src":"4453:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4494:9:54","nodeType":"YulIdentifier","src":"4494:9:54"},{"kind":"number","nativeSrc":"4505:2:54","nodeType":"YulLiteral","src":"4505:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4490:3:54","nodeType":"YulIdentifier","src":"4490:3:54"},"nativeSrc":"4490:18:54","nodeType":"YulFunctionCall","src":"4490:18:54"},{"kind":"number","nativeSrc":"4510:2:54","nodeType":"YulLiteral","src":"4510:2:54","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"4483:6:54","nodeType":"YulIdentifier","src":"4483:6:54"},"nativeSrc":"4483:30:54","nodeType":"YulFunctionCall","src":"4483:30:54"},"nativeSrc":"4483:30:54","nodeType":"YulExpressionStatement","src":"4483:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4533:9:54","nodeType":"YulIdentifier","src":"4533:9:54"},{"kind":"number","nativeSrc":"4544:2:54","nodeType":"YulLiteral","src":"4544:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4529:3:54","nodeType":"YulIdentifier","src":"4529:3:54"},"nativeSrc":"4529:18:54","nodeType":"YulFunctionCall","src":"4529:18:54"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"4549:18:54","nodeType":"YulLiteral","src":"4549:18:54","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"4522:6:54","nodeType":"YulIdentifier","src":"4522:6:54"},"nativeSrc":"4522:46:54","nodeType":"YulFunctionCall","src":"4522:46:54"},"nativeSrc":"4522:46:54","nodeType":"YulExpressionStatement","src":"4522:46:54"},{"nativeSrc":"4577:26:54","nodeType":"YulAssignment","src":"4577:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4589:9:54","nodeType":"YulIdentifier","src":"4589:9:54"},{"kind":"number","nativeSrc":"4600:2:54","nodeType":"YulLiteral","src":"4600:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4585:3:54","nodeType":"YulIdentifier","src":"4585:3:54"},"nativeSrc":"4585:18:54","nodeType":"YulFunctionCall","src":"4585:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4577:4:54","nodeType":"YulIdentifier","src":"4577:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4269:340:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4420:9:54","nodeType":"YulTypedName","src":"4420:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4434:4:54","nodeType":"YulTypedName","src":"4434:4:54","type":""}],"src":"4269:340:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint16t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\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    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        let _1 := 32\n        mstore(add(headStart, 32), 64)\n        let length := mload(value1)\n        mstore(add(headStart, 64), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n        }\n        mstore(add(add(headStart, length), 96), 0)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 96)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"access denied\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c57806393a61d6c1161006657806393a61d6c146101dc578063b4a0bdf3146101fc578063e0354d7f1461021c578063f2fde38b1461023c57600080fd5b8063715018a6146100f75780638456cb59146101955780638da5cb5b1461019d57600080fd5b80633f4ba83a116100bd5780633f4ba83a1461013f5780634f4ba0f4146101475780635c975abb1461016757600080fd5b80630e32cb86146100e45780631183a3b2146100f95780632488eec81461012c575b600080fd5b6100f76100f2366004610912565b61024f565b005b610119610107366004610966565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6100f761013a366004610981565b6102ee565b6100f7610391565b610119610155366004610966565b60026020526000908152604090205481565b60005474010000000000000000000000000000000000000000900460ff166040519015158152602001610123565b6100f76103d9565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610123565b6101196101ea366004610966565b60046020526000908152604090205481565b6001546101b79073ffffffffffffffffffffffffffffffffffffffff1681565b61011961022a366004610966565b60056020526000908152604090205481565b6100f761024a366004610912565b61041f565b6102576104db565b6102608161055c565b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61032c6040518060400160405280602081526020017f7365744d61784461696c794c696d69742875696e7431362c75696e74323536298152506105a9565b61ffff82166000818152600260209081526040918290205482519081529081018490527f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693910160405180910390a261ffff909116600090815260026020526040902055565b6103cf6040518060400160405280600981526020017f756e7061757365282900000000000000000000000000000000000000000000008152506105a9565b6103d76106a8565b565b6104176040518060400160405280600781526020017f70617573652829000000000000000000000000000000000000000000000000008152506105a9565b6103d7610725565b6104276104db565b73ffffffffffffffffffffffffffffffffffffffff81166104cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104d881610794565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c6565b73ffffffffffffffffffffffffffffffffffffffff81166104d8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906318c5e8ab9061060190339085906004016109ab565b602060405180830381865afa15801561061e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106429190610a36565b6104d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6163636573732064656e6965640000000000000000000000000000000000000060448201526064016104c6565b6106b0610809565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61072d61088d565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586106fb3390565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005474010000000000000000000000000000000000000000900460ff166103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104c6565b60005474010000000000000000000000000000000000000000900460ff16156103d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016104c6565b60006020828403121561092457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461094857600080fd5b9392505050565b803561ffff8116811461096157600080fd5b919050565b60006020828403121561097857600080fd5b6109488261094f565b6000806040838503121561099457600080fd5b61099d8361094f565b946020939093013593505050565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109f6578581018301518582016060015282016109da565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116850101925050509392505050565b600060208284031215610a4857600080fd5b8151801515811461094857600080fdfea2646970667358221220cfe99bea710d73a0ec5f4b2b5053cde02581c744d1a4487ea4e22be48575b9a464736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x93A61D6C GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x1FC JUMPI DUP1 PUSH4 0xE0354D7F EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x23C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x13F JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x1183A3B2 EQ PUSH2 0xF9 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x912 JUMP JUMPDEST PUSH2 0x24F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x119 PUSH2 0x107 CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x981 JUMP JUMPDEST PUSH2 0x2EE JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x123 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x3D9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x123 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1B7 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x22A CALLDATASIZE PUSH1 0x4 PUSH2 0x966 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0x912 JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH2 0x257 PUSH2 0x4DB JUMP JUMPDEST PUSH2 0x260 DUP2 PUSH2 0x55C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x32C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D61784461696C794C696D69742875696E7431362C75696E7432353629 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x3CF PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E706175736528290000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x3D7 PUSH2 0x6A8 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x417 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061757365282900000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x3D7 PUSH2 0x725 JUMP JUMPDEST PUSH2 0x427 PUSH2 0x4DB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D8 DUP2 PUSH2 0x794 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x601 SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x61E 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 0x642 SWAP2 SWAP1 PUSH2 0xA36 JUMP JUMPDEST PUSH2 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6163636573732064656E69656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH2 0x6B0 PUSH2 0x809 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x72D PUSH2 0x88D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x6FB CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x924 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x961 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x978 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x948 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99D DUP4 PUSH2 0x94F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 PUSH1 0x20 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9F6 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x9DA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x60 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCF 0xE9 SWAP12 0xEA PUSH18 0xD73A0EC5F4B2B5053CDE02581C744D1A448 PUSH31 0xA4E22BE48575B9A464736F6C63430008190033000000000000000000000000 ","sourceMap":"696:5319:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3461:280;;;;;;:::i;:::-;;:::i;:::-;;1136:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;827:25:54;;;815:2;800:18;1136:65:26;;;;;;;;2436:269;;;;;;:::i;:::-;;:::i;3067:92::-;;;:::i;963:56::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1615:84:17;1662:4;1685:7;;;;;;1615:84;;1285:14:54;;1278:22;1260:41;;1248:2;1233:18;1615:84:17;1120:187:54;2843:86:26;;;:::i;1201:85:16:-;1247:7;1273:6;;;1201:85;;;1488:42:54;1476:55;;;1458:74;;1446:2;1431:18;1201:85:16;1312:226:54;1307:64:26;;;;;;:::i;:::-;;;;;;;;;;;;;;836:35;;;;;;;;;1481:68;;;;;;:::i;:::-;;;;;;;;;;;;;;2081:198:16;;;;;;:::i;:::-;;:::i;3461:280:26:-;1094:13:16;:11;:13::i;:::-;3554:43:26::1;3575:21;3554:20;:43::i;:::-;3636:20;::::0;3612:68:::1;::::0;::::1;::::0;;::::1;::::0;3636:20:::1;::::0;3612:68:::1;::::0;3636:20:::1;::::0;3612:68:::1;3690:20;:44:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;3461:280::o;2436:269::-;2514:50;;;;;;;;;;;;;;;;;;:14;:50::i;:::-;2579:68;;;2606:32;;;;:22;:32;;;;;;;;;;2579:68;;1717:25:54;;;1758:18;;;1751:34;;;2579:68:26;;1690:18:54;2579:68:26;;;;;;;2657:32;;;;;;;;:22;:32;;;;;:41;2436:269::o;3067:92::-;3105:27;;;;;;;;;;;;;;;;;;:14;:27::i;:::-;3142:10;:8;:10::i;:::-;3067:92::o;2843:86::-;2879:25;;;;;;;;;;;;;;;;;;:14;:25::i;:::-;2914:8;:6;:8::i;2081:198:16:-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;::::1;::::0;;1998:2:54;2161:73:16::1;::::0;::::1;1980:21:54::0;2037:2;2017:18;;;2010:30;2076:34;2056:18;;;2049:62;2147:8;2127:18;;;2120:36;2173:19;;2161:73:16::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;719:10:19;1422:23:16;1414:68;;;;;;;2405:2:54;1414:68:16;;;2387:21:54;;;2424:18;;;2417:30;2483:34;2463:18;;;2456:62;2535:18;;1414:68:16;2203:356:54;485:136:24;548:22;;;544:75;;589:23;;;;;;;;;;;;;;5783:230:26;5904:20;;5880:87;;;;;5904:20;;;;;5880:61;;:87;;5942:10;;5954:12;;5880:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5859:147;;;;;;;3780:2:54;5859:147:26;;;3762:21:54;3819:2;3799:18;;;3792:30;3858:15;3838:18;;;3831:43;3891:18;;5859:147:26;3578:337:54;2433:117:17;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;;::::1;::::0;;2521:22:::1;719:10:19::0;2530:12:17::1;2521:22;::::0;1488:42:54;1476:55;;;1458:74;;1446:2;1431:18;2521:22:17::1;;;;;;;2433:117::o:0;2186:115::-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;;::::1;::::0;::::1;::::0;;2274:20:::1;2281:12;719:10:19::0;;640:96;2433:187:16;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;1945:106:17:-;1662:4;1685:7;;;;;;2003:41;;;;;;;4122:2:54;2003:41:17;;;4104:21:54;4161:2;4141:18;;;4134:30;4200:22;4180:18;;;4173:50;4240:18;;2003:41:17;3920:344:54;1767:106:17;1662:4;1685:7;;;;;;1836:9;1828:38;;;;;;;4471:2:54;1828:38:17;;;4453:21:54;4510:2;4490:18;;;4483:30;4549:18;4529;;;4522:46;4585:18;;1828:38:17;4269:340:54;14:309;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:54:o;328:159::-;395:20;;455:6;444:18;;434:29;;424:57;;477:1;474;467:12;424:57;328:159;;;:::o;492:184::-;550:6;603:2;591:9;582:7;578:23;574:32;571:52;;;619:1;616;609:12;571:52;642:28;660:9;642:28;:::i;863:252::-;930:6;938;991:2;979:9;970:7;966:23;962:32;959:52;;;1007:1;1004;997:12;959:52;1030:28;1048:9;1030:28;:::i;:::-;1020:38;1105:2;1090:18;;;;1077:32;;-1:-1:-1;;;863:252:54:o;2564:727::-;2753:42;2745:6;2741:55;2730:9;2723:74;2704:4;2816:2;2854;2849;2838:9;2834:18;2827:30;2886:6;2880:13;2929:6;2924:2;2913:9;2909:18;2902:34;2954:1;2964:140;2978:6;2975:1;2972:13;2964:140;;;3073:14;;;3069:23;;3063:30;3039:17;;;3058:2;3035:26;3028:66;2993:10;;2964:140;;;2968:3;3153:1;3148:2;3139:6;3128:9;3124:22;3120:31;3113:42;3282:2;3212:66;3207:2;3199:6;3195:15;3191:88;3180:9;3176:104;3172:113;3164:121;;;;2564:727;;;;;:::o;3296:277::-;3363:6;3416:2;3404:9;3395:7;3391:23;3387:32;3384:52;;;3432:1;3429;3422:12;3384:52;3464:9;3458:16;3517:5;3510:13;3503:21;3496:5;3493:32;3483:60;;3539:1;3536;3529:12"},"gasEstimates":{"creation":{"codeDepositCost":"540400","executionCost":"infinite","totalCost":"infinite"},"external":{"accessControlManager()":"2357","chainIdToLast24HourCommandsSent(uint16)":"2542","chainIdToLast24HourWindowStart(uint16)":"2518","chainIdToLastProposalSentTimestamp(uint16)":"2562","chainIdToMaxDailyLimit(uint16)":"2541","owner()":"2363","pause()":"infinite","paused()":"2370","renounceOwnership()":"143","setAccessControlManager(address)":"30367","setMaxDailyLimit(uint16,uint256)":"infinite","transferOwnership(address)":"28323","unpause()":"infinite"},"internal":{"_ensureAllowed(string memory)":"infinite","_isEligibleToSend(uint16,uint256)":"infinite"}},"methodIdentifiers":{"accessControlManager()":"b4a0bdf3","chainIdToLast24HourCommandsSent(uint16)":"1183a3b2","chainIdToLast24HourWindowStart(uint16)":"93a61d6c","chainIdToLastProposalSentTimestamp(uint16)":"e0354d7f","chainIdToMaxDailyLimit(uint16)":"4f4ba0f4","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setMaxDailyLimit(uint16,uint256)":"2488eec8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"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\":\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourCommandsSent\",\"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\":\"chainIdToLastProposalSentTimestamp\",\"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\":[],\"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\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"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\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"details\":\"This contract is the base for the Omnichain controller source contracts. It provides functionality related to daily command limits and pausability.\",\"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\":{\"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.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits NewAccessControlManager with old and new access control manager addresses\",\"params\":{\"accessControlManager_\":\"The new address of the Access Control Manager\"}},\"setMaxDailyLimit(uint16,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\",\"params\":{\"chainId_\":\"Destination chain id\",\"limit_\":\"Number of commands\"}},\"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\"}},\"title\":\"BaseOmnichainControllerSrc\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"SetMaxDailyLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit of commands from the local chain is modified\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"ACM (Access Control Manager) contract address\"},\"chainIdToLast24HourCommandsSent(uint16)\":{\"notice\":\"Total commands transferred within the last 24-hour window from the local chain\"},\"chainIdToLast24HourWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from the local chain\"},\"chainIdToLastProposalSentTimestamp(uint16)\":{\"notice\":\"Timestamp when the last proposal sent from the local chain to dest chain\"},\"chainIdToMaxDailyLimit(uint16)\":{\"notice\":\"Maximum daily limit for commands from the local chain\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishap\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of Access Control Manager (ACM)\"},\"setMaxDailyLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of daily (24 Hour) command amount\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/BaseOmnichainControllerSrc.sol\":\"BaseOmnichainControllerSrc\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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.7.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 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\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"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/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/Cross-chain/BaseOmnichainControllerSrc.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n\\npragma solidity 0.8.25;\\n\\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\\\";\\nimport { IAccessControlManagerV8 } from \\\"./../Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title BaseOmnichainControllerSrc\\n * @dev This contract is the base for the Omnichain controller source contracts.\\n * It provides functionality related to daily command limits and pausability.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\ncontract BaseOmnichainControllerSrc is Ownable, Pausable {\\n    /**\\n     * @notice ACM (Access Control Manager) contract address\\n     */\\n    address public accessControlManager;\\n\\n    /**\\n     * @notice Maximum daily limit for commands from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\\n\\n    /**\\n     * @notice Total commands transferred within the last 24-hour window from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourCommandsSent;\\n\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\\n    /**\\n     * @notice Timestamp when the last proposal sent from the local chain to dest chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLastProposalSentTimestamp;\\n\\n    /**\\n     * @notice Emitted when the maximum daily limit of commands from the local chain is modified\\n     */\\n    event SetMaxDailyLimit(uint16 indexed chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /*\\n     * @notice Emitted when the address of ACM is updated\\n     */\\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\\n\\n    constructor(address accessControlManager_) {\\n        ensureNonzeroAddress(accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Sets the limit of daily (24 Hour) command amount\\n     * @param chainId_ Destination chain id\\n     * @param limit_ Number of commands\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\\n     */\\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external {\\n        _ensureAllowed(\\\"setMaxDailyLimit(uint16,uint256)\\\");\\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\\n        chainIdToMaxDailyLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Triggers the paused state of the controller\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function pause() external {\\n        _ensureAllowed(\\\"pause()\\\");\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers the resume state of the controller\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function unpause() external {\\n        _ensureAllowed(\\\"unpause()\\\");\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Sets the address of Access Control Manager (ACM)\\n     * @param accessControlManager_ The new address of the Access Control Manager\\n     * @custom:access Only owner\\n     * @custom:event Emits NewAccessControlManager with old and new access control manager addresses\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        ensureNonzeroAddress(accessControlManager_);\\n        emit NewAccessControlManager(accessControlManager, accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishap\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Check eligibility to send commands\\n     * @param dstChainId_ Destination chain id\\n     * @param noOfCommands_ Number of commands to send\\n     */\\n    function _isEligibleToSend(uint16 dstChainId_, uint256 noOfCommands_) internal {\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        uint256 commandsSentInWindow = chainIdToLast24HourCommandsSent[dstChainId_];\\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n        uint256 lastProposalSentTimestamp = chainIdToLastProposalSentTimestamp[dstChainId_];\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\\n            commandsSentInWindow = noOfCommands_;\\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\\n        } else {\\n            commandsSentInWindow += noOfCommands_;\\n        }\\n\\n        // Revert if the amount exceeds the daily limit\\n        require(commandsSentInWindow <= maxDailyLimit, \\\"Daily Transaction Limit Exceeded\\\");\\n        // Revert if the last proposal is already sent in current block i.e multiple proposals cannot be sent within the same block.timestamp\\n        require(lastProposalSentTimestamp != currentBlockTimestamp, \\\"Multiple bridging in a proposal\\\");\\n\\n        // Update the amount for the 24-hour window\\n        chainIdToLast24HourCommandsSent[dstChainId_] = commandsSentInWindow;\\n        // Update the last sent proposal timestamp\\n        chainIdToLastProposalSentTimestamp[dstChainId_] = currentBlockTimestamp;\\n    }\\n\\n    /**\\n     * @notice Ensure that the caller has permission to execute a specific function\\n     * @param functionSig_ Function signature to be checked for permission\\n     */\\n    function _ensureAllowed(string memory functionSig_) internal view {\\n        require(\\n            IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_),\\n            \\\"access denied\\\"\\n        );\\n    }\\n}\\n\",\"keccak256\":\"0x6af3fad580da005d3c0f7485eb17c3a0a42ffea7e1c4b9062ae085db7b9bcba5\",\"license\":\"BSD-3-Clause\"},\"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":4075,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":4198,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"_paused","offset":20,"slot":"0","type":"t_bool"},{"astId":5633,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"accessControlManager","offset":0,"slot":"1","type":"t_address"},{"astId":5638,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"chainIdToMaxDailyLimit","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_uint256)"},{"astId":5643,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"chainIdToLast24HourCommandsSent","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":5648,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"chainIdToLast24HourWindowStart","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_uint256)"},{"astId":5653,"contract":"contracts/Cross-chain/BaseOmnichainControllerSrc.sol:BaseOmnichainControllerSrc","label":"chainIdToLastProposalSentTimestamp","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"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":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"SetMaxDailyLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit of commands from the local chain is modified"}},"kind":"user","methods":{"accessControlManager()":{"notice":"ACM (Access Control Manager) contract address"},"chainIdToLast24HourCommandsSent(uint16)":{"notice":"Total commands transferred within the last 24-hour window from the local chain"},"chainIdToLast24HourWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from the local chain"},"chainIdToLastProposalSentTimestamp(uint16)":{"notice":"Timestamp when the last proposal sent from the local chain to dest chain"},"chainIdToMaxDailyLimit(uint16)":{"notice":"Maximum daily limit for commands from the local chain"},"pause()":{"notice":"Triggers the paused state of the controller"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishap"},"setAccessControlManager(address)":{"notice":"Sets the address of Access Control Manager (ACM)"},"setMaxDailyLimit(uint16,uint256)":{"notice":"Sets the limit of daily (24 Hour) command amount"},"unpause()":{"notice":"Triggers the resume state of the controller"}},"version":1}}},"contracts/Cross-chain/OmnichainExecutorOwner.sol":{"OmnichainExecutorOwner":{"abi":[{"inputs":[{"internalType":"address","name":"omnichainGovernanceExecutor_","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":true,"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":"OMNICHAIN_GOVERNANCE_EXECUTOR","outputs":[{"internalType":"contract IOmnichainGovernanceExecutor","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":[],"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":"srcChainId_","type":"uint16"},{"internalType":"bytes","name":"srcAddress_","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","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","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"}},"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:event":"Emits SetTrustedRemoteAddress with source chain Id and source address","params":{"srcAddress_":"The address of the contract on the source chain","srcChainId_":"The LayerZero id of a source chain"}},"transferBridgeOwnership(address)":{"custom:access":"Controlled by AccessControlManager","params":{"newOwner_":"New owner of the governanceExecutor"}},"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","params":{"active_":"bool value, should be true to add function","signatures_":"Function signature to be added or removed"}}},"stateVariables":{"OMNICHAIN_GOVERNANCE_EXECUTOR":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"}},"title":"OmnichainExecutorOwner","version":1},"evm":{"bytecode":{"functionDebugData":{"@_5920":{"entryPoint":null,"id":5920,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_3333":{"entryPoint":165,"id":3333,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":353,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1256:54","nodeType":"YulBlock","src":"0:1256:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"95:209:54","nodeType":"YulBlock","src":"95:209:54","statements":[{"body":{"nativeSrc":"141:16:54","nodeType":"YulBlock","src":"141:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:54","nodeType":"YulLiteral","src":"150:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:54","nodeType":"YulLiteral","src":"153:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:54","nodeType":"YulIdentifier","src":"143:6:54"},"nativeSrc":"143:12:54","nodeType":"YulFunctionCall","src":"143:12:54"},"nativeSrc":"143:12:54","nodeType":"YulExpressionStatement","src":"143:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:54","nodeType":"YulIdentifier","src":"116:7:54"},{"name":"headStart","nativeSrc":"125:9:54","nodeType":"YulIdentifier","src":"125:9:54"}],"functionName":{"name":"sub","nativeSrc":"112:3:54","nodeType":"YulIdentifier","src":"112:3:54"},"nativeSrc":"112:23:54","nodeType":"YulFunctionCall","src":"112:23:54"},{"kind":"number","nativeSrc":"137:2:54","nodeType":"YulLiteral","src":"137:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:54","nodeType":"YulIdentifier","src":"108:3:54"},"nativeSrc":"108:32:54","nodeType":"YulFunctionCall","src":"108:32:54"},"nativeSrc":"105:52:54","nodeType":"YulIf","src":"105:52:54"},{"nativeSrc":"166:29:54","nodeType":"YulVariableDeclaration","src":"166:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:54","nodeType":"YulIdentifier","src":"185:9:54"}],"functionName":{"name":"mload","nativeSrc":"179:5:54","nodeType":"YulIdentifier","src":"179:5:54"},"nativeSrc":"179:16:54","nodeType":"YulFunctionCall","src":"179:16:54"},"variables":[{"name":"value","nativeSrc":"170:5:54","nodeType":"YulTypedName","src":"170:5:54","type":""}]},{"body":{"nativeSrc":"258:16:54","nodeType":"YulBlock","src":"258:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:54","nodeType":"YulLiteral","src":"267:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:54","nodeType":"YulLiteral","src":"270:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:54","nodeType":"YulIdentifier","src":"260:6:54"},"nativeSrc":"260:12:54","nodeType":"YulFunctionCall","src":"260:12:54"},"nativeSrc":"260:12:54","nodeType":"YulExpressionStatement","src":"260:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:54","nodeType":"YulIdentifier","src":"217:5:54"},{"arguments":[{"name":"value","nativeSrc":"228:5:54","nodeType":"YulIdentifier","src":"228:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:54","nodeType":"YulLiteral","src":"243:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:54","nodeType":"YulLiteral","src":"248:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:54","nodeType":"YulIdentifier","src":"239:3:54"},"nativeSrc":"239:11:54","nodeType":"YulFunctionCall","src":"239:11:54"},{"kind":"number","nativeSrc":"252:1:54","nodeType":"YulLiteral","src":"252:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:54","nodeType":"YulIdentifier","src":"235:3:54"},"nativeSrc":"235:19:54","nodeType":"YulFunctionCall","src":"235:19:54"}],"functionName":{"name":"and","nativeSrc":"224:3:54","nodeType":"YulIdentifier","src":"224:3:54"},"nativeSrc":"224:31:54","nodeType":"YulFunctionCall","src":"224:31:54"}],"functionName":{"name":"eq","nativeSrc":"214:2:54","nodeType":"YulIdentifier","src":"214:2:54"},"nativeSrc":"214:42:54","nodeType":"YulFunctionCall","src":"214:42:54"}],"functionName":{"name":"iszero","nativeSrc":"207:6:54","nodeType":"YulIdentifier","src":"207:6:54"},"nativeSrc":"207:50:54","nodeType":"YulFunctionCall","src":"207:50:54"},"nativeSrc":"204:70:54","nodeType":"YulIf","src":"204:70:54"},{"nativeSrc":"283:15:54","nodeType":"YulAssignment","src":"283:15:54","value":{"name":"value","nativeSrc":"293:5:54","nodeType":"YulIdentifier","src":"293:5:54"},"variableNames":[{"name":"value0","nativeSrc":"283:6:54","nodeType":"YulIdentifier","src":"283:6:54"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:54","nodeType":"YulTypedName","src":"61:9:54","type":""},{"name":"dataEnd","nativeSrc":"72:7:54","nodeType":"YulTypedName","src":"72:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:54","nodeType":"YulTypedName","src":"84:6:54","type":""}],"src":"14:290:54"},{"body":{"nativeSrc":"483:174:54","nodeType":"YulBlock","src":"483:174:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"500:9:54","nodeType":"YulIdentifier","src":"500:9:54"},{"kind":"number","nativeSrc":"511:2:54","nodeType":"YulLiteral","src":"511:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"493:6:54","nodeType":"YulIdentifier","src":"493:6:54"},"nativeSrc":"493:21:54","nodeType":"YulFunctionCall","src":"493:21:54"},"nativeSrc":"493:21:54","nodeType":"YulExpressionStatement","src":"493:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"534:9:54","nodeType":"YulIdentifier","src":"534:9:54"},{"kind":"number","nativeSrc":"545:2:54","nodeType":"YulLiteral","src":"545:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"530:3:54","nodeType":"YulIdentifier","src":"530:3:54"},"nativeSrc":"530:18:54","nodeType":"YulFunctionCall","src":"530:18:54"},{"kind":"number","nativeSrc":"550:2:54","nodeType":"YulLiteral","src":"550:2:54","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"523:6:54","nodeType":"YulIdentifier","src":"523:6:54"},"nativeSrc":"523:30:54","nodeType":"YulFunctionCall","src":"523:30:54"},"nativeSrc":"523:30:54","nodeType":"YulExpressionStatement","src":"523:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"573:9:54","nodeType":"YulIdentifier","src":"573:9:54"},{"kind":"number","nativeSrc":"584:2:54","nodeType":"YulLiteral","src":"584:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"569:3:54","nodeType":"YulIdentifier","src":"569:3:54"},"nativeSrc":"569:18:54","nodeType":"YulFunctionCall","src":"569:18:54"},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"589:26:54","nodeType":"YulLiteral","src":"589:26:54","type":"","value":"Address must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"562:6:54","nodeType":"YulIdentifier","src":"562:6:54"},"nativeSrc":"562:54:54","nodeType":"YulFunctionCall","src":"562:54:54"},"nativeSrc":"562:54:54","nodeType":"YulExpressionStatement","src":"562:54:54"},{"nativeSrc":"625:26:54","nodeType":"YulAssignment","src":"625:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"637:9:54","nodeType":"YulIdentifier","src":"637:9:54"},{"kind":"number","nativeSrc":"648:2:54","nodeType":"YulLiteral","src":"648:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"633:3:54","nodeType":"YulIdentifier","src":"633:3:54"},"nativeSrc":"633:18:54","nodeType":"YulFunctionCall","src":"633:18:54"},"variableNames":[{"name":"tail","nativeSrc":"625:4:54","nodeType":"YulIdentifier","src":"625:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"309:348:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"460:9:54","nodeType":"YulTypedName","src":"460:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"474:4:54","nodeType":"YulTypedName","src":"474:4:54","type":""}],"src":"309:348:54"},{"body":{"nativeSrc":"836:229:54","nodeType":"YulBlock","src":"836:229:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"853:9:54","nodeType":"YulIdentifier","src":"853:9:54"},{"kind":"number","nativeSrc":"864:2:54","nodeType":"YulLiteral","src":"864:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"846:6:54","nodeType":"YulIdentifier","src":"846:6:54"},"nativeSrc":"846:21:54","nodeType":"YulFunctionCall","src":"846:21:54"},"nativeSrc":"846:21:54","nodeType":"YulExpressionStatement","src":"846:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"887:9:54","nodeType":"YulIdentifier","src":"887:9:54"},{"kind":"number","nativeSrc":"898:2:54","nodeType":"YulLiteral","src":"898:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"883:3:54","nodeType":"YulIdentifier","src":"883:3:54"},"nativeSrc":"883:18:54","nodeType":"YulFunctionCall","src":"883:18:54"},{"kind":"number","nativeSrc":"903:2:54","nodeType":"YulLiteral","src":"903:2:54","type":"","value":"39"}],"functionName":{"name":"mstore","nativeSrc":"876:6:54","nodeType":"YulIdentifier","src":"876:6:54"},"nativeSrc":"876:30:54","nodeType":"YulFunctionCall","src":"876:30:54"},"nativeSrc":"876:30:54","nodeType":"YulExpressionStatement","src":"876:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"926:9:54","nodeType":"YulIdentifier","src":"926:9:54"},{"kind":"number","nativeSrc":"937:2:54","nodeType":"YulLiteral","src":"937:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"922:3:54","nodeType":"YulIdentifier","src":"922:3:54"},"nativeSrc":"922:18:54","nodeType":"YulFunctionCall","src":"922:18:54"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"942:34:54","nodeType":"YulLiteral","src":"942:34:54","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"915:6:54","nodeType":"YulIdentifier","src":"915:6:54"},"nativeSrc":"915:62:54","nodeType":"YulFunctionCall","src":"915:62:54"},"nativeSrc":"915:62:54","nodeType":"YulExpressionStatement","src":"915:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"997:9:54","nodeType":"YulIdentifier","src":"997:9:54"},{"kind":"number","nativeSrc":"1008:2:54","nodeType":"YulLiteral","src":"1008:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"993:3:54","nodeType":"YulIdentifier","src":"993:3:54"},"nativeSrc":"993:18:54","nodeType":"YulFunctionCall","src":"993:18:54"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1013:9:54","nodeType":"YulLiteral","src":"1013:9:54","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"986:6:54","nodeType":"YulIdentifier","src":"986:6:54"},"nativeSrc":"986:37:54","nodeType":"YulFunctionCall","src":"986:37:54"},"nativeSrc":"986:37:54","nodeType":"YulExpressionStatement","src":"986:37:54"},{"nativeSrc":"1032:27:54","nodeType":"YulAssignment","src":"1032:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1044:9:54","nodeType":"YulIdentifier","src":"1044:9:54"},{"kind":"number","nativeSrc":"1055:3:54","nodeType":"YulLiteral","src":"1055:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1040:3:54","nodeType":"YulIdentifier","src":"1040:3:54"},"nativeSrc":"1040:19:54","nodeType":"YulFunctionCall","src":"1040:19:54"},"variableNames":[{"name":"tail","nativeSrc":"1032:4:54","nodeType":"YulIdentifier","src":"1032:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"662:403:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"813:9:54","nodeType":"YulTypedName","src":"813:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"827:4:54","nodeType":"YulTypedName","src":"827:4:54","type":""}],"src":"662:403:54"},{"body":{"nativeSrc":"1167:87:54","nodeType":"YulBlock","src":"1167:87:54","statements":[{"nativeSrc":"1177:26:54","nodeType":"YulAssignment","src":"1177:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1189:9:54","nodeType":"YulIdentifier","src":"1189:9:54"},{"kind":"number","nativeSrc":"1200:2:54","nodeType":"YulLiteral","src":"1200:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1185:3:54","nodeType":"YulIdentifier","src":"1185:3:54"},"nativeSrc":"1185:18:54","nodeType":"YulFunctionCall","src":"1185:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1177:4:54","nodeType":"YulIdentifier","src":"1177:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1219:9:54","nodeType":"YulIdentifier","src":"1219:9:54"},{"arguments":[{"name":"value0","nativeSrc":"1234:6:54","nodeType":"YulIdentifier","src":"1234:6:54"},{"kind":"number","nativeSrc":"1242:4:54","nodeType":"YulLiteral","src":"1242:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1230:3:54","nodeType":"YulIdentifier","src":"1230:3:54"},"nativeSrc":"1230:17:54","nodeType":"YulFunctionCall","src":"1230:17:54"}],"functionName":{"name":"mstore","nativeSrc":"1212:6:54","nodeType":"YulIdentifier","src":"1212:6:54"},"nativeSrc":"1212:36:54","nodeType":"YulFunctionCall","src":"1212:36:54"},"nativeSrc":"1212:36:54","nodeType":"YulExpressionStatement","src":"1212:36:54"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"1070:184:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1136:9:54","nodeType":"YulTypedName","src":"1136:9:54","type":""},{"name":"value0","nativeSrc":"1147:6:54","nodeType":"YulTypedName","src":"1147:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1158:4:54","nodeType":"YulTypedName","src":"1158:4:54","type":""}],"src":"1070:184:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Address must not be zero\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"Initializable: contract is initi\")\n        mstore(add(headStart, 96), \"alizing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051611c6d380380611c6d83398101604081905261002f91610161565b6001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064015b60405180910390fd5b6001600160a01b03811660805261009f6100a5565b50610191565b600054610100900460ff161561010d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610081565b60005460ff908116101561015f576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561017357600080fd5b81516001600160a01b038116811461018a57600080fd5b9392505050565b608051611aac6101c16000396000818161020701528181610357015281816106aa0152610c640152611aac6000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806379ba50971161008c578063b4a0bdf311610066578063b4a0bdf3146103d7578063c4d66de8146103f5578063e30c397814610408578063f2fde38b14610426576100df565b806379ba50971461039e5780638da5cb5b146103a6578063a6c3d165146103c4576100df565b80634bb7453e116100bd5780634bb7453e1461033f5780635f21f75e14610352578063715018a614610301576100df565b80630e32cb86146102ee578063180d295c146103035780633f90b5401461032c575b600080357fffffffff0000000000000000000000000000000000000000000000000000000016815260c9602052604081208054369160609184919061012390611429565b80601f016020809104026020016040519081016040528092919081815260200182805461014f90611429565b801561019c5780601f106101715761010080835404028352916020019161019c565b820191906000526020600020905b81548152906001019060200180831161017f57829003601f168201915b5050505050905080516000036101f95760405162461bcd60e51b815260206004820152601260248201527f46756e6374696f6e206e6f7420666f756e64000000000000000000000000000060448201526064015b60405180910390fd5b61020281610439565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660405161024c92919061147c565b6000604051808303816000865af19150503d8060008114610289576040519150601f19603f3d011682016040523d82523d6000602084013e61028e565b606091505b5091509150816102e05760405162461bcd60e51b815260206004820152600b60248201527f63616c6c206661696c656400000000000000000000000000000000000000000060448201526064016101f0565b805195506020019350505050f35b6103016102fc36600461148c565b610516565b005b6103166103113660046114c9565b61052a565b604051610323919061156f565b60405180910390f35b61030161033a36600461148c565b6105c4565b61030161034d3660046115ce565b610709565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610323565b610301610a90565b60335473ffffffffffffffffffffffffffffffffffffffff16610379565b6103016103d236600461163a565b610b28565b60975473ffffffffffffffffffffffffffffffffffffffff16610379565b61030161040336600461148c565b610cd4565b60655473ffffffffffffffffffffffffffffffffffffffff16610379565b61030161043436600461148c565b610eb1565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab9061049290339086906004016116c6565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d3919061170b565b905080610512573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016101f093929190611728565b5050565b61051e610f61565b61052781610fc8565b50565b60c9602052600090815260409020805461054390611429565b80601f016020809104026020016040519081016040528092919081815260200182805461056f90611429565b80156105bc5780601f10610591576101008083540402835291602001916105bc565b820191906000526020600020905b81548152906001019060200180831161059f57829003601f168201915b505050505081565b6106026040518060400160405280602081526020017f7472616e736665724272696467654f776e657273686970286164647265737329815250610439565b73ffffffffffffffffffffffffffffffffffffffff81166106655760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b6040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b5050505050565b610711610f61565b828181146107875760405162461bcd60e51b815260206004820152602660248201527f496e70757420617272617973206d7573742068617665207468652073616d652060448201527f6c656e677468000000000000000000000000000000000000000000000000000060648201526084016101f0565b60005b81811015610a865760008686838181106107a6576107a661176a565b90506020028101906107b89190611799565b6040516107c692919061147c565b60408051918290039091207fffffffff000000000000000000000000000000000000000000000000000000008116600090815260c960205291822080549193509061081090611429565b80601f016020809104026020016040519081016040528092919081815260200182805461083c90611429565b80156108895780601f1061085e57610100808354040283529160200191610889565b820191906000526020600020905b81548152906001019060200180831161086c57829003601f168201915b505050505090508585848181106108a2576108a261176a565b90506020020160208101906108b791906117fe565b80156108c257508051155b1561099b578787848181106108d9576108d961176a565b90506020028101906108eb9190611799565b7fffffffff000000000000000000000000000000000000000000000000000000008416600090815260c96020526040902091610928919083611897565b5087878481811061093b5761093b61176a565b905060200281019061094d9190611799565b60405161095b92919061147c565b60405190819003812060018252907f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa9060200160405180910390a2610a7c565b8585848181106109ad576109ad61176a565b90506020020160208101906109c291906117fe565b1580156109cf5750805115155b15610a7c577fffffffff000000000000000000000000000000000000000000000000000000008216600090815260c960205260408120610a0e916113db565b878784818110610a2057610a2061176a565b9050602002810190610a329190611799565b604051610a4092919061147c565b60405190819003812060008252907f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa9060200160405180910390a25b505060010161078a565b505050505050565b565b606554339073ffffffffffffffffffffffffffffffffffffffff168114610b1f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016101f0565b610527816110d0565b610b49604051806060016040528060258152602001611a5260259139610439565b8261ffff16600003610b9d5760405162461bcd60e51b815260206004820152601860248201527f436861696e4964206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b610bb2610baa82846119b1565b60601c611101565b60148114610c275760405162461bcd60e51b8152602060048201526024808201527f536f757263652061646472657373206d7573742062652032302062797465732060448201527f6c6f6e670000000000000000000000000000000000000000000000000000000060648201526084016101f0565b6040517fa6c3d16500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a6c3d16590610c9d908690869086906004016119f9565b600060405180830381600087803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b50505050505050565b600054610100900460ff1615808015610cf45750600054600160ff909116105b80610d0e5750303b158015610d0e575060005460ff166001145b610d805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101f0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8216610e415760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b610e4a8261114e565b801561051257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b610eb9610f61565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610f1c60335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a8e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101f0565b73ffffffffffffffffffffffffffffffffffffffff81166110515760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016101f0565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610ea5565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610527816111dc565b73ffffffffffffffffffffffffffffffffffffffff8116610527576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff166111cb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b6111d3611253565b610527816112d8565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166112d05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b610a8e611355565b600054610100900460ff1661051e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b600054610100900460ff166113d25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b610a8e336110d0565b5080546113e790611429565b6000825580601f106113f7575050565b601f01602090049060005260206000209081019061052791905b808211156114255760008155600101611411565b5090565b600181811c9082168061143d57607f821691505b602082108103611476577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b60006020828403121561149e57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146114c257600080fd5b9392505050565b6000602082840312156114db57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146114c257600080fd5b6000815180845260005b8181101561153157602081850181015186830182015201611515565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006114c2602083018461150b565b60008083601f84011261159457600080fd5b50813567ffffffffffffffff8111156115ac57600080fd5b6020830191508360208260051b85010111156115c757600080fd5b9250929050565b600080600080604085870312156115e457600080fd5b843567ffffffffffffffff808211156115fc57600080fd5b61160888838901611582565b9096509450602087013591508082111561162157600080fd5b5061162e87828801611582565b95989497509550505050565b60008060006040848603121561164f57600080fd5b833561ffff8116811461166157600080fd5b9250602084013567ffffffffffffffff8082111561167e57600080fd5b818601915086601f83011261169257600080fd5b8135818111156116a157600080fd5b8760208285010111156116b357600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006116f5604083018461150b565b949350505050565b801515811461052757600080fd5b60006020828403121561171d57600080fd5b81516114c2816116fd565b600073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525060606040830152611761606083018461150b565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126117ce57600080fd5b83018035915067ffffffffffffffff8211156117e957600080fd5b6020019150368190038213156115c757600080fd5b60006020828403121561181057600080fd5b81356114c2816116fd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115611892576000816000526020600020601f850160051c810160208610156118735750805b601f850160051c820191505b81811015610a865782815560010161187f565b505050565b67ffffffffffffffff8311156118af576118af61181b565b6118c3836118bd8354611429565b8361184a565b6000601f84116001811461191557600085156118df5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610702565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156119645786850135825560209485019460019092019101611944565b508682101561199f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156119f15780818660140360031b1b83161692505b505092915050565b61ffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019291505056fe7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329a2646970667358221220750d75d635d75c82037ca5f8502df65cb2eb49e27e4db877ec324efc20c851a564736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C6D CODESIZE SUB DUP1 PUSH2 0x1C6D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x80 MSTORE PUSH2 0x9F PUSH2 0xA5 JUMP JUMPDEST POP PUSH2 0x191 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x10D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x81 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1AAC PUSH2 0x1C1 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x207 ADD MSTORE DUP2 DUP2 PUSH2 0x357 ADD MSTORE DUP2 DUP2 PUSH2 0x6AA ADD MSTORE PUSH2 0xC64 ADD MSTORE PUSH2 0x1AAC 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 0xDF 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 0x3D7 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x408 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x426 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x3C4 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x4BB7453E GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x4BB7453E EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x5F21F75E EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x301 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x2EE JUMPI DUP1 PUSH4 0x180D295C EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x3F90B540 EQ PUSH2 0x32C JUMPI JUMPDEST PUSH1 0x0 DUP1 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD CALLDATASIZE SWAP2 PUSH1 0x60 SWAP2 DUP5 SWAP2 SWAP1 PUSH2 0x123 SWAP1 PUSH2 0x1429 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 0x14F SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x171 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19C 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 0x17F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206E6F7420666F756E640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x202 DUP2 PUSH2 0x439 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x24C SWAP3 SWAP2 SWAP1 PUSH2 0x147C 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 0x289 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 0x28E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x63616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST DUP1 MLOAD SWAP6 POP PUSH1 0x20 ADD SWAP4 POP POP POP POP RETURN JUMPDEST PUSH2 0x301 PUSH2 0x2FC CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x516 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x316 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x52A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x156F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x301 PUSH2 0x33A CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x34D CALLDATASIZE PUSH1 0x4 PUSH2 0x15CE JUMP JUMPDEST PUSH2 0x709 JUMP JUMPDEST PUSH2 0x379 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x323 JUMP JUMPDEST PUSH2 0x301 PUSH2 0xA90 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x163A JUMP JUMPDEST PUSH2 0xB28 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x403 CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0xCD4 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x434 CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0xEB1 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x492 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x16C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4AF 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 0x4D3 SWAP2 SWAP1 PUSH2 0x170B JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x512 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1728 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x51E PUSH2 0xF61 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0xFC8 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x543 SWAP1 PUSH2 0x1429 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 0x56F SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5BC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x591 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5BC 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 0x59F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x602 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7472616E736665724272696467654F776E657273686970286164647265737329 DUP2 MSTORE POP PUSH2 0x439 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x702 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x711 PUSH2 0xF61 JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0x787 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E70757420617272617973206D7573742068617665207468652073616D6520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C656E6774680000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x7A6 JUMPI PUSH2 0x7A6 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x7B8 SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C6 SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE SWAP2 DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 POP SWAP1 PUSH2 0x810 SWAP1 PUSH2 0x1429 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 0x83C SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x889 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x85E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x889 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 0x86C 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 0x8A2 JUMPI PUSH2 0x8A2 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8B7 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C2 JUMPI POP DUP1 MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x99B JUMPI DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x8D9 JUMPI PUSH2 0x8D9 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 PUSH2 0x928 SWAP2 SWAP1 DUP4 PUSH2 0x1897 JUMP JUMPDEST POP DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x93B JUMPI PUSH2 0x93B PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x94D SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95B SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH1 0x1 DUP3 MSTORE SWAP1 PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xA7C JUMP JUMPDEST DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x9AD JUMPI PUSH2 0x9AD PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x9C2 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI POP DUP1 MLOAD ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xA7C JUMPI PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xA0E SWAP2 PUSH2 0x13DB JUMP JUMPDEST DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0xA20 JUMPI PUSH2 0xA20 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA32 SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA40 SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH1 0x0 DUP3 MSTORE SWAP1 PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP PUSH1 0x1 ADD PUSH2 0x78A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0xB1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0x10D0 JUMP JUMPDEST PUSH2 0xB49 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A52 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x439 JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0xB9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436861696E4964206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xBB2 PUSH2 0xBAA DUP3 DUP5 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x60 SHR PUSH2 0x1101 JUMP JUMPDEST PUSH1 0x14 DUP2 EQ PUSH2 0xC27 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x536F757263652061646472657373206D75737420626520323020627974657320 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6F6E6700000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA6C3D16500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xA6C3D165 SWAP1 PUSH2 0xC9D SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCCB 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 0xCF4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xD0E JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xD80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xDDE JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xE41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xE4A DUP3 PUSH2 0x114E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xEB9 PUSH2 0xF61 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xF1C PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xA8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1051 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0xEA5 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x527 DUP2 PUSH2 0x11DC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x11CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0x11D3 PUSH2 0x1253 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0x12D8 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 0x12D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xA8E PUSH2 0x1355 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x51E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x13D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xA8E CALLER PUSH2 0x10D0 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x13E7 SWAP1 PUSH2 0x1429 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x13F7 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 0x527 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1425 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1411 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x143D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1476 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x149E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1531 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x1515 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x14C2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x15C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x15FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1608 DUP9 DUP4 DUP10 ADD PUSH2 0x1582 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1621 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162E DUP8 DUP3 DUP9 ADD PUSH2 0x1582 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x164F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x16B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x16F5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x171D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x14C2 DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1761 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x17CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x17E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x15C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1810 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14C2 DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1892 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1873 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA86 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x187F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x18AF JUMPI PUSH2 0x18AF PUSH2 0x181B JUMP JUMPDEST PUSH2 0x18C3 DUP4 PUSH2 0x18BD DUP4 SLOAD PUSH2 0x1429 JUMP JUMPDEST DUP4 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1915 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x18DF JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0x702 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1964 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1944 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x199F JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x14 DUP6 LT ISZERO PUSH2 0x19F1 JUMPI DUP1 DUP2 DUP7 PUSH1 0x14 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE DUP2 PUSH1 0x40 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x60 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD ADD SWAP3 SWAP2 POP POP JUMP INVALID PUSH20 0x65745472757374656452656D6F74654164647265 PUSH20 0x732875696E7431362C627974657329A264697066 PUSH20 0x58221220750D75D635D75C82037CA5F8502DF65C 0xB2 0xEB BLOBHASH 0xE2 PUSH31 0x4DB877EC324EFC20C851A564736F6C63430008190033000000000000000000 ","sourceMap":"734:4458:27:-:0;;;1317:278;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1385:42:27;;1377:79;;;;-1:-1:-1;;;1377:79:27;;511:2:54;1377:79:27;;;493:21:54;550:2;530:18;;;523:30;589:26;569:18;;;562:54;633:18;;1377:79:27;;;;;;;;;-1:-1:-1;;;;;1466:90:27;;;;1566:22;:20;:22::i;:::-;1317:278;734:4458;;5928:279:11;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:11;;864:2:54;5987:66:11;;;846:21:54;903:2;883:18;;;876:30;942:34;922:18;;;915:62;-1:-1:-1;;;993:18:54;;;986:37;1040:19;;5987:66:11;662:403:54;5987:66:11;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:11;6128:15;6113:30;;;;;;6162:28;;1212:36:54;;;6162:28:11;;1200:2:54;1185:18;6162:28:11;;;;;;;6063:138;5928:279::o;14:290:54:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:54;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:54:o;1070:184::-;734:4458:27;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@OMNICHAIN_GOVERNANCE_EXECUTOR_5882":{"entryPoint":null,"id":5882,"parameterSlots":0,"returnSlots":0},"@_6041":{"entryPoint":null,"id":6041,"parameterSlots":2,"returnSlots":1},"@__AccessControlled_init_8240":{"entryPoint":4430,"id":8240,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_8252":{"entryPoint":4824,"id":8252,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_2963":{"entryPoint":4691,"id":2963,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_3089":{"entryPoint":4949,"id":3089,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_8343":{"entryPoint":1081,"id":8343,"parameterSlots":1,"returnSlots":0},"@_checkOwner_3120":{"entryPoint":3937,"id":3120,"parameterSlots":0,"returnSlots":0},"@_msgSender_3663":{"entryPoint":null,"id":3663,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_8313":{"entryPoint":4040,"id":8313,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_3023":{"entryPoint":4304,"id":3023,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_3177":{"entryPoint":4572,"id":3177,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_3045":{"entryPoint":2704,"id":3045,"parameterSlots":0,"returnSlots":0},"@accessControlManager_8275":{"entryPoint":null,"id":8275,"parameterSlots":0,"returnSlots":1},"@ensureNonzeroAddress_5466":{"entryPoint":4353,"id":5466,"parameterSlots":1,"returnSlots":0},"@functionRegistry_5887":{"entryPoint":1322,"id":5887,"parameterSlots":0,"returnSlots":0},"@initialize_5943":{"entryPoint":3284,"id":5943,"parameterSlots":1,"returnSlots":0},"@isContract_3370":{"entryPoint":null,"id":3370,"parameterSlots":1,"returnSlots":1},"@owner_3106":{"entryPoint":null,"id":3106,"parameterSlots":0,"returnSlots":1},"@pendingOwner_2986":{"entryPoint":null,"id":2986,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_6182":{"entryPoint":2702,"id":6182,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_8265":{"entryPoint":1302,"id":8265,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_5991":{"entryPoint":2856,"id":5991,"parameterSlots":3,"returnSlots":0},"@transferBridgeOwnership_6176":{"entryPoint":1476,"id":6176,"parameterSlots":1,"returnSlots":0},"@transferOwnership_3006":{"entryPoint":3761,"id":3006,"parameterSlots":1,"returnSlots":0},"@upsertSignature_6149":{"entryPoint":1801,"id":6149,"parameterSlots":4,"returnSlots":0},"abi_decode_array_string_calldata_dyn_calldata":{"entryPoint":5506,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":5260,"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":5582,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":6142,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5899,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":5321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":5690,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_string":{"entryPoint":5387,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5244,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"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":5928,"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":5830,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IOmnichainGovernanceExecutor_$7931__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5487,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"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":6649,"id":null,"parameterSlots":4,"returnSlots":1},"access_calldata_tail_t_string_calldata_ptr":{"entryPoint":6041,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":6218,"id":null,"parameterSlots":3,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20":{"entryPoint":6577,"id":null,"parameterSlots":2,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":6295,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":5161,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":5994,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6171,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":5885,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:15523:54","nodeType":"YulBlock","src":"0:15523:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"69:382:54","nodeType":"YulBlock","src":"69:382:54","statements":[{"nativeSrc":"79:22:54","nodeType":"YulAssignment","src":"79:22:54","value":{"arguments":[{"kind":"number","nativeSrc":"93:1:54","nodeType":"YulLiteral","src":"93:1:54","type":"","value":"1"},{"name":"data","nativeSrc":"96:4:54","nodeType":"YulIdentifier","src":"96:4:54"}],"functionName":{"name":"shr","nativeSrc":"89:3:54","nodeType":"YulIdentifier","src":"89:3:54"},"nativeSrc":"89:12:54","nodeType":"YulFunctionCall","src":"89:12:54"},"variableNames":[{"name":"length","nativeSrc":"79:6:54","nodeType":"YulIdentifier","src":"79:6:54"}]},{"nativeSrc":"110:38:54","nodeType":"YulVariableDeclaration","src":"110:38:54","value":{"arguments":[{"name":"data","nativeSrc":"140:4:54","nodeType":"YulIdentifier","src":"140:4:54"},{"kind":"number","nativeSrc":"146:1:54","nodeType":"YulLiteral","src":"146:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"136:3:54","nodeType":"YulIdentifier","src":"136:3:54"},"nativeSrc":"136:12:54","nodeType":"YulFunctionCall","src":"136:12:54"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"114:18:54","nodeType":"YulTypedName","src":"114:18:54","type":""}]},{"body":{"nativeSrc":"187:31:54","nodeType":"YulBlock","src":"187:31:54","statements":[{"nativeSrc":"189:27:54","nodeType":"YulAssignment","src":"189:27:54","value":{"arguments":[{"name":"length","nativeSrc":"203:6:54","nodeType":"YulIdentifier","src":"203:6:54"},{"kind":"number","nativeSrc":"211:4:54","nodeType":"YulLiteral","src":"211:4:54","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"199:3:54","nodeType":"YulIdentifier","src":"199:3:54"},"nativeSrc":"199:17:54","nodeType":"YulFunctionCall","src":"199:17:54"},"variableNames":[{"name":"length","nativeSrc":"189:6:54","nodeType":"YulIdentifier","src":"189:6:54"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"167:18:54","nodeType":"YulIdentifier","src":"167:18:54"}],"functionName":{"name":"iszero","nativeSrc":"160:6:54","nodeType":"YulIdentifier","src":"160:6:54"},"nativeSrc":"160:26:54","nodeType":"YulFunctionCall","src":"160:26:54"},"nativeSrc":"157:61:54","nodeType":"YulIf","src":"157:61:54"},{"body":{"nativeSrc":"277:168:54","nodeType":"YulBlock","src":"277:168:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"298:1:54","nodeType":"YulLiteral","src":"298:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"301:77:54","nodeType":"YulLiteral","src":"301:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"291:6:54","nodeType":"YulIdentifier","src":"291:6:54"},"nativeSrc":"291:88:54","nodeType":"YulFunctionCall","src":"291:88:54"},"nativeSrc":"291:88:54","nodeType":"YulExpressionStatement","src":"291:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"399:1:54","nodeType":"YulLiteral","src":"399:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"402:4:54","nodeType":"YulLiteral","src":"402:4:54","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"392:6:54","nodeType":"YulIdentifier","src":"392:6:54"},"nativeSrc":"392:15:54","nodeType":"YulFunctionCall","src":"392:15:54"},"nativeSrc":"392:15:54","nodeType":"YulExpressionStatement","src":"392:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"427:1:54","nodeType":"YulLiteral","src":"427:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"430:4:54","nodeType":"YulLiteral","src":"430:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"420:6:54","nodeType":"YulIdentifier","src":"420:6:54"},"nativeSrc":"420:15:54","nodeType":"YulFunctionCall","src":"420:15:54"},"nativeSrc":"420:15:54","nodeType":"YulExpressionStatement","src":"420:15:54"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"233:18:54","nodeType":"YulIdentifier","src":"233:18:54"},{"arguments":[{"name":"length","nativeSrc":"256:6:54","nodeType":"YulIdentifier","src":"256:6:54"},{"kind":"number","nativeSrc":"264:2:54","nodeType":"YulLiteral","src":"264:2:54","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"253:2:54","nodeType":"YulIdentifier","src":"253:2:54"},"nativeSrc":"253:14:54","nodeType":"YulFunctionCall","src":"253:14:54"}],"functionName":{"name":"eq","nativeSrc":"230:2:54","nodeType":"YulIdentifier","src":"230:2:54"},"nativeSrc":"230:38:54","nodeType":"YulFunctionCall","src":"230:38:54"},"nativeSrc":"227:218:54","nodeType":"YulIf","src":"227:218:54"}]},"name":"extract_byte_array_length","nativeSrc":"14:437:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"49:4:54","nodeType":"YulTypedName","src":"49:4:54","type":""}],"returnVariables":[{"name":"length","nativeSrc":"58:6:54","nodeType":"YulTypedName","src":"58:6:54","type":""}],"src":"14:437:54"},{"body":{"nativeSrc":"630:168:54","nodeType":"YulBlock","src":"630:168:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"647:9:54","nodeType":"YulIdentifier","src":"647:9:54"},{"kind":"number","nativeSrc":"658:2:54","nodeType":"YulLiteral","src":"658:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"640:6:54","nodeType":"YulIdentifier","src":"640:6:54"},"nativeSrc":"640:21:54","nodeType":"YulFunctionCall","src":"640:21:54"},"nativeSrc":"640:21:54","nodeType":"YulExpressionStatement","src":"640:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"681:9:54","nodeType":"YulIdentifier","src":"681:9:54"},{"kind":"number","nativeSrc":"692:2:54","nodeType":"YulLiteral","src":"692:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"677:3:54","nodeType":"YulIdentifier","src":"677:3:54"},"nativeSrc":"677:18:54","nodeType":"YulFunctionCall","src":"677:18:54"},{"kind":"number","nativeSrc":"697:2:54","nodeType":"YulLiteral","src":"697:2:54","type":"","value":"18"}],"functionName":{"name":"mstore","nativeSrc":"670:6:54","nodeType":"YulIdentifier","src":"670:6:54"},"nativeSrc":"670:30:54","nodeType":"YulFunctionCall","src":"670:30:54"},"nativeSrc":"670:30:54","nodeType":"YulExpressionStatement","src":"670:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"720:9:54","nodeType":"YulIdentifier","src":"720:9:54"},{"kind":"number","nativeSrc":"731:2:54","nodeType":"YulLiteral","src":"731:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"716:3:54","nodeType":"YulIdentifier","src":"716:3:54"},"nativeSrc":"716:18:54","nodeType":"YulFunctionCall","src":"716:18:54"},{"hexValue":"46756e6374696f6e206e6f7420666f756e64","kind":"string","nativeSrc":"736:20:54","nodeType":"YulLiteral","src":"736:20:54","type":"","value":"Function not found"}],"functionName":{"name":"mstore","nativeSrc":"709:6:54","nodeType":"YulIdentifier","src":"709:6:54"},"nativeSrc":"709:48:54","nodeType":"YulFunctionCall","src":"709:48:54"},"nativeSrc":"709:48:54","nodeType":"YulExpressionStatement","src":"709:48:54"},{"nativeSrc":"766:26:54","nodeType":"YulAssignment","src":"766:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"778:9:54","nodeType":"YulIdentifier","src":"778:9:54"},{"kind":"number","nativeSrc":"789:2:54","nodeType":"YulLiteral","src":"789:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"774:3:54","nodeType":"YulIdentifier","src":"774:3:54"},"nativeSrc":"774:18:54","nodeType":"YulFunctionCall","src":"774:18:54"},"variableNames":[{"name":"tail","nativeSrc":"766:4:54","nodeType":"YulIdentifier","src":"766:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"456:342:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"607:9:54","nodeType":"YulTypedName","src":"607:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"621:4:54","nodeType":"YulTypedName","src":"621:4:54","type":""}],"src":"456:342:54"},{"body":{"nativeSrc":"950:124:54","nodeType":"YulBlock","src":"950:124:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"973:3:54","nodeType":"YulIdentifier","src":"973:3:54"},{"name":"value0","nativeSrc":"978:6:54","nodeType":"YulIdentifier","src":"978:6:54"},{"name":"value1","nativeSrc":"986:6:54","nodeType":"YulIdentifier","src":"986:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"960:12:54","nodeType":"YulIdentifier","src":"960:12:54"},"nativeSrc":"960:33:54","nodeType":"YulFunctionCall","src":"960:33:54"},"nativeSrc":"960:33:54","nodeType":"YulExpressionStatement","src":"960:33:54"},{"nativeSrc":"1002:26:54","nodeType":"YulVariableDeclaration","src":"1002:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"1016:3:54","nodeType":"YulIdentifier","src":"1016:3:54"},{"name":"value1","nativeSrc":"1021:6:54","nodeType":"YulIdentifier","src":"1021:6:54"}],"functionName":{"name":"add","nativeSrc":"1012:3:54","nodeType":"YulIdentifier","src":"1012:3:54"},"nativeSrc":"1012:16:54","nodeType":"YulFunctionCall","src":"1012:16:54"},"variables":[{"name":"_1","nativeSrc":"1006:2:54","nodeType":"YulTypedName","src":"1006:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"1044:2:54","nodeType":"YulIdentifier","src":"1044:2:54"},{"kind":"number","nativeSrc":"1048:1:54","nodeType":"YulLiteral","src":"1048:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1037:6:54","nodeType":"YulIdentifier","src":"1037:6:54"},"nativeSrc":"1037:13:54","nodeType":"YulFunctionCall","src":"1037:13:54"},"nativeSrc":"1037:13:54","nodeType":"YulExpressionStatement","src":"1037:13:54"},{"nativeSrc":"1059:9:54","nodeType":"YulAssignment","src":"1059:9:54","value":{"name":"_1","nativeSrc":"1066:2:54","nodeType":"YulIdentifier","src":"1066:2:54"},"variableNames":[{"name":"end","nativeSrc":"1059:3:54","nodeType":"YulIdentifier","src":"1059:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"803:271:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"918:3:54","nodeType":"YulTypedName","src":"918:3:54","type":""},{"name":"value1","nativeSrc":"923:6:54","nodeType":"YulTypedName","src":"923:6:54","type":""},{"name":"value0","nativeSrc":"931:6:54","nodeType":"YulTypedName","src":"931:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"942:3:54","nodeType":"YulTypedName","src":"942:3:54","type":""}],"src":"803:271:54"},{"body":{"nativeSrc":"1253:161:54","nodeType":"YulBlock","src":"1253:161:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1270:9:54","nodeType":"YulIdentifier","src":"1270:9:54"},{"kind":"number","nativeSrc":"1281:2:54","nodeType":"YulLiteral","src":"1281:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1263:6:54","nodeType":"YulIdentifier","src":"1263:6:54"},"nativeSrc":"1263:21:54","nodeType":"YulFunctionCall","src":"1263:21:54"},"nativeSrc":"1263:21:54","nodeType":"YulExpressionStatement","src":"1263:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1304:9:54","nodeType":"YulIdentifier","src":"1304:9:54"},{"kind":"number","nativeSrc":"1315:2:54","nodeType":"YulLiteral","src":"1315:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1300:3:54","nodeType":"YulIdentifier","src":"1300:3:54"},"nativeSrc":"1300:18:54","nodeType":"YulFunctionCall","src":"1300:18:54"},{"kind":"number","nativeSrc":"1320:2:54","nodeType":"YulLiteral","src":"1320:2:54","type":"","value":"11"}],"functionName":{"name":"mstore","nativeSrc":"1293:6:54","nodeType":"YulIdentifier","src":"1293:6:54"},"nativeSrc":"1293:30:54","nodeType":"YulFunctionCall","src":"1293:30:54"},"nativeSrc":"1293:30:54","nodeType":"YulExpressionStatement","src":"1293:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1343:9:54","nodeType":"YulIdentifier","src":"1343:9:54"},{"kind":"number","nativeSrc":"1354:2:54","nodeType":"YulLiteral","src":"1354:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1339:3:54","nodeType":"YulIdentifier","src":"1339:3:54"},"nativeSrc":"1339:18:54","nodeType":"YulFunctionCall","src":"1339:18:54"},{"hexValue":"63616c6c206661696c6564","kind":"string","nativeSrc":"1359:13:54","nodeType":"YulLiteral","src":"1359:13:54","type":"","value":"call failed"}],"functionName":{"name":"mstore","nativeSrc":"1332:6:54","nodeType":"YulIdentifier","src":"1332:6:54"},"nativeSrc":"1332:41:54","nodeType":"YulFunctionCall","src":"1332:41:54"},"nativeSrc":"1332:41:54","nodeType":"YulExpressionStatement","src":"1332:41:54"},{"nativeSrc":"1382:26:54","nodeType":"YulAssignment","src":"1382:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1394:9:54","nodeType":"YulIdentifier","src":"1394:9:54"},{"kind":"number","nativeSrc":"1405:2:54","nodeType":"YulLiteral","src":"1405:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1390:3:54","nodeType":"YulIdentifier","src":"1390:3:54"},"nativeSrc":"1390:18:54","nodeType":"YulFunctionCall","src":"1390:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1382:4:54","nodeType":"YulIdentifier","src":"1382:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1079:335:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1230:9:54","nodeType":"YulTypedName","src":"1230:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1244:4:54","nodeType":"YulTypedName","src":"1244:4:54","type":""}],"src":"1079:335:54"},{"body":{"nativeSrc":"1489:239:54","nodeType":"YulBlock","src":"1489:239:54","statements":[{"body":{"nativeSrc":"1535:16:54","nodeType":"YulBlock","src":"1535:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1544:1:54","nodeType":"YulLiteral","src":"1544:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1547:1:54","nodeType":"YulLiteral","src":"1547:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1537:6:54","nodeType":"YulIdentifier","src":"1537:6:54"},"nativeSrc":"1537:12:54","nodeType":"YulFunctionCall","src":"1537:12:54"},"nativeSrc":"1537:12:54","nodeType":"YulExpressionStatement","src":"1537:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1510:7:54","nodeType":"YulIdentifier","src":"1510:7:54"},{"name":"headStart","nativeSrc":"1519:9:54","nodeType":"YulIdentifier","src":"1519:9:54"}],"functionName":{"name":"sub","nativeSrc":"1506:3:54","nodeType":"YulIdentifier","src":"1506:3:54"},"nativeSrc":"1506:23:54","nodeType":"YulFunctionCall","src":"1506:23:54"},{"kind":"number","nativeSrc":"1531:2:54","nodeType":"YulLiteral","src":"1531:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1502:3:54","nodeType":"YulIdentifier","src":"1502:3:54"},"nativeSrc":"1502:32:54","nodeType":"YulFunctionCall","src":"1502:32:54"},"nativeSrc":"1499:52:54","nodeType":"YulIf","src":"1499:52:54"},{"nativeSrc":"1560:36:54","nodeType":"YulVariableDeclaration","src":"1560:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1586:9:54","nodeType":"YulIdentifier","src":"1586:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"1573:12:54","nodeType":"YulIdentifier","src":"1573:12:54"},"nativeSrc":"1573:23:54","nodeType":"YulFunctionCall","src":"1573:23:54"},"variables":[{"name":"value","nativeSrc":"1564:5:54","nodeType":"YulTypedName","src":"1564:5:54","type":""}]},{"body":{"nativeSrc":"1682:16:54","nodeType":"YulBlock","src":"1682:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1691:1:54","nodeType":"YulLiteral","src":"1691:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1694:1:54","nodeType":"YulLiteral","src":"1694:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1684:6:54","nodeType":"YulIdentifier","src":"1684:6:54"},"nativeSrc":"1684:12:54","nodeType":"YulFunctionCall","src":"1684:12:54"},"nativeSrc":"1684:12:54","nodeType":"YulExpressionStatement","src":"1684:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1618:5:54","nodeType":"YulIdentifier","src":"1618:5:54"},{"arguments":[{"name":"value","nativeSrc":"1629:5:54","nodeType":"YulIdentifier","src":"1629:5:54"},{"kind":"number","nativeSrc":"1636:42:54","nodeType":"YulLiteral","src":"1636:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1625:3:54","nodeType":"YulIdentifier","src":"1625:3:54"},"nativeSrc":"1625:54:54","nodeType":"YulFunctionCall","src":"1625:54:54"}],"functionName":{"name":"eq","nativeSrc":"1615:2:54","nodeType":"YulIdentifier","src":"1615:2:54"},"nativeSrc":"1615:65:54","nodeType":"YulFunctionCall","src":"1615:65:54"}],"functionName":{"name":"iszero","nativeSrc":"1608:6:54","nodeType":"YulIdentifier","src":"1608:6:54"},"nativeSrc":"1608:73:54","nodeType":"YulFunctionCall","src":"1608:73:54"},"nativeSrc":"1605:93:54","nodeType":"YulIf","src":"1605:93:54"},{"nativeSrc":"1707:15:54","nodeType":"YulAssignment","src":"1707:15:54","value":{"name":"value","nativeSrc":"1717:5:54","nodeType":"YulIdentifier","src":"1717:5:54"},"variableNames":[{"name":"value0","nativeSrc":"1707:6:54","nodeType":"YulIdentifier","src":"1707:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1419:309:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1455:9:54","nodeType":"YulTypedName","src":"1455:9:54","type":""},{"name":"dataEnd","nativeSrc":"1466:7:54","nodeType":"YulTypedName","src":"1466:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1478:6:54","nodeType":"YulTypedName","src":"1478:6:54","type":""}],"src":"1419:309:54"},{"body":{"nativeSrc":"1802:263:54","nodeType":"YulBlock","src":"1802:263:54","statements":[{"body":{"nativeSrc":"1848:16:54","nodeType":"YulBlock","src":"1848:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1857:1:54","nodeType":"YulLiteral","src":"1857:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1860:1:54","nodeType":"YulLiteral","src":"1860:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1850:6:54","nodeType":"YulIdentifier","src":"1850:6:54"},"nativeSrc":"1850:12:54","nodeType":"YulFunctionCall","src":"1850:12:54"},"nativeSrc":"1850:12:54","nodeType":"YulExpressionStatement","src":"1850:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1823:7:54","nodeType":"YulIdentifier","src":"1823:7:54"},{"name":"headStart","nativeSrc":"1832:9:54","nodeType":"YulIdentifier","src":"1832:9:54"}],"functionName":{"name":"sub","nativeSrc":"1819:3:54","nodeType":"YulIdentifier","src":"1819:3:54"},"nativeSrc":"1819:23:54","nodeType":"YulFunctionCall","src":"1819:23:54"},{"kind":"number","nativeSrc":"1844:2:54","nodeType":"YulLiteral","src":"1844:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1815:3:54","nodeType":"YulIdentifier","src":"1815:3:54"},"nativeSrc":"1815:32:54","nodeType":"YulFunctionCall","src":"1815:32:54"},"nativeSrc":"1812:52:54","nodeType":"YulIf","src":"1812:52:54"},{"nativeSrc":"1873:36:54","nodeType":"YulVariableDeclaration","src":"1873:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1899:9:54","nodeType":"YulIdentifier","src":"1899:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"1886:12:54","nodeType":"YulIdentifier","src":"1886:12:54"},"nativeSrc":"1886:23:54","nodeType":"YulFunctionCall","src":"1886:23:54"},"variables":[{"name":"value","nativeSrc":"1877:5:54","nodeType":"YulTypedName","src":"1877:5:54","type":""}]},{"body":{"nativeSrc":"2019:16:54","nodeType":"YulBlock","src":"2019:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2028:1:54","nodeType":"YulLiteral","src":"2028:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2031:1:54","nodeType":"YulLiteral","src":"2031:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2021:6:54","nodeType":"YulIdentifier","src":"2021:6:54"},"nativeSrc":"2021:12:54","nodeType":"YulFunctionCall","src":"2021:12:54"},"nativeSrc":"2021:12:54","nodeType":"YulExpressionStatement","src":"2021:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1931:5:54","nodeType":"YulIdentifier","src":"1931:5:54"},{"arguments":[{"name":"value","nativeSrc":"1942:5:54","nodeType":"YulIdentifier","src":"1942:5:54"},{"kind":"number","nativeSrc":"1949:66:54","nodeType":"YulLiteral","src":"1949:66:54","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"1938:3:54","nodeType":"YulIdentifier","src":"1938:3:54"},"nativeSrc":"1938:78:54","nodeType":"YulFunctionCall","src":"1938:78:54"}],"functionName":{"name":"eq","nativeSrc":"1928:2:54","nodeType":"YulIdentifier","src":"1928:2:54"},"nativeSrc":"1928:89:54","nodeType":"YulFunctionCall","src":"1928:89:54"}],"functionName":{"name":"iszero","nativeSrc":"1921:6:54","nodeType":"YulIdentifier","src":"1921:6:54"},"nativeSrc":"1921:97:54","nodeType":"YulFunctionCall","src":"1921:97:54"},"nativeSrc":"1918:117:54","nodeType":"YulIf","src":"1918:117:54"},{"nativeSrc":"2044:15:54","nodeType":"YulAssignment","src":"2044:15:54","value":{"name":"value","nativeSrc":"2054:5:54","nodeType":"YulIdentifier","src":"2054:5:54"},"variableNames":[{"name":"value0","nativeSrc":"2044:6:54","nodeType":"YulIdentifier","src":"2044:6:54"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"1733:332:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1768:9:54","nodeType":"YulTypedName","src":"1768:9:54","type":""},{"name":"dataEnd","nativeSrc":"1779:7:54","nodeType":"YulTypedName","src":"1779:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1791:6:54","nodeType":"YulTypedName","src":"1791:6:54","type":""}],"src":"1733:332:54"},{"body":{"nativeSrc":"2120:432:54","nodeType":"YulBlock","src":"2120:432:54","statements":[{"nativeSrc":"2130:26:54","nodeType":"YulVariableDeclaration","src":"2130:26:54","value":{"arguments":[{"name":"value","nativeSrc":"2150:5:54","nodeType":"YulIdentifier","src":"2150:5:54"}],"functionName":{"name":"mload","nativeSrc":"2144:5:54","nodeType":"YulIdentifier","src":"2144:5:54"},"nativeSrc":"2144:12:54","nodeType":"YulFunctionCall","src":"2144:12:54"},"variables":[{"name":"length","nativeSrc":"2134:6:54","nodeType":"YulTypedName","src":"2134:6:54","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2172:3:54","nodeType":"YulIdentifier","src":"2172:3:54"},{"name":"length","nativeSrc":"2177:6:54","nodeType":"YulIdentifier","src":"2177:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2165:6:54","nodeType":"YulIdentifier","src":"2165:6:54"},"nativeSrc":"2165:19:54","nodeType":"YulFunctionCall","src":"2165:19:54"},"nativeSrc":"2165:19:54","nodeType":"YulExpressionStatement","src":"2165:19:54"},{"nativeSrc":"2193:10:54","nodeType":"YulVariableDeclaration","src":"2193:10:54","value":{"kind":"number","nativeSrc":"2202:1:54","nodeType":"YulLiteral","src":"2202:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:54","nodeType":"YulTypedName","src":"2197:1:54","type":""}]},{"body":{"nativeSrc":"2264:110:54","nodeType":"YulBlock","src":"2264:110:54","statements":[{"nativeSrc":"2278:14:54","nodeType":"YulVariableDeclaration","src":"2278:14:54","value":{"kind":"number","nativeSrc":"2288:4:54","nodeType":"YulLiteral","src":"2288:4:54","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"2282:2:54","nodeType":"YulTypedName","src":"2282:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2320:3:54","nodeType":"YulIdentifier","src":"2320:3:54"},{"name":"i","nativeSrc":"2325:1:54","nodeType":"YulIdentifier","src":"2325:1:54"}],"functionName":{"name":"add","nativeSrc":"2316:3:54","nodeType":"YulIdentifier","src":"2316:3:54"},"nativeSrc":"2316:11:54","nodeType":"YulFunctionCall","src":"2316:11:54"},{"name":"_1","nativeSrc":"2329:2:54","nodeType":"YulIdentifier","src":"2329:2:54"}],"functionName":{"name":"add","nativeSrc":"2312:3:54","nodeType":"YulIdentifier","src":"2312:3:54"},"nativeSrc":"2312:20:54","nodeType":"YulFunctionCall","src":"2312:20:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2348:5:54","nodeType":"YulIdentifier","src":"2348:5:54"},{"name":"i","nativeSrc":"2355:1:54","nodeType":"YulIdentifier","src":"2355:1:54"}],"functionName":{"name":"add","nativeSrc":"2344:3:54","nodeType":"YulIdentifier","src":"2344:3:54"},"nativeSrc":"2344:13:54","nodeType":"YulFunctionCall","src":"2344:13:54"},{"name":"_1","nativeSrc":"2359:2:54","nodeType":"YulIdentifier","src":"2359:2:54"}],"functionName":{"name":"add","nativeSrc":"2340:3:54","nodeType":"YulIdentifier","src":"2340:3:54"},"nativeSrc":"2340:22:54","nodeType":"YulFunctionCall","src":"2340:22:54"}],"functionName":{"name":"mload","nativeSrc":"2334:5:54","nodeType":"YulIdentifier","src":"2334:5:54"},"nativeSrc":"2334:29:54","nodeType":"YulFunctionCall","src":"2334:29:54"}],"functionName":{"name":"mstore","nativeSrc":"2305:6:54","nodeType":"YulIdentifier","src":"2305:6:54"},"nativeSrc":"2305:59:54","nodeType":"YulFunctionCall","src":"2305:59:54"},"nativeSrc":"2305:59:54","nodeType":"YulExpressionStatement","src":"2305:59:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:54","nodeType":"YulIdentifier","src":"2223:1:54"},{"name":"length","nativeSrc":"2226:6:54","nodeType":"YulIdentifier","src":"2226:6:54"}],"functionName":{"name":"lt","nativeSrc":"2220:2:54","nodeType":"YulIdentifier","src":"2220:2:54"},"nativeSrc":"2220:13:54","nodeType":"YulFunctionCall","src":"2220:13:54"},"nativeSrc":"2212:162:54","nodeType":"YulForLoop","post":{"nativeSrc":"2234:21:54","nodeType":"YulBlock","src":"2234:21:54","statements":[{"nativeSrc":"2236:17:54","nodeType":"YulAssignment","src":"2236:17:54","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:54","nodeType":"YulIdentifier","src":"2245:1:54"},{"kind":"number","nativeSrc":"2248:4:54","nodeType":"YulLiteral","src":"2248:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2241:3:54","nodeType":"YulIdentifier","src":"2241:3:54"},"nativeSrc":"2241:12:54","nodeType":"YulFunctionCall","src":"2241:12:54"},"variableNames":[{"name":"i","nativeSrc":"2236:1:54","nodeType":"YulIdentifier","src":"2236:1:54"}]}]},"pre":{"nativeSrc":"2216:3:54","nodeType":"YulBlock","src":"2216:3:54","statements":[]},"src":"2212:162:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2398:3:54","nodeType":"YulIdentifier","src":"2398:3:54"},{"name":"length","nativeSrc":"2403:6:54","nodeType":"YulIdentifier","src":"2403:6:54"}],"functionName":{"name":"add","nativeSrc":"2394:3:54","nodeType":"YulIdentifier","src":"2394:3:54"},"nativeSrc":"2394:16:54","nodeType":"YulFunctionCall","src":"2394:16:54"},{"kind":"number","nativeSrc":"2412:4:54","nodeType":"YulLiteral","src":"2412:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2390:3:54","nodeType":"YulIdentifier","src":"2390:3:54"},"nativeSrc":"2390:27:54","nodeType":"YulFunctionCall","src":"2390:27:54"},{"kind":"number","nativeSrc":"2419:1:54","nodeType":"YulLiteral","src":"2419:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2383:6:54","nodeType":"YulIdentifier","src":"2383:6:54"},"nativeSrc":"2383:38:54","nodeType":"YulFunctionCall","src":"2383:38:54"},"nativeSrc":"2383:38:54","nodeType":"YulExpressionStatement","src":"2383:38:54"},{"nativeSrc":"2430:116:54","nodeType":"YulAssignment","src":"2430:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"2445:3:54","nodeType":"YulIdentifier","src":"2445:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2458:6:54","nodeType":"YulIdentifier","src":"2458:6:54"},{"kind":"number","nativeSrc":"2466:2:54","nodeType":"YulLiteral","src":"2466:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2454:3:54","nodeType":"YulIdentifier","src":"2454:3:54"},"nativeSrc":"2454:15:54","nodeType":"YulFunctionCall","src":"2454:15:54"},{"kind":"number","nativeSrc":"2471:66:54","nodeType":"YulLiteral","src":"2471:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"2450:3:54","nodeType":"YulIdentifier","src":"2450:3:54"},"nativeSrc":"2450:88:54","nodeType":"YulFunctionCall","src":"2450:88:54"}],"functionName":{"name":"add","nativeSrc":"2441:3:54","nodeType":"YulIdentifier","src":"2441:3:54"},"nativeSrc":"2441:98:54","nodeType":"YulFunctionCall","src":"2441:98:54"},{"kind":"number","nativeSrc":"2541:4:54","nodeType":"YulLiteral","src":"2541:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2437:3:54","nodeType":"YulIdentifier","src":"2437:3:54"},"nativeSrc":"2437:109:54","nodeType":"YulFunctionCall","src":"2437:109:54"},"variableNames":[{"name":"end","nativeSrc":"2430:3:54","nodeType":"YulIdentifier","src":"2430:3:54"}]}]},"name":"abi_encode_string","nativeSrc":"2070:482:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2097:5:54","nodeType":"YulTypedName","src":"2097:5:54","type":""},{"name":"pos","nativeSrc":"2104:3:54","nodeType":"YulTypedName","src":"2104:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2112:3:54","nodeType":"YulTypedName","src":"2112:3:54","type":""}],"src":"2070:482:54"},{"body":{"nativeSrc":"2678:99:54","nodeType":"YulBlock","src":"2678:99:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2695:9:54","nodeType":"YulIdentifier","src":"2695:9:54"},{"kind":"number","nativeSrc":"2706:2:54","nodeType":"YulLiteral","src":"2706:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2688:6:54","nodeType":"YulIdentifier","src":"2688:6:54"},"nativeSrc":"2688:21:54","nodeType":"YulFunctionCall","src":"2688:21:54"},"nativeSrc":"2688:21:54","nodeType":"YulExpressionStatement","src":"2688:21:54"},{"nativeSrc":"2718:53:54","nodeType":"YulAssignment","src":"2718:53:54","value":{"arguments":[{"name":"value0","nativeSrc":"2744:6:54","nodeType":"YulIdentifier","src":"2744:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"2756:9:54","nodeType":"YulIdentifier","src":"2756:9:54"},{"kind":"number","nativeSrc":"2767:2:54","nodeType":"YulLiteral","src":"2767:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2752:3:54","nodeType":"YulIdentifier","src":"2752:3:54"},"nativeSrc":"2752:18:54","nodeType":"YulFunctionCall","src":"2752:18:54"}],"functionName":{"name":"abi_encode_string","nativeSrc":"2726:17:54","nodeType":"YulIdentifier","src":"2726:17:54"},"nativeSrc":"2726:45:54","nodeType":"YulFunctionCall","src":"2726:45:54"},"variableNames":[{"name":"tail","nativeSrc":"2718:4:54","nodeType":"YulIdentifier","src":"2718:4:54"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2557:220:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2647:9:54","nodeType":"YulTypedName","src":"2647:9:54","type":""},{"name":"value0","nativeSrc":"2658:6:54","nodeType":"YulTypedName","src":"2658:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2669:4:54","nodeType":"YulTypedName","src":"2669:4:54","type":""}],"src":"2557:220:54"},{"body":{"nativeSrc":"2874:283:54","nodeType":"YulBlock","src":"2874:283:54","statements":[{"body":{"nativeSrc":"2923:16:54","nodeType":"YulBlock","src":"2923:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2932:1:54","nodeType":"YulLiteral","src":"2932:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2935:1:54","nodeType":"YulLiteral","src":"2935:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2925:6:54","nodeType":"YulIdentifier","src":"2925:6:54"},"nativeSrc":"2925:12:54","nodeType":"YulFunctionCall","src":"2925:12:54"},"nativeSrc":"2925:12:54","nodeType":"YulExpressionStatement","src":"2925:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2902:6:54","nodeType":"YulIdentifier","src":"2902:6:54"},{"kind":"number","nativeSrc":"2910:4:54","nodeType":"YulLiteral","src":"2910:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2898:3:54","nodeType":"YulIdentifier","src":"2898:3:54"},"nativeSrc":"2898:17:54","nodeType":"YulFunctionCall","src":"2898:17:54"},{"name":"end","nativeSrc":"2917:3:54","nodeType":"YulIdentifier","src":"2917:3:54"}],"functionName":{"name":"slt","nativeSrc":"2894:3:54","nodeType":"YulIdentifier","src":"2894:3:54"},"nativeSrc":"2894:27:54","nodeType":"YulFunctionCall","src":"2894:27:54"}],"functionName":{"name":"iszero","nativeSrc":"2887:6:54","nodeType":"YulIdentifier","src":"2887:6:54"},"nativeSrc":"2887:35:54","nodeType":"YulFunctionCall","src":"2887:35:54"},"nativeSrc":"2884:55:54","nodeType":"YulIf","src":"2884:55:54"},{"nativeSrc":"2948:30:54","nodeType":"YulAssignment","src":"2948:30:54","value":{"arguments":[{"name":"offset","nativeSrc":"2971:6:54","nodeType":"YulIdentifier","src":"2971:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"2958:12:54","nodeType":"YulIdentifier","src":"2958:12:54"},"nativeSrc":"2958:20:54","nodeType":"YulFunctionCall","src":"2958:20:54"},"variableNames":[{"name":"length","nativeSrc":"2948:6:54","nodeType":"YulIdentifier","src":"2948:6:54"}]},{"body":{"nativeSrc":"3021:16:54","nodeType":"YulBlock","src":"3021:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3030:1:54","nodeType":"YulLiteral","src":"3030:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3033:1:54","nodeType":"YulLiteral","src":"3033:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3023:6:54","nodeType":"YulIdentifier","src":"3023:6:54"},"nativeSrc":"3023:12:54","nodeType":"YulFunctionCall","src":"3023:12:54"},"nativeSrc":"3023:12:54","nodeType":"YulExpressionStatement","src":"3023:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2993:6:54","nodeType":"YulIdentifier","src":"2993:6:54"},{"kind":"number","nativeSrc":"3001:18:54","nodeType":"YulLiteral","src":"3001:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2990:2:54","nodeType":"YulIdentifier","src":"2990:2:54"},"nativeSrc":"2990:30:54","nodeType":"YulFunctionCall","src":"2990:30:54"},"nativeSrc":"2987:50:54","nodeType":"YulIf","src":"2987:50:54"},{"nativeSrc":"3046:29:54","nodeType":"YulAssignment","src":"3046:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"3062:6:54","nodeType":"YulIdentifier","src":"3062:6:54"},{"kind":"number","nativeSrc":"3070:4:54","nodeType":"YulLiteral","src":"3070:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3058:3:54","nodeType":"YulIdentifier","src":"3058:3:54"},"nativeSrc":"3058:17:54","nodeType":"YulFunctionCall","src":"3058:17:54"},"variableNames":[{"name":"arrayPos","nativeSrc":"3046:8:54","nodeType":"YulIdentifier","src":"3046:8:54"}]},{"body":{"nativeSrc":"3135:16:54","nodeType":"YulBlock","src":"3135:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3144:1:54","nodeType":"YulLiteral","src":"3144:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3147:1:54","nodeType":"YulLiteral","src":"3147:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3137:6:54","nodeType":"YulIdentifier","src":"3137:6:54"},"nativeSrc":"3137:12:54","nodeType":"YulFunctionCall","src":"3137:12:54"},"nativeSrc":"3137:12:54","nodeType":"YulExpressionStatement","src":"3137:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3098:6:54","nodeType":"YulIdentifier","src":"3098:6:54"},{"arguments":[{"kind":"number","nativeSrc":"3110:1:54","nodeType":"YulLiteral","src":"3110:1:54","type":"","value":"5"},{"name":"length","nativeSrc":"3113:6:54","nodeType":"YulIdentifier","src":"3113:6:54"}],"functionName":{"name":"shl","nativeSrc":"3106:3:54","nodeType":"YulIdentifier","src":"3106:3:54"},"nativeSrc":"3106:14:54","nodeType":"YulFunctionCall","src":"3106:14:54"}],"functionName":{"name":"add","nativeSrc":"3094:3:54","nodeType":"YulIdentifier","src":"3094:3:54"},"nativeSrc":"3094:27:54","nodeType":"YulFunctionCall","src":"3094:27:54"},{"kind":"number","nativeSrc":"3123:4:54","nodeType":"YulLiteral","src":"3123:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3090:3:54","nodeType":"YulIdentifier","src":"3090:3:54"},"nativeSrc":"3090:38:54","nodeType":"YulFunctionCall","src":"3090:38:54"},{"name":"end","nativeSrc":"3130:3:54","nodeType":"YulIdentifier","src":"3130:3:54"}],"functionName":{"name":"gt","nativeSrc":"3087:2:54","nodeType":"YulIdentifier","src":"3087:2:54"},"nativeSrc":"3087:47:54","nodeType":"YulFunctionCall","src":"3087:47:54"},"nativeSrc":"3084:67:54","nodeType":"YulIf","src":"3084:67:54"}]},"name":"abi_decode_array_string_calldata_dyn_calldata","nativeSrc":"2782:375:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2837:6:54","nodeType":"YulTypedName","src":"2837:6:54","type":""},{"name":"end","nativeSrc":"2845:3:54","nodeType":"YulTypedName","src":"2845:3:54","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2853:8:54","nodeType":"YulTypedName","src":"2853:8:54","type":""},{"name":"length","nativeSrc":"2863:6:54","nodeType":"YulTypedName","src":"2863:6:54","type":""}],"src":"2782:375:54"},{"body":{"nativeSrc":"3328:632:54","nodeType":"YulBlock","src":"3328:632:54","statements":[{"body":{"nativeSrc":"3374:16:54","nodeType":"YulBlock","src":"3374:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3383:1:54","nodeType":"YulLiteral","src":"3383:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3386:1:54","nodeType":"YulLiteral","src":"3386:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3376:6:54","nodeType":"YulIdentifier","src":"3376:6:54"},"nativeSrc":"3376:12:54","nodeType":"YulFunctionCall","src":"3376:12:54"},"nativeSrc":"3376:12:54","nodeType":"YulExpressionStatement","src":"3376:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3349:7:54","nodeType":"YulIdentifier","src":"3349:7:54"},{"name":"headStart","nativeSrc":"3358:9:54","nodeType":"YulIdentifier","src":"3358:9:54"}],"functionName":{"name":"sub","nativeSrc":"3345:3:54","nodeType":"YulIdentifier","src":"3345:3:54"},"nativeSrc":"3345:23:54","nodeType":"YulFunctionCall","src":"3345:23:54"},{"kind":"number","nativeSrc":"3370:2:54","nodeType":"YulLiteral","src":"3370:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3341:3:54","nodeType":"YulIdentifier","src":"3341:3:54"},"nativeSrc":"3341:32:54","nodeType":"YulFunctionCall","src":"3341:32:54"},"nativeSrc":"3338:52:54","nodeType":"YulIf","src":"3338:52:54"},{"nativeSrc":"3399:37:54","nodeType":"YulVariableDeclaration","src":"3399:37:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3426:9:54","nodeType":"YulIdentifier","src":"3426:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"3413:12:54","nodeType":"YulIdentifier","src":"3413:12:54"},"nativeSrc":"3413:23:54","nodeType":"YulFunctionCall","src":"3413:23:54"},"variables":[{"name":"offset","nativeSrc":"3403:6:54","nodeType":"YulTypedName","src":"3403:6:54","type":""}]},{"nativeSrc":"3445:28:54","nodeType":"YulVariableDeclaration","src":"3445:28:54","value":{"kind":"number","nativeSrc":"3455:18:54","nodeType":"YulLiteral","src":"3455:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3449:2:54","nodeType":"YulTypedName","src":"3449:2:54","type":""}]},{"body":{"nativeSrc":"3500:16:54","nodeType":"YulBlock","src":"3500:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3509:1:54","nodeType":"YulLiteral","src":"3509:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3512:1:54","nodeType":"YulLiteral","src":"3512:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3502:6:54","nodeType":"YulIdentifier","src":"3502:6:54"},"nativeSrc":"3502:12:54","nodeType":"YulFunctionCall","src":"3502:12:54"},"nativeSrc":"3502:12:54","nodeType":"YulExpressionStatement","src":"3502:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3488:6:54","nodeType":"YulIdentifier","src":"3488:6:54"},{"name":"_1","nativeSrc":"3496:2:54","nodeType":"YulIdentifier","src":"3496:2:54"}],"functionName":{"name":"gt","nativeSrc":"3485:2:54","nodeType":"YulIdentifier","src":"3485:2:54"},"nativeSrc":"3485:14:54","nodeType":"YulFunctionCall","src":"3485:14:54"},"nativeSrc":"3482:34:54","nodeType":"YulIf","src":"3482:34:54"},{"nativeSrc":"3525:104:54","nodeType":"YulVariableDeclaration","src":"3525:104:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3601:9:54","nodeType":"YulIdentifier","src":"3601:9:54"},{"name":"offset","nativeSrc":"3612:6:54","nodeType":"YulIdentifier","src":"3612:6:54"}],"functionName":{"name":"add","nativeSrc":"3597:3:54","nodeType":"YulIdentifier","src":"3597:3:54"},"nativeSrc":"3597:22:54","nodeType":"YulFunctionCall","src":"3597:22:54"},{"name":"dataEnd","nativeSrc":"3621:7:54","nodeType":"YulIdentifier","src":"3621:7:54"}],"functionName":{"name":"abi_decode_array_string_calldata_dyn_calldata","nativeSrc":"3551:45:54","nodeType":"YulIdentifier","src":"3551:45:54"},"nativeSrc":"3551:78:54","nodeType":"YulFunctionCall","src":"3551:78:54"},"variables":[{"name":"value0_1","nativeSrc":"3529:8:54","nodeType":"YulTypedName","src":"3529:8:54","type":""},{"name":"value1_1","nativeSrc":"3539:8:54","nodeType":"YulTypedName","src":"3539:8:54","type":""}]},{"nativeSrc":"3638:18:54","nodeType":"YulAssignment","src":"3638:18:54","value":{"name":"value0_1","nativeSrc":"3648:8:54","nodeType":"YulIdentifier","src":"3648:8:54"},"variableNames":[{"name":"value0","nativeSrc":"3638:6:54","nodeType":"YulIdentifier","src":"3638:6:54"}]},{"nativeSrc":"3665:18:54","nodeType":"YulAssignment","src":"3665:18:54","value":{"name":"value1_1","nativeSrc":"3675:8:54","nodeType":"YulIdentifier","src":"3675:8:54"},"variableNames":[{"name":"value1","nativeSrc":"3665:6:54","nodeType":"YulIdentifier","src":"3665:6:54"}]},{"nativeSrc":"3692:48:54","nodeType":"YulVariableDeclaration","src":"3692:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3725:9:54","nodeType":"YulIdentifier","src":"3725:9:54"},{"kind":"number","nativeSrc":"3736:2:54","nodeType":"YulLiteral","src":"3736:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3721:3:54","nodeType":"YulIdentifier","src":"3721:3:54"},"nativeSrc":"3721:18:54","nodeType":"YulFunctionCall","src":"3721:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"3708:12:54","nodeType":"YulIdentifier","src":"3708:12:54"},"nativeSrc":"3708:32:54","nodeType":"YulFunctionCall","src":"3708:32:54"},"variables":[{"name":"offset_1","nativeSrc":"3696:8:54","nodeType":"YulTypedName","src":"3696:8:54","type":""}]},{"body":{"nativeSrc":"3769:16:54","nodeType":"YulBlock","src":"3769:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3778:1:54","nodeType":"YulLiteral","src":"3778:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3781:1:54","nodeType":"YulLiteral","src":"3781:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3771:6:54","nodeType":"YulIdentifier","src":"3771:6:54"},"nativeSrc":"3771:12:54","nodeType":"YulFunctionCall","src":"3771:12:54"},"nativeSrc":"3771:12:54","nodeType":"YulExpressionStatement","src":"3771:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3755:8:54","nodeType":"YulIdentifier","src":"3755:8:54"},{"name":"_1","nativeSrc":"3765:2:54","nodeType":"YulIdentifier","src":"3765:2:54"}],"functionName":{"name":"gt","nativeSrc":"3752:2:54","nodeType":"YulIdentifier","src":"3752:2:54"},"nativeSrc":"3752:16:54","nodeType":"YulFunctionCall","src":"3752:16:54"},"nativeSrc":"3749:36:54","nodeType":"YulIf","src":"3749:36:54"},{"nativeSrc":"3794:106:54","nodeType":"YulVariableDeclaration","src":"3794:106:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3870:9:54","nodeType":"YulIdentifier","src":"3870:9:54"},{"name":"offset_1","nativeSrc":"3881:8:54","nodeType":"YulIdentifier","src":"3881:8:54"}],"functionName":{"name":"add","nativeSrc":"3866:3:54","nodeType":"YulIdentifier","src":"3866:3:54"},"nativeSrc":"3866:24:54","nodeType":"YulFunctionCall","src":"3866:24:54"},{"name":"dataEnd","nativeSrc":"3892:7:54","nodeType":"YulIdentifier","src":"3892:7:54"}],"functionName":{"name":"abi_decode_array_string_calldata_dyn_calldata","nativeSrc":"3820:45:54","nodeType":"YulIdentifier","src":"3820:45:54"},"nativeSrc":"3820:80:54","nodeType":"YulFunctionCall","src":"3820:80:54"},"variables":[{"name":"value2_1","nativeSrc":"3798:8:54","nodeType":"YulTypedName","src":"3798:8:54","type":""},{"name":"value3_1","nativeSrc":"3808:8:54","nodeType":"YulTypedName","src":"3808:8:54","type":""}]},{"nativeSrc":"3909:18:54","nodeType":"YulAssignment","src":"3909:18:54","value":{"name":"value2_1","nativeSrc":"3919:8:54","nodeType":"YulIdentifier","src":"3919:8:54"},"variableNames":[{"name":"value2","nativeSrc":"3909:6:54","nodeType":"YulIdentifier","src":"3909:6:54"}]},{"nativeSrc":"3936:18:54","nodeType":"YulAssignment","src":"3936:18:54","value":{"name":"value3_1","nativeSrc":"3946:8:54","nodeType":"YulIdentifier","src":"3946:8:54"},"variableNames":[{"name":"value3","nativeSrc":"3936:6:54","nodeType":"YulIdentifier","src":"3936:6:54"}]}]},"name":"abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3162:798:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3270:9:54","nodeType":"YulTypedName","src":"3270:9:54","type":""},{"name":"dataEnd","nativeSrc":"3281:7:54","nodeType":"YulTypedName","src":"3281:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3293:6:54","nodeType":"YulTypedName","src":"3293:6:54","type":""},{"name":"value1","nativeSrc":"3301:6:54","nodeType":"YulTypedName","src":"3301:6:54","type":""},{"name":"value2","nativeSrc":"3309:6:54","nodeType":"YulTypedName","src":"3309:6:54","type":""},{"name":"value3","nativeSrc":"3317:6:54","nodeType":"YulTypedName","src":"3317:6:54","type":""}],"src":"3162:798:54"},{"body":{"nativeSrc":"4103:125:54","nodeType":"YulBlock","src":"4103:125:54","statements":[{"nativeSrc":"4113:26:54","nodeType":"YulAssignment","src":"4113:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4125:9:54","nodeType":"YulIdentifier","src":"4125:9:54"},{"kind":"number","nativeSrc":"4136:2:54","nodeType":"YulLiteral","src":"4136:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4121:3:54","nodeType":"YulIdentifier","src":"4121:3:54"},"nativeSrc":"4121:18:54","nodeType":"YulFunctionCall","src":"4121:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4113:4:54","nodeType":"YulIdentifier","src":"4113:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4155:9:54","nodeType":"YulIdentifier","src":"4155:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4170:6:54","nodeType":"YulIdentifier","src":"4170:6:54"},{"kind":"number","nativeSrc":"4178:42:54","nodeType":"YulLiteral","src":"4178:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4166:3:54","nodeType":"YulIdentifier","src":"4166:3:54"},"nativeSrc":"4166:55:54","nodeType":"YulFunctionCall","src":"4166:55:54"}],"functionName":{"name":"mstore","nativeSrc":"4148:6:54","nodeType":"YulIdentifier","src":"4148:6:54"},"nativeSrc":"4148:74:54","nodeType":"YulFunctionCall","src":"4148:74:54"},"nativeSrc":"4148:74:54","nodeType":"YulExpressionStatement","src":"4148:74:54"}]},"name":"abi_encode_tuple_t_contract$_IOmnichainGovernanceExecutor_$7931__to_t_address__fromStack_reversed","nativeSrc":"3965:263:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4072:9:54","nodeType":"YulTypedName","src":"4072:9:54","type":""},{"name":"value0","nativeSrc":"4083:6:54","nodeType":"YulTypedName","src":"4083:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4094:4:54","nodeType":"YulTypedName","src":"4094:4:54","type":""}],"src":"3965:263:54"},{"body":{"nativeSrc":"4334:125:54","nodeType":"YulBlock","src":"4334:125:54","statements":[{"nativeSrc":"4344:26:54","nodeType":"YulAssignment","src":"4344:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4356:9:54","nodeType":"YulIdentifier","src":"4356:9:54"},{"kind":"number","nativeSrc":"4367:2:54","nodeType":"YulLiteral","src":"4367:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4352:3:54","nodeType":"YulIdentifier","src":"4352:3:54"},"nativeSrc":"4352:18:54","nodeType":"YulFunctionCall","src":"4352:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4344:4:54","nodeType":"YulIdentifier","src":"4344:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4386:9:54","nodeType":"YulIdentifier","src":"4386:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4401:6:54","nodeType":"YulIdentifier","src":"4401:6:54"},{"kind":"number","nativeSrc":"4409:42:54","nodeType":"YulLiteral","src":"4409:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4397:3:54","nodeType":"YulIdentifier","src":"4397:3:54"},"nativeSrc":"4397:55:54","nodeType":"YulFunctionCall","src":"4397:55:54"}],"functionName":{"name":"mstore","nativeSrc":"4379:6:54","nodeType":"YulIdentifier","src":"4379:6:54"},"nativeSrc":"4379:74:54","nodeType":"YulFunctionCall","src":"4379:74:54"},"nativeSrc":"4379:74:54","nodeType":"YulExpressionStatement","src":"4379:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4233:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4303:9:54","nodeType":"YulTypedName","src":"4303:9:54","type":""},{"name":"value0","nativeSrc":"4314:6:54","nodeType":"YulTypedName","src":"4314:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4325:4:54","nodeType":"YulTypedName","src":"4325:4:54","type":""}],"src":"4233:226:54"},{"body":{"nativeSrc":"4569:646:54","nodeType":"YulBlock","src":"4569:646:54","statements":[{"body":{"nativeSrc":"4615:16:54","nodeType":"YulBlock","src":"4615:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4624:1:54","nodeType":"YulLiteral","src":"4624:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4627:1:54","nodeType":"YulLiteral","src":"4627:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4617:6:54","nodeType":"YulIdentifier","src":"4617:6:54"},"nativeSrc":"4617:12:54","nodeType":"YulFunctionCall","src":"4617:12:54"},"nativeSrc":"4617:12:54","nodeType":"YulExpressionStatement","src":"4617:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4590:7:54","nodeType":"YulIdentifier","src":"4590:7:54"},{"name":"headStart","nativeSrc":"4599:9:54","nodeType":"YulIdentifier","src":"4599:9:54"}],"functionName":{"name":"sub","nativeSrc":"4586:3:54","nodeType":"YulIdentifier","src":"4586:3:54"},"nativeSrc":"4586:23:54","nodeType":"YulFunctionCall","src":"4586:23:54"},{"kind":"number","nativeSrc":"4611:2:54","nodeType":"YulLiteral","src":"4611:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4582:3:54","nodeType":"YulIdentifier","src":"4582:3:54"},"nativeSrc":"4582:32:54","nodeType":"YulFunctionCall","src":"4582:32:54"},"nativeSrc":"4579:52:54","nodeType":"YulIf","src":"4579:52:54"},{"nativeSrc":"4640:36:54","nodeType":"YulVariableDeclaration","src":"4640:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4666:9:54","nodeType":"YulIdentifier","src":"4666:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"4653:12:54","nodeType":"YulIdentifier","src":"4653:12:54"},"nativeSrc":"4653:23:54","nodeType":"YulFunctionCall","src":"4653:23:54"},"variables":[{"name":"value","nativeSrc":"4644:5:54","nodeType":"YulTypedName","src":"4644:5:54","type":""}]},{"body":{"nativeSrc":"4726:16:54","nodeType":"YulBlock","src":"4726:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4735:1:54","nodeType":"YulLiteral","src":"4735:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4738:1:54","nodeType":"YulLiteral","src":"4738:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4728:6:54","nodeType":"YulIdentifier","src":"4728:6:54"},"nativeSrc":"4728:12:54","nodeType":"YulFunctionCall","src":"4728:12:54"},"nativeSrc":"4728:12:54","nodeType":"YulExpressionStatement","src":"4728:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4698:5:54","nodeType":"YulIdentifier","src":"4698:5:54"},{"arguments":[{"name":"value","nativeSrc":"4709:5:54","nodeType":"YulIdentifier","src":"4709:5:54"},{"kind":"number","nativeSrc":"4716:6:54","nodeType":"YulLiteral","src":"4716:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"4705:3:54","nodeType":"YulIdentifier","src":"4705:3:54"},"nativeSrc":"4705:18:54","nodeType":"YulFunctionCall","src":"4705:18:54"}],"functionName":{"name":"eq","nativeSrc":"4695:2:54","nodeType":"YulIdentifier","src":"4695:2:54"},"nativeSrc":"4695:29:54","nodeType":"YulFunctionCall","src":"4695:29:54"}],"functionName":{"name":"iszero","nativeSrc":"4688:6:54","nodeType":"YulIdentifier","src":"4688:6:54"},"nativeSrc":"4688:37:54","nodeType":"YulFunctionCall","src":"4688:37:54"},"nativeSrc":"4685:57:54","nodeType":"YulIf","src":"4685:57:54"},{"nativeSrc":"4751:15:54","nodeType":"YulAssignment","src":"4751:15:54","value":{"name":"value","nativeSrc":"4761:5:54","nodeType":"YulIdentifier","src":"4761:5:54"},"variableNames":[{"name":"value0","nativeSrc":"4751:6:54","nodeType":"YulIdentifier","src":"4751:6:54"}]},{"nativeSrc":"4775:46:54","nodeType":"YulVariableDeclaration","src":"4775:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4806:9:54","nodeType":"YulIdentifier","src":"4806:9:54"},{"kind":"number","nativeSrc":"4817:2:54","nodeType":"YulLiteral","src":"4817:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4802:3:54","nodeType":"YulIdentifier","src":"4802:3:54"},"nativeSrc":"4802:18:54","nodeType":"YulFunctionCall","src":"4802:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"4789:12:54","nodeType":"YulIdentifier","src":"4789:12:54"},"nativeSrc":"4789:32:54","nodeType":"YulFunctionCall","src":"4789:32:54"},"variables":[{"name":"offset","nativeSrc":"4779:6:54","nodeType":"YulTypedName","src":"4779:6:54","type":""}]},{"nativeSrc":"4830:28:54","nodeType":"YulVariableDeclaration","src":"4830:28:54","value":{"kind":"number","nativeSrc":"4840:18:54","nodeType":"YulLiteral","src":"4840:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"4834:2:54","nodeType":"YulTypedName","src":"4834:2:54","type":""}]},{"body":{"nativeSrc":"4885:16:54","nodeType":"YulBlock","src":"4885:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4894:1:54","nodeType":"YulLiteral","src":"4894:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4897:1:54","nodeType":"YulLiteral","src":"4897:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4887:6:54","nodeType":"YulIdentifier","src":"4887:6:54"},"nativeSrc":"4887:12:54","nodeType":"YulFunctionCall","src":"4887:12:54"},"nativeSrc":"4887:12:54","nodeType":"YulExpressionStatement","src":"4887:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4873:6:54","nodeType":"YulIdentifier","src":"4873:6:54"},{"name":"_1","nativeSrc":"4881:2:54","nodeType":"YulIdentifier","src":"4881:2:54"}],"functionName":{"name":"gt","nativeSrc":"4870:2:54","nodeType":"YulIdentifier","src":"4870:2:54"},"nativeSrc":"4870:14:54","nodeType":"YulFunctionCall","src":"4870:14:54"},"nativeSrc":"4867:34:54","nodeType":"YulIf","src":"4867:34:54"},{"nativeSrc":"4910:32:54","nodeType":"YulVariableDeclaration","src":"4910:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4924:9:54","nodeType":"YulIdentifier","src":"4924:9:54"},{"name":"offset","nativeSrc":"4935:6:54","nodeType":"YulIdentifier","src":"4935:6:54"}],"functionName":{"name":"add","nativeSrc":"4920:3:54","nodeType":"YulIdentifier","src":"4920:3:54"},"nativeSrc":"4920:22:54","nodeType":"YulFunctionCall","src":"4920:22:54"},"variables":[{"name":"_2","nativeSrc":"4914:2:54","nodeType":"YulTypedName","src":"4914:2:54","type":""}]},{"body":{"nativeSrc":"4990:16:54","nodeType":"YulBlock","src":"4990:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4999:1:54","nodeType":"YulLiteral","src":"4999:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5002:1:54","nodeType":"YulLiteral","src":"5002:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4992:6:54","nodeType":"YulIdentifier","src":"4992:6:54"},"nativeSrc":"4992:12:54","nodeType":"YulFunctionCall","src":"4992:12:54"},"nativeSrc":"4992:12:54","nodeType":"YulExpressionStatement","src":"4992:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"4969:2:54","nodeType":"YulIdentifier","src":"4969:2:54"},{"kind":"number","nativeSrc":"4973:4:54","nodeType":"YulLiteral","src":"4973:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4965:3:54","nodeType":"YulIdentifier","src":"4965:3:54"},"nativeSrc":"4965:13:54","nodeType":"YulFunctionCall","src":"4965:13:54"},{"name":"dataEnd","nativeSrc":"4980:7:54","nodeType":"YulIdentifier","src":"4980:7:54"}],"functionName":{"name":"slt","nativeSrc":"4961:3:54","nodeType":"YulIdentifier","src":"4961:3:54"},"nativeSrc":"4961:27:54","nodeType":"YulFunctionCall","src":"4961:27:54"}],"functionName":{"name":"iszero","nativeSrc":"4954:6:54","nodeType":"YulIdentifier","src":"4954:6:54"},"nativeSrc":"4954:35:54","nodeType":"YulFunctionCall","src":"4954:35:54"},"nativeSrc":"4951:55:54","nodeType":"YulIf","src":"4951:55:54"},{"nativeSrc":"5015:30:54","nodeType":"YulVariableDeclaration","src":"5015:30:54","value":{"arguments":[{"name":"_2","nativeSrc":"5042:2:54","nodeType":"YulIdentifier","src":"5042:2:54"}],"functionName":{"name":"calldataload","nativeSrc":"5029:12:54","nodeType":"YulIdentifier","src":"5029:12:54"},"nativeSrc":"5029:16:54","nodeType":"YulFunctionCall","src":"5029:16:54"},"variables":[{"name":"length","nativeSrc":"5019:6:54","nodeType":"YulTypedName","src":"5019:6:54","type":""}]},{"body":{"nativeSrc":"5072:16:54","nodeType":"YulBlock","src":"5072:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5081:1:54","nodeType":"YulLiteral","src":"5081:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5084:1:54","nodeType":"YulLiteral","src":"5084:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5074:6:54","nodeType":"YulIdentifier","src":"5074:6:54"},"nativeSrc":"5074:12:54","nodeType":"YulFunctionCall","src":"5074:12:54"},"nativeSrc":"5074:12:54","nodeType":"YulExpressionStatement","src":"5074:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5060:6:54","nodeType":"YulIdentifier","src":"5060:6:54"},{"name":"_1","nativeSrc":"5068:2:54","nodeType":"YulIdentifier","src":"5068:2:54"}],"functionName":{"name":"gt","nativeSrc":"5057:2:54","nodeType":"YulIdentifier","src":"5057:2:54"},"nativeSrc":"5057:14:54","nodeType":"YulFunctionCall","src":"5057:14:54"},"nativeSrc":"5054:34:54","nodeType":"YulIf","src":"5054:34:54"},{"body":{"nativeSrc":"5138:16:54","nodeType":"YulBlock","src":"5138:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5147:1:54","nodeType":"YulLiteral","src":"5147:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5150:1:54","nodeType":"YulLiteral","src":"5150:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5140:6:54","nodeType":"YulIdentifier","src":"5140:6:54"},"nativeSrc":"5140:12:54","nodeType":"YulFunctionCall","src":"5140:12:54"},"nativeSrc":"5140:12:54","nodeType":"YulExpressionStatement","src":"5140:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"5111:2:54","nodeType":"YulIdentifier","src":"5111:2:54"},{"name":"length","nativeSrc":"5115:6:54","nodeType":"YulIdentifier","src":"5115:6:54"}],"functionName":{"name":"add","nativeSrc":"5107:3:54","nodeType":"YulIdentifier","src":"5107:3:54"},"nativeSrc":"5107:15:54","nodeType":"YulFunctionCall","src":"5107:15:54"},{"kind":"number","nativeSrc":"5124:2:54","nodeType":"YulLiteral","src":"5124:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5103:3:54","nodeType":"YulIdentifier","src":"5103:3:54"},"nativeSrc":"5103:24:54","nodeType":"YulFunctionCall","src":"5103:24:54"},{"name":"dataEnd","nativeSrc":"5129:7:54","nodeType":"YulIdentifier","src":"5129:7:54"}],"functionName":{"name":"gt","nativeSrc":"5100:2:54","nodeType":"YulIdentifier","src":"5100:2:54"},"nativeSrc":"5100:37:54","nodeType":"YulFunctionCall","src":"5100:37:54"},"nativeSrc":"5097:57:54","nodeType":"YulIf","src":"5097:57:54"},{"nativeSrc":"5163:21:54","nodeType":"YulAssignment","src":"5163:21:54","value":{"arguments":[{"name":"_2","nativeSrc":"5177:2:54","nodeType":"YulIdentifier","src":"5177:2:54"},{"kind":"number","nativeSrc":"5181:2:54","nodeType":"YulLiteral","src":"5181:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5173:3:54","nodeType":"YulIdentifier","src":"5173:3:54"},"nativeSrc":"5173:11:54","nodeType":"YulFunctionCall","src":"5173:11:54"},"variableNames":[{"name":"value1","nativeSrc":"5163:6:54","nodeType":"YulIdentifier","src":"5163:6:54"}]},{"nativeSrc":"5193:16:54","nodeType":"YulAssignment","src":"5193:16:54","value":{"name":"length","nativeSrc":"5203:6:54","nodeType":"YulIdentifier","src":"5203:6:54"},"variableNames":[{"name":"value2","nativeSrc":"5193:6:54","nodeType":"YulIdentifier","src":"5193:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"4464:751:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4519:9:54","nodeType":"YulTypedName","src":"4519:9:54","type":""},{"name":"dataEnd","nativeSrc":"4530:7:54","nodeType":"YulTypedName","src":"4530:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4542:6:54","nodeType":"YulTypedName","src":"4542:6:54","type":""},{"name":"value1","nativeSrc":"4550:6:54","nodeType":"YulTypedName","src":"4550:6:54","type":""},{"name":"value2","nativeSrc":"4558:6:54","nodeType":"YulTypedName","src":"4558:6:54","type":""}],"src":"4464:751:54"},{"body":{"nativeSrc":"5353:125:54","nodeType":"YulBlock","src":"5353:125:54","statements":[{"nativeSrc":"5363:26:54","nodeType":"YulAssignment","src":"5363:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5375:9:54","nodeType":"YulIdentifier","src":"5375:9:54"},{"kind":"number","nativeSrc":"5386:2:54","nodeType":"YulLiteral","src":"5386:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5371:3:54","nodeType":"YulIdentifier","src":"5371:3:54"},"nativeSrc":"5371:18:54","nodeType":"YulFunctionCall","src":"5371:18:54"},"variableNames":[{"name":"tail","nativeSrc":"5363:4:54","nodeType":"YulIdentifier","src":"5363:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5405:9:54","nodeType":"YulIdentifier","src":"5405:9:54"},{"arguments":[{"name":"value0","nativeSrc":"5420:6:54","nodeType":"YulIdentifier","src":"5420:6:54"},{"kind":"number","nativeSrc":"5428:42:54","nodeType":"YulLiteral","src":"5428:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5416:3:54","nodeType":"YulIdentifier","src":"5416:3:54"},"nativeSrc":"5416:55:54","nodeType":"YulFunctionCall","src":"5416:55:54"}],"functionName":{"name":"mstore","nativeSrc":"5398:6:54","nodeType":"YulIdentifier","src":"5398:6:54"},"nativeSrc":"5398:74:54","nodeType":"YulFunctionCall","src":"5398:74:54"},"nativeSrc":"5398:74:54","nodeType":"YulExpressionStatement","src":"5398:74:54"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed","nativeSrc":"5220:258:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5322:9:54","nodeType":"YulTypedName","src":"5322:9:54","type":""},{"name":"value0","nativeSrc":"5333:6:54","nodeType":"YulTypedName","src":"5333:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5344:4:54","nodeType":"YulTypedName","src":"5344:4:54","type":""}],"src":"5220:258:54"},{"body":{"nativeSrc":"5632:191:54","nodeType":"YulBlock","src":"5632:191:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5649:9:54","nodeType":"YulIdentifier","src":"5649:9:54"},{"arguments":[{"name":"value0","nativeSrc":"5664:6:54","nodeType":"YulIdentifier","src":"5664:6:54"},{"kind":"number","nativeSrc":"5672:42:54","nodeType":"YulLiteral","src":"5672:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5660:3:54","nodeType":"YulIdentifier","src":"5660:3:54"},"nativeSrc":"5660:55:54","nodeType":"YulFunctionCall","src":"5660:55:54"}],"functionName":{"name":"mstore","nativeSrc":"5642:6:54","nodeType":"YulIdentifier","src":"5642:6:54"},"nativeSrc":"5642:74:54","nodeType":"YulFunctionCall","src":"5642:74:54"},"nativeSrc":"5642:74:54","nodeType":"YulExpressionStatement","src":"5642:74:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5736:9:54","nodeType":"YulIdentifier","src":"5736:9:54"},{"kind":"number","nativeSrc":"5747:2:54","nodeType":"YulLiteral","src":"5747:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5732:3:54","nodeType":"YulIdentifier","src":"5732:3:54"},"nativeSrc":"5732:18:54","nodeType":"YulFunctionCall","src":"5732:18:54"},{"kind":"number","nativeSrc":"5752:2:54","nodeType":"YulLiteral","src":"5752:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"5725:6:54","nodeType":"YulIdentifier","src":"5725:6:54"},"nativeSrc":"5725:30:54","nodeType":"YulFunctionCall","src":"5725:30:54"},"nativeSrc":"5725:30:54","nodeType":"YulExpressionStatement","src":"5725:30:54"},{"nativeSrc":"5764:53:54","nodeType":"YulAssignment","src":"5764:53:54","value":{"arguments":[{"name":"value1","nativeSrc":"5790:6:54","nodeType":"YulIdentifier","src":"5790:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"5802:9:54","nodeType":"YulIdentifier","src":"5802:9:54"},{"kind":"number","nativeSrc":"5813:2:54","nodeType":"YulLiteral","src":"5813:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5798:3:54","nodeType":"YulIdentifier","src":"5798:3:54"},"nativeSrc":"5798:18:54","nodeType":"YulFunctionCall","src":"5798:18:54"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5772:17:54","nodeType":"YulIdentifier","src":"5772:17:54"},"nativeSrc":"5772:45:54","nodeType":"YulFunctionCall","src":"5772:45:54"},"variableNames":[{"name":"tail","nativeSrc":"5764:4:54","nodeType":"YulIdentifier","src":"5764:4:54"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5483:340:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5593:9:54","nodeType":"YulTypedName","src":"5593:9:54","type":""},{"name":"value1","nativeSrc":"5604:6:54","nodeType":"YulTypedName","src":"5604:6:54","type":""},{"name":"value0","nativeSrc":"5612:6:54","nodeType":"YulTypedName","src":"5612:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5623:4:54","nodeType":"YulTypedName","src":"5623:4:54","type":""}],"src":"5483:340:54"},{"body":{"nativeSrc":"5870:76:54","nodeType":"YulBlock","src":"5870:76:54","statements":[{"body":{"nativeSrc":"5924:16:54","nodeType":"YulBlock","src":"5924:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5933:1:54","nodeType":"YulLiteral","src":"5933:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5936:1:54","nodeType":"YulLiteral","src":"5936:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5926:6:54","nodeType":"YulIdentifier","src":"5926:6:54"},"nativeSrc":"5926:12:54","nodeType":"YulFunctionCall","src":"5926:12:54"},"nativeSrc":"5926:12:54","nodeType":"YulExpressionStatement","src":"5926:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5893:5:54","nodeType":"YulIdentifier","src":"5893:5:54"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5914:5:54","nodeType":"YulIdentifier","src":"5914:5:54"}],"functionName":{"name":"iszero","nativeSrc":"5907:6:54","nodeType":"YulIdentifier","src":"5907:6:54"},"nativeSrc":"5907:13:54","nodeType":"YulFunctionCall","src":"5907:13:54"}],"functionName":{"name":"iszero","nativeSrc":"5900:6:54","nodeType":"YulIdentifier","src":"5900:6:54"},"nativeSrc":"5900:21:54","nodeType":"YulFunctionCall","src":"5900:21:54"}],"functionName":{"name":"eq","nativeSrc":"5890:2:54","nodeType":"YulIdentifier","src":"5890:2:54"},"nativeSrc":"5890:32:54","nodeType":"YulFunctionCall","src":"5890:32:54"}],"functionName":{"name":"iszero","nativeSrc":"5883:6:54","nodeType":"YulIdentifier","src":"5883:6:54"},"nativeSrc":"5883:40:54","nodeType":"YulFunctionCall","src":"5883:40:54"},"nativeSrc":"5880:60:54","nodeType":"YulIf","src":"5880:60:54"}]},"name":"validator_revert_bool","nativeSrc":"5828:118:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5859:5:54","nodeType":"YulTypedName","src":"5859:5:54","type":""}],"src":"5828:118:54"},{"body":{"nativeSrc":"6029:167:54","nodeType":"YulBlock","src":"6029:167:54","statements":[{"body":{"nativeSrc":"6075:16:54","nodeType":"YulBlock","src":"6075:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6084:1:54","nodeType":"YulLiteral","src":"6084:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6087:1:54","nodeType":"YulLiteral","src":"6087:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6077:6:54","nodeType":"YulIdentifier","src":"6077:6:54"},"nativeSrc":"6077:12:54","nodeType":"YulFunctionCall","src":"6077:12:54"},"nativeSrc":"6077:12:54","nodeType":"YulExpressionStatement","src":"6077:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6050:7:54","nodeType":"YulIdentifier","src":"6050:7:54"},{"name":"headStart","nativeSrc":"6059:9:54","nodeType":"YulIdentifier","src":"6059:9:54"}],"functionName":{"name":"sub","nativeSrc":"6046:3:54","nodeType":"YulIdentifier","src":"6046:3:54"},"nativeSrc":"6046:23:54","nodeType":"YulFunctionCall","src":"6046:23:54"},{"kind":"number","nativeSrc":"6071:2:54","nodeType":"YulLiteral","src":"6071:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6042:3:54","nodeType":"YulIdentifier","src":"6042:3:54"},"nativeSrc":"6042:32:54","nodeType":"YulFunctionCall","src":"6042:32:54"},"nativeSrc":"6039:52:54","nodeType":"YulIf","src":"6039:52:54"},{"nativeSrc":"6100:29:54","nodeType":"YulVariableDeclaration","src":"6100:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6119:9:54","nodeType":"YulIdentifier","src":"6119:9:54"}],"functionName":{"name":"mload","nativeSrc":"6113:5:54","nodeType":"YulIdentifier","src":"6113:5:54"},"nativeSrc":"6113:16:54","nodeType":"YulFunctionCall","src":"6113:16:54"},"variables":[{"name":"value","nativeSrc":"6104:5:54","nodeType":"YulTypedName","src":"6104:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6160:5:54","nodeType":"YulIdentifier","src":"6160:5:54"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"6138:21:54","nodeType":"YulIdentifier","src":"6138:21:54"},"nativeSrc":"6138:28:54","nodeType":"YulFunctionCall","src":"6138:28:54"},"nativeSrc":"6138:28:54","nodeType":"YulExpressionStatement","src":"6138:28:54"},{"nativeSrc":"6175:15:54","nodeType":"YulAssignment","src":"6175:15:54","value":{"name":"value","nativeSrc":"6185:5:54","nodeType":"YulIdentifier","src":"6185:5:54"},"variableNames":[{"name":"value0","nativeSrc":"6175:6:54","nodeType":"YulIdentifier","src":"6175:6:54"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"5951:245:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5995:9:54","nodeType":"YulTypedName","src":"5995:9:54","type":""},{"name":"dataEnd","nativeSrc":"6006:7:54","nodeType":"YulTypedName","src":"6006:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6018:6:54","nodeType":"YulTypedName","src":"6018:6:54","type":""}],"src":"5951:245:54"},{"body":{"nativeSrc":"6378:264:54","nodeType":"YulBlock","src":"6378:264:54","statements":[{"nativeSrc":"6388:52:54","nodeType":"YulVariableDeclaration","src":"6388:52:54","value":{"kind":"number","nativeSrc":"6398:42:54","nodeType":"YulLiteral","src":"6398:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"6392:2:54","nodeType":"YulTypedName","src":"6392:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6456:9:54","nodeType":"YulIdentifier","src":"6456:9:54"},{"arguments":[{"name":"value0","nativeSrc":"6471:6:54","nodeType":"YulIdentifier","src":"6471:6:54"},{"name":"_1","nativeSrc":"6479:2:54","nodeType":"YulIdentifier","src":"6479:2:54"}],"functionName":{"name":"and","nativeSrc":"6467:3:54","nodeType":"YulIdentifier","src":"6467:3:54"},"nativeSrc":"6467:15:54","nodeType":"YulFunctionCall","src":"6467:15:54"}],"functionName":{"name":"mstore","nativeSrc":"6449:6:54","nodeType":"YulIdentifier","src":"6449:6:54"},"nativeSrc":"6449:34:54","nodeType":"YulFunctionCall","src":"6449:34:54"},"nativeSrc":"6449:34:54","nodeType":"YulExpressionStatement","src":"6449:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6503:9:54","nodeType":"YulIdentifier","src":"6503:9:54"},{"kind":"number","nativeSrc":"6514:2:54","nodeType":"YulLiteral","src":"6514:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6499:3:54","nodeType":"YulIdentifier","src":"6499:3:54"},"nativeSrc":"6499:18:54","nodeType":"YulFunctionCall","src":"6499:18:54"},{"arguments":[{"name":"value1","nativeSrc":"6523:6:54","nodeType":"YulIdentifier","src":"6523:6:54"},{"name":"_1","nativeSrc":"6531:2:54","nodeType":"YulIdentifier","src":"6531:2:54"}],"functionName":{"name":"and","nativeSrc":"6519:3:54","nodeType":"YulIdentifier","src":"6519:3:54"},"nativeSrc":"6519:15:54","nodeType":"YulFunctionCall","src":"6519:15:54"}],"functionName":{"name":"mstore","nativeSrc":"6492:6:54","nodeType":"YulIdentifier","src":"6492:6:54"},"nativeSrc":"6492:43:54","nodeType":"YulFunctionCall","src":"6492:43:54"},"nativeSrc":"6492:43:54","nodeType":"YulExpressionStatement","src":"6492:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6555:9:54","nodeType":"YulIdentifier","src":"6555:9:54"},{"kind":"number","nativeSrc":"6566:2:54","nodeType":"YulLiteral","src":"6566:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6551:3:54","nodeType":"YulIdentifier","src":"6551:3:54"},"nativeSrc":"6551:18:54","nodeType":"YulFunctionCall","src":"6551:18:54"},{"kind":"number","nativeSrc":"6571:2:54","nodeType":"YulLiteral","src":"6571:2:54","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"6544:6:54","nodeType":"YulIdentifier","src":"6544:6:54"},"nativeSrc":"6544:30:54","nodeType":"YulFunctionCall","src":"6544:30:54"},"nativeSrc":"6544:30:54","nodeType":"YulExpressionStatement","src":"6544:30:54"},{"nativeSrc":"6583:53:54","nodeType":"YulAssignment","src":"6583:53:54","value":{"arguments":[{"name":"value2","nativeSrc":"6609:6:54","nodeType":"YulIdentifier","src":"6609:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"6621:9:54","nodeType":"YulIdentifier","src":"6621:9:54"},{"kind":"number","nativeSrc":"6632:2:54","nodeType":"YulLiteral","src":"6632:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6617:3:54","nodeType":"YulIdentifier","src":"6617:3:54"},"nativeSrc":"6617:18:54","nodeType":"YulFunctionCall","src":"6617:18:54"}],"functionName":{"name":"abi_encode_string","nativeSrc":"6591:17:54","nodeType":"YulIdentifier","src":"6591:17:54"},"nativeSrc":"6591:45:54","nodeType":"YulFunctionCall","src":"6591:45:54"},"variableNames":[{"name":"tail","nativeSrc":"6583:4:54","nodeType":"YulIdentifier","src":"6583:4:54"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6201:441:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6331:9:54","nodeType":"YulTypedName","src":"6331:9:54","type":""},{"name":"value2","nativeSrc":"6342:6:54","nodeType":"YulTypedName","src":"6342:6:54","type":""},{"name":"value1","nativeSrc":"6350:6:54","nodeType":"YulTypedName","src":"6350:6:54","type":""},{"name":"value0","nativeSrc":"6358:6:54","nodeType":"YulTypedName","src":"6358:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6369:4:54","nodeType":"YulTypedName","src":"6369:4:54","type":""}],"src":"6201:441:54"},{"body":{"nativeSrc":"6821:174:54","nodeType":"YulBlock","src":"6821:174:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6838:9:54","nodeType":"YulIdentifier","src":"6838:9:54"},{"kind":"number","nativeSrc":"6849:2:54","nodeType":"YulLiteral","src":"6849:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6831:6:54","nodeType":"YulIdentifier","src":"6831:6:54"},"nativeSrc":"6831:21:54","nodeType":"YulFunctionCall","src":"6831:21:54"},"nativeSrc":"6831:21:54","nodeType":"YulExpressionStatement","src":"6831:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6872:9:54","nodeType":"YulIdentifier","src":"6872:9:54"},{"kind":"number","nativeSrc":"6883:2:54","nodeType":"YulLiteral","src":"6883:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6868:3:54","nodeType":"YulIdentifier","src":"6868:3:54"},"nativeSrc":"6868:18:54","nodeType":"YulFunctionCall","src":"6868:18:54"},{"kind":"number","nativeSrc":"6888:2:54","nodeType":"YulLiteral","src":"6888:2:54","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"6861:6:54","nodeType":"YulIdentifier","src":"6861:6:54"},"nativeSrc":"6861:30:54","nodeType":"YulFunctionCall","src":"6861:30:54"},"nativeSrc":"6861:30:54","nodeType":"YulExpressionStatement","src":"6861:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6911:9:54","nodeType":"YulIdentifier","src":"6911:9:54"},{"kind":"number","nativeSrc":"6922:2:54","nodeType":"YulLiteral","src":"6922:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6907:3:54","nodeType":"YulIdentifier","src":"6907:3:54"},"nativeSrc":"6907:18:54","nodeType":"YulFunctionCall","src":"6907:18:54"},{"hexValue":"41646472657373206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"6927:26:54","nodeType":"YulLiteral","src":"6927:26:54","type":"","value":"Address must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"6900:6:54","nodeType":"YulIdentifier","src":"6900:6:54"},"nativeSrc":"6900:54:54","nodeType":"YulFunctionCall","src":"6900:54:54"},"nativeSrc":"6900:54:54","nodeType":"YulExpressionStatement","src":"6900:54:54"},{"nativeSrc":"6963:26:54","nodeType":"YulAssignment","src":"6963:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6975:9:54","nodeType":"YulIdentifier","src":"6975:9:54"},{"kind":"number","nativeSrc":"6986:2:54","nodeType":"YulLiteral","src":"6986:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6971:3:54","nodeType":"YulIdentifier","src":"6971:3:54"},"nativeSrc":"6971:18:54","nodeType":"YulFunctionCall","src":"6971:18:54"},"variableNames":[{"name":"tail","nativeSrc":"6963:4:54","nodeType":"YulIdentifier","src":"6963:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6647:348:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6798:9:54","nodeType":"YulTypedName","src":"6798:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6812:4:54","nodeType":"YulTypedName","src":"6812:4:54","type":""}],"src":"6647:348:54"},{"body":{"nativeSrc":"7174:228:54","nodeType":"YulBlock","src":"7174:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7191:9:54","nodeType":"YulIdentifier","src":"7191:9:54"},{"kind":"number","nativeSrc":"7202:2:54","nodeType":"YulLiteral","src":"7202:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7184:6:54","nodeType":"YulIdentifier","src":"7184:6:54"},"nativeSrc":"7184:21:54","nodeType":"YulFunctionCall","src":"7184:21:54"},"nativeSrc":"7184:21:54","nodeType":"YulExpressionStatement","src":"7184:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7225:9:54","nodeType":"YulIdentifier","src":"7225:9:54"},{"kind":"number","nativeSrc":"7236:2:54","nodeType":"YulLiteral","src":"7236:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7221:3:54","nodeType":"YulIdentifier","src":"7221:3:54"},"nativeSrc":"7221:18:54","nodeType":"YulFunctionCall","src":"7221:18:54"},{"kind":"number","nativeSrc":"7241:2:54","nodeType":"YulLiteral","src":"7241:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"7214:6:54","nodeType":"YulIdentifier","src":"7214:6:54"},"nativeSrc":"7214:30:54","nodeType":"YulFunctionCall","src":"7214:30:54"},"nativeSrc":"7214:30:54","nodeType":"YulExpressionStatement","src":"7214:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7264:9:54","nodeType":"YulIdentifier","src":"7264:9:54"},{"kind":"number","nativeSrc":"7275:2:54","nodeType":"YulLiteral","src":"7275:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7260:3:54","nodeType":"YulIdentifier","src":"7260:3:54"},"nativeSrc":"7260:18:54","nodeType":"YulFunctionCall","src":"7260:18:54"},{"hexValue":"496e70757420617272617973206d7573742068617665207468652073616d6520","kind":"string","nativeSrc":"7280:34:54","nodeType":"YulLiteral","src":"7280:34:54","type":"","value":"Input arrays must have the same "}],"functionName":{"name":"mstore","nativeSrc":"7253:6:54","nodeType":"YulIdentifier","src":"7253:6:54"},"nativeSrc":"7253:62:54","nodeType":"YulFunctionCall","src":"7253:62:54"},"nativeSrc":"7253:62:54","nodeType":"YulExpressionStatement","src":"7253:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7335:9:54","nodeType":"YulIdentifier","src":"7335:9:54"},{"kind":"number","nativeSrc":"7346:2:54","nodeType":"YulLiteral","src":"7346:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7331:3:54","nodeType":"YulIdentifier","src":"7331:3:54"},"nativeSrc":"7331:18:54","nodeType":"YulFunctionCall","src":"7331:18:54"},{"hexValue":"6c656e677468","kind":"string","nativeSrc":"7351:8:54","nodeType":"YulLiteral","src":"7351:8:54","type":"","value":"length"}],"functionName":{"name":"mstore","nativeSrc":"7324:6:54","nodeType":"YulIdentifier","src":"7324:6:54"},"nativeSrc":"7324:36:54","nodeType":"YulFunctionCall","src":"7324:36:54"},"nativeSrc":"7324:36:54","nodeType":"YulExpressionStatement","src":"7324:36:54"},{"nativeSrc":"7369:27:54","nodeType":"YulAssignment","src":"7369:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"7381:9:54","nodeType":"YulIdentifier","src":"7381:9:54"},{"kind":"number","nativeSrc":"7392:3:54","nodeType":"YulLiteral","src":"7392:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7377:3:54","nodeType":"YulIdentifier","src":"7377:3:54"},"nativeSrc":"7377:19:54","nodeType":"YulFunctionCall","src":"7377:19:54"},"variableNames":[{"name":"tail","nativeSrc":"7369:4:54","nodeType":"YulIdentifier","src":"7369:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7000:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7151:9:54","nodeType":"YulTypedName","src":"7151:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7165:4:54","nodeType":"YulTypedName","src":"7165:4:54","type":""}],"src":"7000:402:54"},{"body":{"nativeSrc":"7439:152:54","nodeType":"YulBlock","src":"7439:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7456:1:54","nodeType":"YulLiteral","src":"7456:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7459:77:54","nodeType":"YulLiteral","src":"7459:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7449:6:54","nodeType":"YulIdentifier","src":"7449:6:54"},"nativeSrc":"7449:88:54","nodeType":"YulFunctionCall","src":"7449:88:54"},"nativeSrc":"7449:88:54","nodeType":"YulExpressionStatement","src":"7449:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7553:1:54","nodeType":"YulLiteral","src":"7553:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"7556:4:54","nodeType":"YulLiteral","src":"7556:4:54","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7546:6:54","nodeType":"YulIdentifier","src":"7546:6:54"},"nativeSrc":"7546:15:54","nodeType":"YulFunctionCall","src":"7546:15:54"},"nativeSrc":"7546:15:54","nodeType":"YulExpressionStatement","src":"7546:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7577:1:54","nodeType":"YulLiteral","src":"7577:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7580:4:54","nodeType":"YulLiteral","src":"7580:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7570:6:54","nodeType":"YulIdentifier","src":"7570:6:54"},"nativeSrc":"7570:15:54","nodeType":"YulFunctionCall","src":"7570:15:54"},"nativeSrc":"7570:15:54","nodeType":"YulExpressionStatement","src":"7570:15:54"}]},"name":"panic_error_0x32","nativeSrc":"7407:184:54","nodeType":"YulFunctionDefinition","src":"7407:184:54"},{"body":{"nativeSrc":"7691:486:54","nodeType":"YulBlock","src":"7691:486:54","statements":[{"nativeSrc":"7701:51:54","nodeType":"YulVariableDeclaration","src":"7701:51:54","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"7740:11:54","nodeType":"YulIdentifier","src":"7740:11:54"}],"functionName":{"name":"calldataload","nativeSrc":"7727:12:54","nodeType":"YulIdentifier","src":"7727:12:54"},"nativeSrc":"7727:25:54","nodeType":"YulFunctionCall","src":"7727:25:54"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"7705:18:54","nodeType":"YulTypedName","src":"7705:18:54","type":""}]},{"body":{"nativeSrc":"7900:16:54","nodeType":"YulBlock","src":"7900:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7909:1:54","nodeType":"YulLiteral","src":"7909:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7912:1:54","nodeType":"YulLiteral","src":"7912:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7902:6:54","nodeType":"YulIdentifier","src":"7902:6:54"},"nativeSrc":"7902:12:54","nodeType":"YulFunctionCall","src":"7902:12:54"},"nativeSrc":"7902:12:54","nodeType":"YulExpressionStatement","src":"7902:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"7775:18:54","nodeType":"YulIdentifier","src":"7775:18:54"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"7803:12:54","nodeType":"YulIdentifier","src":"7803:12:54"},"nativeSrc":"7803:14:54","nodeType":"YulFunctionCall","src":"7803:14:54"},{"name":"base_ref","nativeSrc":"7819:8:54","nodeType":"YulIdentifier","src":"7819:8:54"}],"functionName":{"name":"sub","nativeSrc":"7799:3:54","nodeType":"YulIdentifier","src":"7799:3:54"},"nativeSrc":"7799:29:54","nodeType":"YulFunctionCall","src":"7799:29:54"},{"kind":"number","nativeSrc":"7830:66:54","nodeType":"YulLiteral","src":"7830:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1"}],"functionName":{"name":"add","nativeSrc":"7795:3:54","nodeType":"YulIdentifier","src":"7795:3:54"},"nativeSrc":"7795:102:54","nodeType":"YulFunctionCall","src":"7795:102:54"}],"functionName":{"name":"slt","nativeSrc":"7771:3:54","nodeType":"YulIdentifier","src":"7771:3:54"},"nativeSrc":"7771:127:54","nodeType":"YulFunctionCall","src":"7771:127:54"}],"functionName":{"name":"iszero","nativeSrc":"7764:6:54","nodeType":"YulIdentifier","src":"7764:6:54"},"nativeSrc":"7764:135:54","nodeType":"YulFunctionCall","src":"7764:135:54"},"nativeSrc":"7761:155:54","nodeType":"YulIf","src":"7761:155:54"},{"nativeSrc":"7925:47:54","nodeType":"YulVariableDeclaration","src":"7925:47:54","value":{"arguments":[{"name":"base_ref","nativeSrc":"7943:8:54","nodeType":"YulIdentifier","src":"7943:8:54"},{"name":"rel_offset_of_tail","nativeSrc":"7953:18:54","nodeType":"YulIdentifier","src":"7953:18:54"}],"functionName":{"name":"add","nativeSrc":"7939:3:54","nodeType":"YulIdentifier","src":"7939:3:54"},"nativeSrc":"7939:33:54","nodeType":"YulFunctionCall","src":"7939:33:54"},"variables":[{"name":"addr_1","nativeSrc":"7929:6:54","nodeType":"YulTypedName","src":"7929:6:54","type":""}]},{"nativeSrc":"7981:30:54","nodeType":"YulAssignment","src":"7981:30:54","value":{"arguments":[{"name":"addr_1","nativeSrc":"8004:6:54","nodeType":"YulIdentifier","src":"8004:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"7991:12:54","nodeType":"YulIdentifier","src":"7991:12:54"},"nativeSrc":"7991:20:54","nodeType":"YulFunctionCall","src":"7991:20:54"},"variableNames":[{"name":"length","nativeSrc":"7981:6:54","nodeType":"YulIdentifier","src":"7981:6:54"}]},{"body":{"nativeSrc":"8054:16:54","nodeType":"YulBlock","src":"8054:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8063:1:54","nodeType":"YulLiteral","src":"8063:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8066:1:54","nodeType":"YulLiteral","src":"8066:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8056:6:54","nodeType":"YulIdentifier","src":"8056:6:54"},"nativeSrc":"8056:12:54","nodeType":"YulFunctionCall","src":"8056:12:54"},"nativeSrc":"8056:12:54","nodeType":"YulExpressionStatement","src":"8056:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8026:6:54","nodeType":"YulIdentifier","src":"8026:6:54"},{"kind":"number","nativeSrc":"8034:18:54","nodeType":"YulLiteral","src":"8034:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8023:2:54","nodeType":"YulIdentifier","src":"8023:2:54"},"nativeSrc":"8023:30:54","nodeType":"YulFunctionCall","src":"8023:30:54"},"nativeSrc":"8020:50:54","nodeType":"YulIf","src":"8020:50:54"},{"nativeSrc":"8079:25:54","nodeType":"YulAssignment","src":"8079:25:54","value":{"arguments":[{"name":"addr_1","nativeSrc":"8091:6:54","nodeType":"YulIdentifier","src":"8091:6:54"},{"kind":"number","nativeSrc":"8099:4:54","nodeType":"YulLiteral","src":"8099:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8087:3:54","nodeType":"YulIdentifier","src":"8087:3:54"},"nativeSrc":"8087:17:54","nodeType":"YulFunctionCall","src":"8087:17:54"},"variableNames":[{"name":"addr","nativeSrc":"8079:4:54","nodeType":"YulIdentifier","src":"8079:4:54"}]},{"body":{"nativeSrc":"8155:16:54","nodeType":"YulBlock","src":"8155:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8164:1:54","nodeType":"YulLiteral","src":"8164:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8167:1:54","nodeType":"YulLiteral","src":"8167:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8157:6:54","nodeType":"YulIdentifier","src":"8157:6:54"},"nativeSrc":"8157:12:54","nodeType":"YulFunctionCall","src":"8157:12:54"},"nativeSrc":"8157:12:54","nodeType":"YulExpressionStatement","src":"8157:12:54"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"8120:4:54","nodeType":"YulIdentifier","src":"8120:4:54"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"8130:12:54","nodeType":"YulIdentifier","src":"8130:12:54"},"nativeSrc":"8130:14:54","nodeType":"YulFunctionCall","src":"8130:14:54"},{"name":"length","nativeSrc":"8146:6:54","nodeType":"YulIdentifier","src":"8146:6:54"}],"functionName":{"name":"sub","nativeSrc":"8126:3:54","nodeType":"YulIdentifier","src":"8126:3:54"},"nativeSrc":"8126:27:54","nodeType":"YulFunctionCall","src":"8126:27:54"}],"functionName":{"name":"sgt","nativeSrc":"8116:3:54","nodeType":"YulIdentifier","src":"8116:3:54"},"nativeSrc":"8116:38:54","nodeType":"YulFunctionCall","src":"8116:38:54"},"nativeSrc":"8113:58:54","nodeType":"YulIf","src":"8113:58:54"}]},"name":"access_calldata_tail_t_string_calldata_ptr","nativeSrc":"7596:581:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"7648:8:54","nodeType":"YulTypedName","src":"7648:8:54","type":""},{"name":"ptr_to_tail","nativeSrc":"7658:11:54","nodeType":"YulTypedName","src":"7658:11:54","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"7674:4:54","nodeType":"YulTypedName","src":"7674:4:54","type":""},{"name":"length","nativeSrc":"7680:6:54","nodeType":"YulTypedName","src":"7680:6:54","type":""}],"src":"7596:581:54"},{"body":{"nativeSrc":"8249:174:54","nodeType":"YulBlock","src":"8249:174:54","statements":[{"body":{"nativeSrc":"8295:16:54","nodeType":"YulBlock","src":"8295:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8304:1:54","nodeType":"YulLiteral","src":"8304:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8307:1:54","nodeType":"YulLiteral","src":"8307:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8297:6:54","nodeType":"YulIdentifier","src":"8297:6:54"},"nativeSrc":"8297:12:54","nodeType":"YulFunctionCall","src":"8297:12:54"},"nativeSrc":"8297:12:54","nodeType":"YulExpressionStatement","src":"8297:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8270:7:54","nodeType":"YulIdentifier","src":"8270:7:54"},{"name":"headStart","nativeSrc":"8279:9:54","nodeType":"YulIdentifier","src":"8279:9:54"}],"functionName":{"name":"sub","nativeSrc":"8266:3:54","nodeType":"YulIdentifier","src":"8266:3:54"},"nativeSrc":"8266:23:54","nodeType":"YulFunctionCall","src":"8266:23:54"},{"kind":"number","nativeSrc":"8291:2:54","nodeType":"YulLiteral","src":"8291:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8262:3:54","nodeType":"YulIdentifier","src":"8262:3:54"},"nativeSrc":"8262:32:54","nodeType":"YulFunctionCall","src":"8262:32:54"},"nativeSrc":"8259:52:54","nodeType":"YulIf","src":"8259:52:54"},{"nativeSrc":"8320:36:54","nodeType":"YulVariableDeclaration","src":"8320:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8346:9:54","nodeType":"YulIdentifier","src":"8346:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"8333:12:54","nodeType":"YulIdentifier","src":"8333:12:54"},"nativeSrc":"8333:23:54","nodeType":"YulFunctionCall","src":"8333:23:54"},"variables":[{"name":"value","nativeSrc":"8324:5:54","nodeType":"YulTypedName","src":"8324:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8387:5:54","nodeType":"YulIdentifier","src":"8387:5:54"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"8365:21:54","nodeType":"YulIdentifier","src":"8365:21:54"},"nativeSrc":"8365:28:54","nodeType":"YulFunctionCall","src":"8365:28:54"},"nativeSrc":"8365:28:54","nodeType":"YulExpressionStatement","src":"8365:28:54"},{"nativeSrc":"8402:15:54","nodeType":"YulAssignment","src":"8402:15:54","value":{"name":"value","nativeSrc":"8412:5:54","nodeType":"YulIdentifier","src":"8412:5:54"},"variableNames":[{"name":"value0","nativeSrc":"8402:6:54","nodeType":"YulIdentifier","src":"8402:6:54"}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"8182:241:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8215:9:54","nodeType":"YulTypedName","src":"8215:9:54","type":""},{"name":"dataEnd","nativeSrc":"8226:7:54","nodeType":"YulTypedName","src":"8226:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8238:6:54","nodeType":"YulTypedName","src":"8238:6:54","type":""}],"src":"8182:241:54"},{"body":{"nativeSrc":"8460:152:54","nodeType":"YulBlock","src":"8460:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8477:1:54","nodeType":"YulLiteral","src":"8477:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8480:77:54","nodeType":"YulLiteral","src":"8480:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8470:6:54","nodeType":"YulIdentifier","src":"8470:6:54"},"nativeSrc":"8470:88:54","nodeType":"YulFunctionCall","src":"8470:88:54"},"nativeSrc":"8470:88:54","nodeType":"YulExpressionStatement","src":"8470:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8574:1:54","nodeType":"YulLiteral","src":"8574:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"8577:4:54","nodeType":"YulLiteral","src":"8577:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8567:6:54","nodeType":"YulIdentifier","src":"8567:6:54"},"nativeSrc":"8567:15:54","nodeType":"YulFunctionCall","src":"8567:15:54"},"nativeSrc":"8567:15:54","nodeType":"YulExpressionStatement","src":"8567:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8598:1:54","nodeType":"YulLiteral","src":"8598:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8601:4:54","nodeType":"YulLiteral","src":"8601:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8591:6:54","nodeType":"YulIdentifier","src":"8591:6:54"},"nativeSrc":"8591:15:54","nodeType":"YulFunctionCall","src":"8591:15:54"},"nativeSrc":"8591:15:54","nodeType":"YulExpressionStatement","src":"8591:15:54"}]},"name":"panic_error_0x41","nativeSrc":"8428:184:54","nodeType":"YulFunctionDefinition","src":"8428:184:54"},{"body":{"nativeSrc":"8673:65:54","nodeType":"YulBlock","src":"8673:65:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8690:1:54","nodeType":"YulLiteral","src":"8690:1:54","type":"","value":"0"},{"name":"ptr","nativeSrc":"8693:3:54","nodeType":"YulIdentifier","src":"8693:3:54"}],"functionName":{"name":"mstore","nativeSrc":"8683:6:54","nodeType":"YulIdentifier","src":"8683:6:54"},"nativeSrc":"8683:14:54","nodeType":"YulFunctionCall","src":"8683:14:54"},"nativeSrc":"8683:14:54","nodeType":"YulExpressionStatement","src":"8683:14:54"},{"nativeSrc":"8706:26:54","nodeType":"YulAssignment","src":"8706:26:54","value":{"arguments":[{"kind":"number","nativeSrc":"8724:1:54","nodeType":"YulLiteral","src":"8724:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8727:4:54","nodeType":"YulLiteral","src":"8727:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8714:9:54","nodeType":"YulIdentifier","src":"8714:9:54"},"nativeSrc":"8714:18:54","nodeType":"YulFunctionCall","src":"8714:18:54"},"variableNames":[{"name":"data","nativeSrc":"8706:4:54","nodeType":"YulIdentifier","src":"8706:4:54"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"8617:121:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"8656:3:54","nodeType":"YulTypedName","src":"8656:3:54","type":""}],"returnVariables":[{"name":"data","nativeSrc":"8664:4:54","nodeType":"YulTypedName","src":"8664:4:54","type":""}],"src":"8617:121:54"},{"body":{"nativeSrc":"8824:462:54","nodeType":"YulBlock","src":"8824:462:54","statements":[{"body":{"nativeSrc":"8857:423:54","nodeType":"YulBlock","src":"8857:423:54","statements":[{"nativeSrc":"8871:11:54","nodeType":"YulVariableDeclaration","src":"8871:11:54","value":{"kind":"number","nativeSrc":"8881:1:54","nodeType":"YulLiteral","src":"8881:1:54","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"8875:2:54","nodeType":"YulTypedName","src":"8875:2:54","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8902:1:54","nodeType":"YulLiteral","src":"8902:1:54","type":"","value":"0"},{"name":"array","nativeSrc":"8905:5:54","nodeType":"YulIdentifier","src":"8905:5:54"}],"functionName":{"name":"mstore","nativeSrc":"8895:6:54","nodeType":"YulIdentifier","src":"8895:6:54"},"nativeSrc":"8895:16:54","nodeType":"YulFunctionCall","src":"8895:16:54"},"nativeSrc":"8895:16:54","nodeType":"YulExpressionStatement","src":"8895:16:54"},{"nativeSrc":"8924:30:54","nodeType":"YulVariableDeclaration","src":"8924:30:54","value":{"arguments":[{"kind":"number","nativeSrc":"8946:1:54","nodeType":"YulLiteral","src":"8946:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8949:4:54","nodeType":"YulLiteral","src":"8949:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8936:9:54","nodeType":"YulIdentifier","src":"8936:9:54"},"nativeSrc":"8936:18:54","nodeType":"YulFunctionCall","src":"8936:18:54"},"variables":[{"name":"data","nativeSrc":"8928:4:54","nodeType":"YulTypedName","src":"8928:4:54","type":""}]},{"nativeSrc":"8967:57:54","nodeType":"YulVariableDeclaration","src":"8967:57:54","value":{"arguments":[{"name":"data","nativeSrc":"8990:4:54","nodeType":"YulIdentifier","src":"8990:4:54"},{"arguments":[{"kind":"number","nativeSrc":"9000:1:54","nodeType":"YulLiteral","src":"9000:1:54","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"9007:10:54","nodeType":"YulIdentifier","src":"9007:10:54"},{"kind":"number","nativeSrc":"9019:2:54","nodeType":"YulLiteral","src":"9019:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9003:3:54","nodeType":"YulIdentifier","src":"9003:3:54"},"nativeSrc":"9003:19:54","nodeType":"YulFunctionCall","src":"9003:19:54"}],"functionName":{"name":"shr","nativeSrc":"8996:3:54","nodeType":"YulIdentifier","src":"8996:3:54"},"nativeSrc":"8996:27:54","nodeType":"YulFunctionCall","src":"8996:27:54"}],"functionName":{"name":"add","nativeSrc":"8986:3:54","nodeType":"YulIdentifier","src":"8986:3:54"},"nativeSrc":"8986:38:54","nodeType":"YulFunctionCall","src":"8986:38:54"},"variables":[{"name":"deleteStart","nativeSrc":"8971:11:54","nodeType":"YulTypedName","src":"8971:11:54","type":""}]},{"body":{"nativeSrc":"9061:23:54","nodeType":"YulBlock","src":"9061:23:54","statements":[{"nativeSrc":"9063:19:54","nodeType":"YulAssignment","src":"9063:19:54","value":{"name":"data","nativeSrc":"9078:4:54","nodeType":"YulIdentifier","src":"9078:4:54"},"variableNames":[{"name":"deleteStart","nativeSrc":"9063:11:54","nodeType":"YulIdentifier","src":"9063:11:54"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"9043:10:54","nodeType":"YulIdentifier","src":"9043:10:54"},{"kind":"number","nativeSrc":"9055:4:54","nodeType":"YulLiteral","src":"9055:4:54","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"9040:2:54","nodeType":"YulIdentifier","src":"9040:2:54"},"nativeSrc":"9040:20:54","nodeType":"YulFunctionCall","src":"9040:20:54"},"nativeSrc":"9037:47:54","nodeType":"YulIf","src":"9037:47:54"},{"nativeSrc":"9097:41:54","nodeType":"YulVariableDeclaration","src":"9097:41:54","value":{"arguments":[{"name":"data","nativeSrc":"9111:4:54","nodeType":"YulIdentifier","src":"9111:4:54"},{"arguments":[{"kind":"number","nativeSrc":"9121:1:54","nodeType":"YulLiteral","src":"9121:1:54","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"9128:3:54","nodeType":"YulIdentifier","src":"9128:3:54"},{"kind":"number","nativeSrc":"9133:2:54","nodeType":"YulLiteral","src":"9133:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9124:3:54","nodeType":"YulIdentifier","src":"9124:3:54"},"nativeSrc":"9124:12:54","nodeType":"YulFunctionCall","src":"9124:12:54"}],"functionName":{"name":"shr","nativeSrc":"9117:3:54","nodeType":"YulIdentifier","src":"9117:3:54"},"nativeSrc":"9117:20:54","nodeType":"YulFunctionCall","src":"9117:20:54"}],"functionName":{"name":"add","nativeSrc":"9107:3:54","nodeType":"YulIdentifier","src":"9107:3:54"},"nativeSrc":"9107:31:54","nodeType":"YulFunctionCall","src":"9107:31:54"},"variables":[{"name":"_2","nativeSrc":"9101:2:54","nodeType":"YulTypedName","src":"9101:2:54","type":""}]},{"nativeSrc":"9151:24:54","nodeType":"YulVariableDeclaration","src":"9151:24:54","value":{"name":"deleteStart","nativeSrc":"9164:11:54","nodeType":"YulIdentifier","src":"9164:11:54"},"variables":[{"name":"start","nativeSrc":"9155:5:54","nodeType":"YulTypedName","src":"9155:5:54","type":""}]},{"body":{"nativeSrc":"9249:21:54","nodeType":"YulBlock","src":"9249:21:54","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"9258:5:54","nodeType":"YulIdentifier","src":"9258:5:54"},{"name":"_1","nativeSrc":"9265:2:54","nodeType":"YulIdentifier","src":"9265:2:54"}],"functionName":{"name":"sstore","nativeSrc":"9251:6:54","nodeType":"YulIdentifier","src":"9251:6:54"},"nativeSrc":"9251:17:54","nodeType":"YulFunctionCall","src":"9251:17:54"},"nativeSrc":"9251:17:54","nodeType":"YulExpressionStatement","src":"9251:17:54"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"9199:5:54","nodeType":"YulIdentifier","src":"9199:5:54"},{"name":"_2","nativeSrc":"9206:2:54","nodeType":"YulIdentifier","src":"9206:2:54"}],"functionName":{"name":"lt","nativeSrc":"9196:2:54","nodeType":"YulIdentifier","src":"9196:2:54"},"nativeSrc":"9196:13:54","nodeType":"YulFunctionCall","src":"9196:13:54"},"nativeSrc":"9188:82:54","nodeType":"YulForLoop","post":{"nativeSrc":"9210:26:54","nodeType":"YulBlock","src":"9210:26:54","statements":[{"nativeSrc":"9212:22:54","nodeType":"YulAssignment","src":"9212:22:54","value":{"arguments":[{"name":"start","nativeSrc":"9225:5:54","nodeType":"YulIdentifier","src":"9225:5:54"},{"kind":"number","nativeSrc":"9232:1:54","nodeType":"YulLiteral","src":"9232:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9221:3:54","nodeType":"YulIdentifier","src":"9221:3:54"},"nativeSrc":"9221:13:54","nodeType":"YulFunctionCall","src":"9221:13:54"},"variableNames":[{"name":"start","nativeSrc":"9212:5:54","nodeType":"YulIdentifier","src":"9212:5:54"}]}]},"pre":{"nativeSrc":"9192:3:54","nodeType":"YulBlock","src":"9192:3:54","statements":[]},"src":"9188:82:54"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"8840:3:54","nodeType":"YulIdentifier","src":"8840:3:54"},{"kind":"number","nativeSrc":"8845:2:54","nodeType":"YulLiteral","src":"8845:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8837:2:54","nodeType":"YulIdentifier","src":"8837:2:54"},"nativeSrc":"8837:11:54","nodeType":"YulFunctionCall","src":"8837:11:54"},"nativeSrc":"8834:446:54","nodeType":"YulIf","src":"8834:446:54"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"8743:543:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"8796:5:54","nodeType":"YulTypedName","src":"8796:5:54","type":""},{"name":"len","nativeSrc":"8803:3:54","nodeType":"YulTypedName","src":"8803:3:54","type":""},{"name":"startIndex","nativeSrc":"8808:10:54","nodeType":"YulTypedName","src":"8808:10:54","type":""}],"src":"8743:543:54"},{"body":{"nativeSrc":"9376:141:54","nodeType":"YulBlock","src":"9376:141:54","statements":[{"nativeSrc":"9386:125:54","nodeType":"YulAssignment","src":"9386:125:54","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"9401:4:54","nodeType":"YulIdentifier","src":"9401:4:54"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9419:1:54","nodeType":"YulLiteral","src":"9419:1:54","type":"","value":"3"},{"name":"len","nativeSrc":"9422:3:54","nodeType":"YulIdentifier","src":"9422:3:54"}],"functionName":{"name":"shl","nativeSrc":"9415:3:54","nodeType":"YulIdentifier","src":"9415:3:54"},"nativeSrc":"9415:11:54","nodeType":"YulFunctionCall","src":"9415:11:54"},{"kind":"number","nativeSrc":"9428:66:54","nodeType":"YulLiteral","src":"9428:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"9411:3:54","nodeType":"YulIdentifier","src":"9411:3:54"},"nativeSrc":"9411:84:54","nodeType":"YulFunctionCall","src":"9411:84:54"}],"functionName":{"name":"not","nativeSrc":"9407:3:54","nodeType":"YulIdentifier","src":"9407:3:54"},"nativeSrc":"9407:89:54","nodeType":"YulFunctionCall","src":"9407:89:54"}],"functionName":{"name":"and","nativeSrc":"9397:3:54","nodeType":"YulIdentifier","src":"9397:3:54"},"nativeSrc":"9397:100:54","nodeType":"YulFunctionCall","src":"9397:100:54"},{"arguments":[{"kind":"number","nativeSrc":"9503:1:54","nodeType":"YulLiteral","src":"9503:1:54","type":"","value":"1"},{"name":"len","nativeSrc":"9506:3:54","nodeType":"YulIdentifier","src":"9506:3:54"}],"functionName":{"name":"shl","nativeSrc":"9499:3:54","nodeType":"YulIdentifier","src":"9499:3:54"},"nativeSrc":"9499:11:54","nodeType":"YulFunctionCall","src":"9499:11:54"}],"functionName":{"name":"or","nativeSrc":"9394:2:54","nodeType":"YulIdentifier","src":"9394:2:54"},"nativeSrc":"9394:117:54","nodeType":"YulFunctionCall","src":"9394:117:54"},"variableNames":[{"name":"used","nativeSrc":"9386:4:54","nodeType":"YulIdentifier","src":"9386:4:54"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"9291:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"9353:4:54","nodeType":"YulTypedName","src":"9353:4:54","type":""},{"name":"len","nativeSrc":"9359:3:54","nodeType":"YulTypedName","src":"9359:3:54","type":""}],"returnVariables":[{"name":"used","nativeSrc":"9367:4:54","nodeType":"YulTypedName","src":"9367:4:54","type":""}],"src":"9291:226:54"},{"body":{"nativeSrc":"9625:1222:54","nodeType":"YulBlock","src":"9625:1222:54","statements":[{"body":{"nativeSrc":"9666:22:54","nodeType":"YulBlock","src":"9666:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9668:16:54","nodeType":"YulIdentifier","src":"9668:16:54"},"nativeSrc":"9668:18:54","nodeType":"YulFunctionCall","src":"9668:18:54"},"nativeSrc":"9668:18:54","nodeType":"YulExpressionStatement","src":"9668:18:54"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"9641:3:54","nodeType":"YulIdentifier","src":"9641:3:54"},{"kind":"number","nativeSrc":"9646:18:54","nodeType":"YulLiteral","src":"9646:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9638:2:54","nodeType":"YulIdentifier","src":"9638:2:54"},"nativeSrc":"9638:27:54","nodeType":"YulFunctionCall","src":"9638:27:54"},"nativeSrc":"9635:53:54","nodeType":"YulIf","src":"9635:53:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"9741:4:54","nodeType":"YulIdentifier","src":"9741:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"9779:4:54","nodeType":"YulIdentifier","src":"9779:4:54"}],"functionName":{"name":"sload","nativeSrc":"9773:5:54","nodeType":"YulIdentifier","src":"9773:5:54"},"nativeSrc":"9773:11:54","nodeType":"YulFunctionCall","src":"9773:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"9747:25:54","nodeType":"YulIdentifier","src":"9747:25:54"},"nativeSrc":"9747:38:54","nodeType":"YulFunctionCall","src":"9747:38:54"},{"name":"len","nativeSrc":"9787:3:54","nodeType":"YulIdentifier","src":"9787:3:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"9697:43:54","nodeType":"YulIdentifier","src":"9697:43:54"},"nativeSrc":"9697:94:54","nodeType":"YulFunctionCall","src":"9697:94:54"},"nativeSrc":"9697:94:54","nodeType":"YulExpressionStatement","src":"9697:94:54"},{"nativeSrc":"9800:18:54","nodeType":"YulVariableDeclaration","src":"9800:18:54","value":{"kind":"number","nativeSrc":"9817:1:54","nodeType":"YulLiteral","src":"9817:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"9804:9:54","nodeType":"YulTypedName","src":"9804:9:54","type":""}]},{"cases":[{"body":{"nativeSrc":"9861:728:54","nodeType":"YulBlock","src":"9861:728:54","statements":[{"nativeSrc":"9875:91:54","nodeType":"YulVariableDeclaration","src":"9875:91:54","value":{"arguments":[{"name":"len","nativeSrc":"9894:3:54","nodeType":"YulIdentifier","src":"9894:3:54"},{"kind":"number","nativeSrc":"9899:66:54","nodeType":"YulLiteral","src":"9899:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"9890:3:54","nodeType":"YulIdentifier","src":"9890:3:54"},"nativeSrc":"9890:76:54","nodeType":"YulFunctionCall","src":"9890:76:54"},"variables":[{"name":"loopEnd","nativeSrc":"9879:7:54","nodeType":"YulTypedName","src":"9879:7:54","type":""}]},{"nativeSrc":"9979:49:54","nodeType":"YulVariableDeclaration","src":"9979:49:54","value":{"arguments":[{"name":"slot","nativeSrc":"10023:4:54","nodeType":"YulIdentifier","src":"10023:4:54"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"9993:29:54","nodeType":"YulIdentifier","src":"9993:29:54"},"nativeSrc":"9993:35:54","nodeType":"YulFunctionCall","src":"9993:35:54"},"variables":[{"name":"dstPtr","nativeSrc":"9983:6:54","nodeType":"YulTypedName","src":"9983:6:54","type":""}]},{"nativeSrc":"10041:18:54","nodeType":"YulVariableDeclaration","src":"10041:18:54","value":{"name":"srcOffset","nativeSrc":"10050:9:54","nodeType":"YulIdentifier","src":"10050:9:54"},"variables":[{"name":"i","nativeSrc":"10045:1:54","nodeType":"YulTypedName","src":"10045:1:54","type":""}]},{"body":{"nativeSrc":"10129:172:54","nodeType":"YulBlock","src":"10129:172:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"10154:6:54","nodeType":"YulIdentifier","src":"10154:6:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10179:3:54","nodeType":"YulIdentifier","src":"10179:3:54"},{"name":"srcOffset","nativeSrc":"10184:9:54","nodeType":"YulIdentifier","src":"10184:9:54"}],"functionName":{"name":"add","nativeSrc":"10175:3:54","nodeType":"YulIdentifier","src":"10175:3:54"},"nativeSrc":"10175:19:54","nodeType":"YulFunctionCall","src":"10175:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"10162:12:54","nodeType":"YulIdentifier","src":"10162:12:54"},"nativeSrc":"10162:33:54","nodeType":"YulFunctionCall","src":"10162:33:54"}],"functionName":{"name":"sstore","nativeSrc":"10147:6:54","nodeType":"YulIdentifier","src":"10147:6:54"},"nativeSrc":"10147:49:54","nodeType":"YulFunctionCall","src":"10147:49:54"},"nativeSrc":"10147:49:54","nodeType":"YulExpressionStatement","src":"10147:49:54"},{"nativeSrc":"10213:24:54","nodeType":"YulAssignment","src":"10213:24:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"10227:6:54","nodeType":"YulIdentifier","src":"10227:6:54"},{"kind":"number","nativeSrc":"10235:1:54","nodeType":"YulLiteral","src":"10235:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10223:3:54","nodeType":"YulIdentifier","src":"10223:3:54"},"nativeSrc":"10223:14:54","nodeType":"YulFunctionCall","src":"10223:14:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"10213:6:54","nodeType":"YulIdentifier","src":"10213:6:54"}]},{"nativeSrc":"10254:33:54","nodeType":"YulAssignment","src":"10254:33:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"10271:9:54","nodeType":"YulIdentifier","src":"10271:9:54"},{"kind":"number","nativeSrc":"10282:4:54","nodeType":"YulLiteral","src":"10282:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10267:3:54","nodeType":"YulIdentifier","src":"10267:3:54"},"nativeSrc":"10267:20:54","nodeType":"YulFunctionCall","src":"10267:20:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"10254:9:54","nodeType":"YulIdentifier","src":"10254:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"10083:1:54","nodeType":"YulIdentifier","src":"10083:1:54"},{"name":"loopEnd","nativeSrc":"10086:7:54","nodeType":"YulIdentifier","src":"10086:7:54"}],"functionName":{"name":"lt","nativeSrc":"10080:2:54","nodeType":"YulIdentifier","src":"10080:2:54"},"nativeSrc":"10080:14:54","nodeType":"YulFunctionCall","src":"10080:14:54"},"nativeSrc":"10072:229:54","nodeType":"YulForLoop","post":{"nativeSrc":"10095:21:54","nodeType":"YulBlock","src":"10095:21:54","statements":[{"nativeSrc":"10097:17:54","nodeType":"YulAssignment","src":"10097:17:54","value":{"arguments":[{"name":"i","nativeSrc":"10106:1:54","nodeType":"YulIdentifier","src":"10106:1:54"},{"kind":"number","nativeSrc":"10109:4:54","nodeType":"YulLiteral","src":"10109:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10102:3:54","nodeType":"YulIdentifier","src":"10102:3:54"},"nativeSrc":"10102:12:54","nodeType":"YulFunctionCall","src":"10102:12:54"},"variableNames":[{"name":"i","nativeSrc":"10097:1:54","nodeType":"YulIdentifier","src":"10097:1:54"}]}]},"pre":{"nativeSrc":"10076:3:54","nodeType":"YulBlock","src":"10076:3:54","statements":[]},"src":"10072:229:54"},{"body":{"nativeSrc":"10346:187:54","nodeType":"YulBlock","src":"10346:187:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"10371:6:54","nodeType":"YulIdentifier","src":"10371:6:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10400:3:54","nodeType":"YulIdentifier","src":"10400:3:54"},{"name":"srcOffset","nativeSrc":"10405:9:54","nodeType":"YulIdentifier","src":"10405:9:54"}],"functionName":{"name":"add","nativeSrc":"10396:3:54","nodeType":"YulIdentifier","src":"10396:3:54"},"nativeSrc":"10396:19:54","nodeType":"YulFunctionCall","src":"10396:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"10383:12:54","nodeType":"YulIdentifier","src":"10383:12:54"},"nativeSrc":"10383:33:54","nodeType":"YulFunctionCall","src":"10383:33:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10434:1:54","nodeType":"YulLiteral","src":"10434:1:54","type":"","value":"3"},{"name":"len","nativeSrc":"10437:3:54","nodeType":"YulIdentifier","src":"10437:3:54"}],"functionName":{"name":"shl","nativeSrc":"10430:3:54","nodeType":"YulIdentifier","src":"10430:3:54"},"nativeSrc":"10430:11:54","nodeType":"YulFunctionCall","src":"10430:11:54"},{"kind":"number","nativeSrc":"10443:3:54","nodeType":"YulLiteral","src":"10443:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"10426:3:54","nodeType":"YulIdentifier","src":"10426:3:54"},"nativeSrc":"10426:21:54","nodeType":"YulFunctionCall","src":"10426:21:54"},{"kind":"number","nativeSrc":"10449:66:54","nodeType":"YulLiteral","src":"10449:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"10422:3:54","nodeType":"YulIdentifier","src":"10422:3:54"},"nativeSrc":"10422:94:54","nodeType":"YulFunctionCall","src":"10422:94:54"}],"functionName":{"name":"not","nativeSrc":"10418:3:54","nodeType":"YulIdentifier","src":"10418:3:54"},"nativeSrc":"10418:99:54","nodeType":"YulFunctionCall","src":"10418:99:54"}],"functionName":{"name":"and","nativeSrc":"10379:3:54","nodeType":"YulIdentifier","src":"10379:3:54"},"nativeSrc":"10379:139:54","nodeType":"YulFunctionCall","src":"10379:139:54"}],"functionName":{"name":"sstore","nativeSrc":"10364:6:54","nodeType":"YulIdentifier","src":"10364:6:54"},"nativeSrc":"10364:155:54","nodeType":"YulFunctionCall","src":"10364:155:54"},"nativeSrc":"10364:155:54","nodeType":"YulExpressionStatement","src":"10364:155:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"10320:7:54","nodeType":"YulIdentifier","src":"10320:7:54"},{"name":"len","nativeSrc":"10329:3:54","nodeType":"YulIdentifier","src":"10329:3:54"}],"functionName":{"name":"lt","nativeSrc":"10317:2:54","nodeType":"YulIdentifier","src":"10317:2:54"},"nativeSrc":"10317:16:54","nodeType":"YulFunctionCall","src":"10317:16:54"},"nativeSrc":"10314:219:54","nodeType":"YulIf","src":"10314:219:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"10553:4:54","nodeType":"YulIdentifier","src":"10553:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10567:1:54","nodeType":"YulLiteral","src":"10567:1:54","type":"","value":"1"},{"name":"len","nativeSrc":"10570:3:54","nodeType":"YulIdentifier","src":"10570:3:54"}],"functionName":{"name":"shl","nativeSrc":"10563:3:54","nodeType":"YulIdentifier","src":"10563:3:54"},"nativeSrc":"10563:11:54","nodeType":"YulFunctionCall","src":"10563:11:54"},{"kind":"number","nativeSrc":"10576:1:54","nodeType":"YulLiteral","src":"10576:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10559:3:54","nodeType":"YulIdentifier","src":"10559:3:54"},"nativeSrc":"10559:19:54","nodeType":"YulFunctionCall","src":"10559:19:54"}],"functionName":{"name":"sstore","nativeSrc":"10546:6:54","nodeType":"YulIdentifier","src":"10546:6:54"},"nativeSrc":"10546:33:54","nodeType":"YulFunctionCall","src":"10546:33:54"},"nativeSrc":"10546:33:54","nodeType":"YulExpressionStatement","src":"10546:33:54"}]},"nativeSrc":"9854:735:54","nodeType":"YulCase","src":"9854:735:54","value":{"kind":"number","nativeSrc":"9859:1:54","nodeType":"YulLiteral","src":"9859:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"10606:235:54","nodeType":"YulBlock","src":"10606:235:54","statements":[{"nativeSrc":"10620:14:54","nodeType":"YulVariableDeclaration","src":"10620:14:54","value":{"kind":"number","nativeSrc":"10633:1:54","nodeType":"YulLiteral","src":"10633:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"10624:5:54","nodeType":"YulTypedName","src":"10624:5:54","type":""}]},{"body":{"nativeSrc":"10666:74:54","nodeType":"YulBlock","src":"10666:74:54","statements":[{"nativeSrc":"10684:42:54","nodeType":"YulAssignment","src":"10684:42:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10710:3:54","nodeType":"YulIdentifier","src":"10710:3:54"},{"name":"srcOffset","nativeSrc":"10715:9:54","nodeType":"YulIdentifier","src":"10715:9:54"}],"functionName":{"name":"add","nativeSrc":"10706:3:54","nodeType":"YulIdentifier","src":"10706:3:54"},"nativeSrc":"10706:19:54","nodeType":"YulFunctionCall","src":"10706:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"10693:12:54","nodeType":"YulIdentifier","src":"10693:12:54"},"nativeSrc":"10693:33:54","nodeType":"YulFunctionCall","src":"10693:33:54"},"variableNames":[{"name":"value","nativeSrc":"10684:5:54","nodeType":"YulIdentifier","src":"10684:5:54"}]}]},"condition":{"name":"len","nativeSrc":"10650:3:54","nodeType":"YulIdentifier","src":"10650:3:54"},"nativeSrc":"10647:93:54","nodeType":"YulIf","src":"10647:93:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"10760:4:54","nodeType":"YulIdentifier","src":"10760:4:54"},{"arguments":[{"name":"value","nativeSrc":"10819:5:54","nodeType":"YulIdentifier","src":"10819:5:54"},{"name":"len","nativeSrc":"10826:3:54","nodeType":"YulIdentifier","src":"10826:3:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"10766:52:54","nodeType":"YulIdentifier","src":"10766:52:54"},"nativeSrc":"10766:64:54","nodeType":"YulFunctionCall","src":"10766:64:54"}],"functionName":{"name":"sstore","nativeSrc":"10753:6:54","nodeType":"YulIdentifier","src":"10753:6:54"},"nativeSrc":"10753:78:54","nodeType":"YulFunctionCall","src":"10753:78:54"},"nativeSrc":"10753:78:54","nodeType":"YulExpressionStatement","src":"10753:78:54"}]},"nativeSrc":"10598:243:54","nodeType":"YulCase","src":"10598:243:54","value":"default"}],"expression":{"arguments":[{"name":"len","nativeSrc":"9837:3:54","nodeType":"YulIdentifier","src":"9837:3:54"},{"kind":"number","nativeSrc":"9842:2:54","nodeType":"YulLiteral","src":"9842:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"9834:2:54","nodeType":"YulIdentifier","src":"9834:2:54"},"nativeSrc":"9834:11:54","nodeType":"YulFunctionCall","src":"9834:11:54"},"nativeSrc":"9827:1014:54","nodeType":"YulSwitch","src":"9827:1014:54"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nativeSrc":"9522:1325:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"9605:4:54","nodeType":"YulTypedName","src":"9605:4:54","type":""},{"name":"src","nativeSrc":"9611:3:54","nodeType":"YulTypedName","src":"9611:3:54","type":""},{"name":"len","nativeSrc":"9616:3:54","nodeType":"YulTypedName","src":"9616:3:54","type":""}],"src":"9522:1325:54"},{"body":{"nativeSrc":"11001:124:54","nodeType":"YulBlock","src":"11001:124:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11024:3:54","nodeType":"YulIdentifier","src":"11024:3:54"},{"name":"value0","nativeSrc":"11029:6:54","nodeType":"YulIdentifier","src":"11029:6:54"},{"name":"value1","nativeSrc":"11037:6:54","nodeType":"YulIdentifier","src":"11037:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"11011:12:54","nodeType":"YulIdentifier","src":"11011:12:54"},"nativeSrc":"11011:33:54","nodeType":"YulFunctionCall","src":"11011:33:54"},"nativeSrc":"11011:33:54","nodeType":"YulExpressionStatement","src":"11011:33:54"},{"nativeSrc":"11053:26:54","nodeType":"YulVariableDeclaration","src":"11053:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"11067:3:54","nodeType":"YulIdentifier","src":"11067:3:54"},{"name":"value1","nativeSrc":"11072:6:54","nodeType":"YulIdentifier","src":"11072:6:54"}],"functionName":{"name":"add","nativeSrc":"11063:3:54","nodeType":"YulIdentifier","src":"11063:3:54"},"nativeSrc":"11063:16:54","nodeType":"YulFunctionCall","src":"11063:16:54"},"variables":[{"name":"_1","nativeSrc":"11057:2:54","nodeType":"YulTypedName","src":"11057:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"11095:2:54","nodeType":"YulIdentifier","src":"11095:2:54"},{"kind":"number","nativeSrc":"11099:1:54","nodeType":"YulLiteral","src":"11099:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11088:6:54","nodeType":"YulIdentifier","src":"11088:6:54"},"nativeSrc":"11088:13:54","nodeType":"YulFunctionCall","src":"11088:13:54"},"nativeSrc":"11088:13:54","nodeType":"YulExpressionStatement","src":"11088:13:54"},{"nativeSrc":"11110:9:54","nodeType":"YulAssignment","src":"11110:9:54","value":{"name":"_1","nativeSrc":"11117:2:54","nodeType":"YulIdentifier","src":"11117:2:54"},"variableNames":[{"name":"end","nativeSrc":"11110:3:54","nodeType":"YulIdentifier","src":"11110:3:54"}]}]},"name":"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"10852:273:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10969:3:54","nodeType":"YulTypedName","src":"10969:3:54","type":""},{"name":"value1","nativeSrc":"10974:6:54","nodeType":"YulTypedName","src":"10974:6:54","type":""},{"name":"value0","nativeSrc":"10982:6:54","nodeType":"YulTypedName","src":"10982:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10993:3:54","nodeType":"YulTypedName","src":"10993:3:54","type":""}],"src":"10852:273:54"},{"body":{"nativeSrc":"11225:92:54","nodeType":"YulBlock","src":"11225:92:54","statements":[{"nativeSrc":"11235:26:54","nodeType":"YulAssignment","src":"11235:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11247:9:54","nodeType":"YulIdentifier","src":"11247:9:54"},{"kind":"number","nativeSrc":"11258:2:54","nodeType":"YulLiteral","src":"11258:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11243:3:54","nodeType":"YulIdentifier","src":"11243:3:54"},"nativeSrc":"11243:18:54","nodeType":"YulFunctionCall","src":"11243:18:54"},"variableNames":[{"name":"tail","nativeSrc":"11235:4:54","nodeType":"YulIdentifier","src":"11235:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11277:9:54","nodeType":"YulIdentifier","src":"11277:9:54"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11302:6:54","nodeType":"YulIdentifier","src":"11302:6:54"}],"functionName":{"name":"iszero","nativeSrc":"11295:6:54","nodeType":"YulIdentifier","src":"11295:6:54"},"nativeSrc":"11295:14:54","nodeType":"YulFunctionCall","src":"11295:14:54"}],"functionName":{"name":"iszero","nativeSrc":"11288:6:54","nodeType":"YulIdentifier","src":"11288:6:54"},"nativeSrc":"11288:22:54","nodeType":"YulFunctionCall","src":"11288:22:54"}],"functionName":{"name":"mstore","nativeSrc":"11270:6:54","nodeType":"YulIdentifier","src":"11270:6:54"},"nativeSrc":"11270:41:54","nodeType":"YulFunctionCall","src":"11270:41:54"},"nativeSrc":"11270:41:54","nodeType":"YulExpressionStatement","src":"11270:41:54"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"11130:187:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11194:9:54","nodeType":"YulTypedName","src":"11194:9:54","type":""},{"name":"value0","nativeSrc":"11205:6:54","nodeType":"YulTypedName","src":"11205:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11216:4:54","nodeType":"YulTypedName","src":"11216:4:54","type":""}],"src":"11130:187:54"},{"body":{"nativeSrc":"11496:231:54","nodeType":"YulBlock","src":"11496:231:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11513:9:54","nodeType":"YulIdentifier","src":"11513:9:54"},{"kind":"number","nativeSrc":"11524:2:54","nodeType":"YulLiteral","src":"11524:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11506:6:54","nodeType":"YulIdentifier","src":"11506:6:54"},"nativeSrc":"11506:21:54","nodeType":"YulFunctionCall","src":"11506:21:54"},"nativeSrc":"11506:21:54","nodeType":"YulExpressionStatement","src":"11506:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11547:9:54","nodeType":"YulIdentifier","src":"11547:9:54"},{"kind":"number","nativeSrc":"11558:2:54","nodeType":"YulLiteral","src":"11558:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11543:3:54","nodeType":"YulIdentifier","src":"11543:3:54"},"nativeSrc":"11543:18:54","nodeType":"YulFunctionCall","src":"11543:18:54"},{"kind":"number","nativeSrc":"11563:2:54","nodeType":"YulLiteral","src":"11563:2:54","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"11536:6:54","nodeType":"YulIdentifier","src":"11536:6:54"},"nativeSrc":"11536:30:54","nodeType":"YulFunctionCall","src":"11536:30:54"},"nativeSrc":"11536:30:54","nodeType":"YulExpressionStatement","src":"11536:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11586:9:54","nodeType":"YulIdentifier","src":"11586:9:54"},{"kind":"number","nativeSrc":"11597:2:54","nodeType":"YulLiteral","src":"11597:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11582:3:54","nodeType":"YulIdentifier","src":"11582:3:54"},"nativeSrc":"11582:18:54","nodeType":"YulFunctionCall","src":"11582:18:54"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"11602:34:54","nodeType":"YulLiteral","src":"11602:34:54","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"11575:6:54","nodeType":"YulIdentifier","src":"11575:6:54"},"nativeSrc":"11575:62:54","nodeType":"YulFunctionCall","src":"11575:62:54"},"nativeSrc":"11575:62:54","nodeType":"YulExpressionStatement","src":"11575:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11657:9:54","nodeType":"YulIdentifier","src":"11657:9:54"},{"kind":"number","nativeSrc":"11668:2:54","nodeType":"YulLiteral","src":"11668:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11653:3:54","nodeType":"YulIdentifier","src":"11653:3:54"},"nativeSrc":"11653:18:54","nodeType":"YulFunctionCall","src":"11653:18:54"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"11673:11:54","nodeType":"YulLiteral","src":"11673:11:54","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"11646:6:54","nodeType":"YulIdentifier","src":"11646:6:54"},"nativeSrc":"11646:39:54","nodeType":"YulFunctionCall","src":"11646:39:54"},"nativeSrc":"11646:39:54","nodeType":"YulExpressionStatement","src":"11646:39:54"},{"nativeSrc":"11694:27:54","nodeType":"YulAssignment","src":"11694:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11706:9:54","nodeType":"YulIdentifier","src":"11706:9:54"},{"kind":"number","nativeSrc":"11717:3:54","nodeType":"YulLiteral","src":"11717:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11702:3:54","nodeType":"YulIdentifier","src":"11702:3:54"},"nativeSrc":"11702:19:54","nodeType":"YulFunctionCall","src":"11702:19:54"},"variableNames":[{"name":"tail","nativeSrc":"11694:4:54","nodeType":"YulIdentifier","src":"11694:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11322:405:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11473:9:54","nodeType":"YulTypedName","src":"11473:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11487:4:54","nodeType":"YulTypedName","src":"11487:4:54","type":""}],"src":"11322:405:54"},{"body":{"nativeSrc":"11906:174:54","nodeType":"YulBlock","src":"11906:174:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11923:9:54","nodeType":"YulIdentifier","src":"11923:9:54"},{"kind":"number","nativeSrc":"11934:2:54","nodeType":"YulLiteral","src":"11934:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11916:6:54","nodeType":"YulIdentifier","src":"11916:6:54"},"nativeSrc":"11916:21:54","nodeType":"YulFunctionCall","src":"11916:21:54"},"nativeSrc":"11916:21:54","nodeType":"YulExpressionStatement","src":"11916:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11957:9:54","nodeType":"YulIdentifier","src":"11957:9:54"},{"kind":"number","nativeSrc":"11968:2:54","nodeType":"YulLiteral","src":"11968:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11953:3:54","nodeType":"YulIdentifier","src":"11953:3:54"},"nativeSrc":"11953:18:54","nodeType":"YulFunctionCall","src":"11953:18:54"},{"kind":"number","nativeSrc":"11973:2:54","nodeType":"YulLiteral","src":"11973:2:54","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"11946:6:54","nodeType":"YulIdentifier","src":"11946:6:54"},"nativeSrc":"11946:30:54","nodeType":"YulFunctionCall","src":"11946:30:54"},"nativeSrc":"11946:30:54","nodeType":"YulExpressionStatement","src":"11946:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11996:9:54","nodeType":"YulIdentifier","src":"11996:9:54"},{"kind":"number","nativeSrc":"12007:2:54","nodeType":"YulLiteral","src":"12007:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11992:3:54","nodeType":"YulIdentifier","src":"11992:3:54"},"nativeSrc":"11992:18:54","nodeType":"YulFunctionCall","src":"11992:18:54"},{"hexValue":"436861696e4964206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"12012:26:54","nodeType":"YulLiteral","src":"12012:26:54","type":"","value":"ChainId must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"11985:6:54","nodeType":"YulIdentifier","src":"11985:6:54"},"nativeSrc":"11985:54:54","nodeType":"YulFunctionCall","src":"11985:54:54"},"nativeSrc":"11985:54:54","nodeType":"YulExpressionStatement","src":"11985:54:54"},{"nativeSrc":"12048:26:54","nodeType":"YulAssignment","src":"12048:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12060:9:54","nodeType":"YulIdentifier","src":"12060:9:54"},{"kind":"number","nativeSrc":"12071:2:54","nodeType":"YulLiteral","src":"12071:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12056:3:54","nodeType":"YulIdentifier","src":"12056:3:54"},"nativeSrc":"12056:18:54","nodeType":"YulFunctionCall","src":"12056:18:54"},"variableNames":[{"name":"tail","nativeSrc":"12048:4:54","nodeType":"YulIdentifier","src":"12048:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11732:348:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11883:9:54","nodeType":"YulTypedName","src":"11883:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11897:4:54","nodeType":"YulTypedName","src":"11897:4:54","type":""}],"src":"11732:348:54"},{"body":{"nativeSrc":"12186:271:54","nodeType":"YulBlock","src":"12186:271:54","statements":[{"nativeSrc":"12196:29:54","nodeType":"YulVariableDeclaration","src":"12196:29:54","value":{"arguments":[{"name":"array","nativeSrc":"12219:5:54","nodeType":"YulIdentifier","src":"12219:5:54"}],"functionName":{"name":"calldataload","nativeSrc":"12206:12:54","nodeType":"YulIdentifier","src":"12206:12:54"},"nativeSrc":"12206:19:54","nodeType":"YulFunctionCall","src":"12206:19:54"},"variables":[{"name":"_1","nativeSrc":"12200:2:54","nodeType":"YulTypedName","src":"12200:2:54","type":""}]},{"nativeSrc":"12234:76:54","nodeType":"YulVariableDeclaration","src":"12234:76:54","value":{"kind":"number","nativeSrc":"12244:66:54","nodeType":"YulLiteral","src":"12244:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"},"variables":[{"name":"_2","nativeSrc":"12238:2:54","nodeType":"YulTypedName","src":"12238:2:54","type":""}]},{"nativeSrc":"12319:20:54","nodeType":"YulAssignment","src":"12319:20:54","value":{"arguments":[{"name":"_1","nativeSrc":"12332:2:54","nodeType":"YulIdentifier","src":"12332:2:54"},{"name":"_2","nativeSrc":"12336:2:54","nodeType":"YulIdentifier","src":"12336:2:54"}],"functionName":{"name":"and","nativeSrc":"12328:3:54","nodeType":"YulIdentifier","src":"12328:3:54"},"nativeSrc":"12328:11:54","nodeType":"YulFunctionCall","src":"12328:11:54"},"variableNames":[{"name":"value","nativeSrc":"12319:5:54","nodeType":"YulIdentifier","src":"12319:5:54"}]},{"body":{"nativeSrc":"12371:80:54","nodeType":"YulBlock","src":"12371:80:54","statements":[{"nativeSrc":"12385:56:54","nodeType":"YulAssignment","src":"12385:56:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"12402:2:54","nodeType":"YulIdentifier","src":"12402:2:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12414:1:54","nodeType":"YulLiteral","src":"12414:1:54","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"12421:2:54","nodeType":"YulLiteral","src":"12421:2:54","type":"","value":"20"},{"name":"len","nativeSrc":"12425:3:54","nodeType":"YulIdentifier","src":"12425:3:54"}],"functionName":{"name":"sub","nativeSrc":"12417:3:54","nodeType":"YulIdentifier","src":"12417:3:54"},"nativeSrc":"12417:12:54","nodeType":"YulFunctionCall","src":"12417:12:54"}],"functionName":{"name":"shl","nativeSrc":"12410:3:54","nodeType":"YulIdentifier","src":"12410:3:54"},"nativeSrc":"12410:20:54","nodeType":"YulFunctionCall","src":"12410:20:54"},{"name":"_2","nativeSrc":"12432:2:54","nodeType":"YulIdentifier","src":"12432:2:54"}],"functionName":{"name":"shl","nativeSrc":"12406:3:54","nodeType":"YulIdentifier","src":"12406:3:54"},"nativeSrc":"12406:29:54","nodeType":"YulFunctionCall","src":"12406:29:54"}],"functionName":{"name":"and","nativeSrc":"12398:3:54","nodeType":"YulIdentifier","src":"12398:3:54"},"nativeSrc":"12398:38:54","nodeType":"YulFunctionCall","src":"12398:38:54"},{"name":"_2","nativeSrc":"12438:2:54","nodeType":"YulIdentifier","src":"12438:2:54"}],"functionName":{"name":"and","nativeSrc":"12394:3:54","nodeType":"YulIdentifier","src":"12394:3:54"},"nativeSrc":"12394:47:54","nodeType":"YulFunctionCall","src":"12394:47:54"},"variableNames":[{"name":"value","nativeSrc":"12385:5:54","nodeType":"YulIdentifier","src":"12385:5:54"}]}]},"condition":{"arguments":[{"name":"len","nativeSrc":"12354:3:54","nodeType":"YulIdentifier","src":"12354:3:54"},{"kind":"number","nativeSrc":"12359:2:54","nodeType":"YulLiteral","src":"12359:2:54","type":"","value":"20"}],"functionName":{"name":"lt","nativeSrc":"12351:2:54","nodeType":"YulIdentifier","src":"12351:2:54"},"nativeSrc":"12351:11:54","nodeType":"YulFunctionCall","src":"12351:11:54"},"nativeSrc":"12348:103:54","nodeType":"YulIf","src":"12348:103:54"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20","nativeSrc":"12085:372:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"12161:5:54","nodeType":"YulTypedName","src":"12161:5:54","type":""},{"name":"len","nativeSrc":"12168:3:54","nodeType":"YulTypedName","src":"12168:3:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12176:5:54","nodeType":"YulTypedName","src":"12176:5:54","type":""}],"src":"12085:372:54"},{"body":{"nativeSrc":"12636:226:54","nodeType":"YulBlock","src":"12636:226:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12653:9:54","nodeType":"YulIdentifier","src":"12653:9:54"},{"kind":"number","nativeSrc":"12664:2:54","nodeType":"YulLiteral","src":"12664:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12646:6:54","nodeType":"YulIdentifier","src":"12646:6:54"},"nativeSrc":"12646:21:54","nodeType":"YulFunctionCall","src":"12646:21:54"},"nativeSrc":"12646:21:54","nodeType":"YulExpressionStatement","src":"12646:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12687:9:54","nodeType":"YulIdentifier","src":"12687:9:54"},{"kind":"number","nativeSrc":"12698:2:54","nodeType":"YulLiteral","src":"12698:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12683:3:54","nodeType":"YulIdentifier","src":"12683:3:54"},"nativeSrc":"12683:18:54","nodeType":"YulFunctionCall","src":"12683:18:54"},{"kind":"number","nativeSrc":"12703:2:54","nodeType":"YulLiteral","src":"12703:2:54","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"12676:6:54","nodeType":"YulIdentifier","src":"12676:6:54"},"nativeSrc":"12676:30:54","nodeType":"YulFunctionCall","src":"12676:30:54"},"nativeSrc":"12676:30:54","nodeType":"YulExpressionStatement","src":"12676:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12726:9:54","nodeType":"YulIdentifier","src":"12726:9:54"},{"kind":"number","nativeSrc":"12737:2:54","nodeType":"YulLiteral","src":"12737:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12722:3:54","nodeType":"YulIdentifier","src":"12722:3:54"},"nativeSrc":"12722:18:54","nodeType":"YulFunctionCall","src":"12722:18:54"},{"hexValue":"536f757263652061646472657373206d75737420626520323020627974657320","kind":"string","nativeSrc":"12742:34:54","nodeType":"YulLiteral","src":"12742:34:54","type":"","value":"Source address must be 20 bytes "}],"functionName":{"name":"mstore","nativeSrc":"12715:6:54","nodeType":"YulIdentifier","src":"12715:6:54"},"nativeSrc":"12715:62:54","nodeType":"YulFunctionCall","src":"12715:62:54"},"nativeSrc":"12715:62:54","nodeType":"YulExpressionStatement","src":"12715:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12797:9:54","nodeType":"YulIdentifier","src":"12797:9:54"},{"kind":"number","nativeSrc":"12808:2:54","nodeType":"YulLiteral","src":"12808:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12793:3:54","nodeType":"YulIdentifier","src":"12793:3:54"},"nativeSrc":"12793:18:54","nodeType":"YulFunctionCall","src":"12793:18:54"},{"hexValue":"6c6f6e67","kind":"string","nativeSrc":"12813:6:54","nodeType":"YulLiteral","src":"12813:6:54","type":"","value":"long"}],"functionName":{"name":"mstore","nativeSrc":"12786:6:54","nodeType":"YulIdentifier","src":"12786:6:54"},"nativeSrc":"12786:34:54","nodeType":"YulFunctionCall","src":"12786:34:54"},"nativeSrc":"12786:34:54","nodeType":"YulExpressionStatement","src":"12786:34:54"},{"nativeSrc":"12829:27:54","nodeType":"YulAssignment","src":"12829:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12841:9:54","nodeType":"YulIdentifier","src":"12841:9:54"},{"kind":"number","nativeSrc":"12852:3:54","nodeType":"YulLiteral","src":"12852:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12837:3:54","nodeType":"YulIdentifier","src":"12837:3:54"},"nativeSrc":"12837:19:54","nodeType":"YulFunctionCall","src":"12837:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12829:4:54","nodeType":"YulIdentifier","src":"12829:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12462:400:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12613:9:54","nodeType":"YulTypedName","src":"12613:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12627:4:54","nodeType":"YulTypedName","src":"12627:4:54","type":""}],"src":"12462:400:54"},{"body":{"nativeSrc":"13022:374:54","nodeType":"YulBlock","src":"13022:374:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13039:9:54","nodeType":"YulIdentifier","src":"13039:9:54"},{"arguments":[{"name":"value0","nativeSrc":"13054:6:54","nodeType":"YulIdentifier","src":"13054:6:54"},{"kind":"number","nativeSrc":"13062:6:54","nodeType":"YulLiteral","src":"13062:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"13050:3:54","nodeType":"YulIdentifier","src":"13050:3:54"},"nativeSrc":"13050:19:54","nodeType":"YulFunctionCall","src":"13050:19:54"}],"functionName":{"name":"mstore","nativeSrc":"13032:6:54","nodeType":"YulIdentifier","src":"13032:6:54"},"nativeSrc":"13032:38:54","nodeType":"YulFunctionCall","src":"13032:38:54"},"nativeSrc":"13032:38:54","nodeType":"YulExpressionStatement","src":"13032:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13090:9:54","nodeType":"YulIdentifier","src":"13090:9:54"},{"kind":"number","nativeSrc":"13101:2:54","nodeType":"YulLiteral","src":"13101:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13086:3:54","nodeType":"YulIdentifier","src":"13086:3:54"},"nativeSrc":"13086:18:54","nodeType":"YulFunctionCall","src":"13086:18:54"},{"kind":"number","nativeSrc":"13106:2:54","nodeType":"YulLiteral","src":"13106:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"13079:6:54","nodeType":"YulIdentifier","src":"13079:6:54"},"nativeSrc":"13079:30:54","nodeType":"YulFunctionCall","src":"13079:30:54"},"nativeSrc":"13079:30:54","nodeType":"YulExpressionStatement","src":"13079:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13129:9:54","nodeType":"YulIdentifier","src":"13129:9:54"},{"kind":"number","nativeSrc":"13140:2:54","nodeType":"YulLiteral","src":"13140:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13125:3:54","nodeType":"YulIdentifier","src":"13125:3:54"},"nativeSrc":"13125:18:54","nodeType":"YulFunctionCall","src":"13125:18:54"},{"name":"value2","nativeSrc":"13145:6:54","nodeType":"YulIdentifier","src":"13145:6:54"}],"functionName":{"name":"mstore","nativeSrc":"13118:6:54","nodeType":"YulIdentifier","src":"13118:6:54"},"nativeSrc":"13118:34:54","nodeType":"YulFunctionCall","src":"13118:34:54"},"nativeSrc":"13118:34:54","nodeType":"YulExpressionStatement","src":"13118:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13178:9:54","nodeType":"YulIdentifier","src":"13178:9:54"},{"kind":"number","nativeSrc":"13189:2:54","nodeType":"YulLiteral","src":"13189:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13174:3:54","nodeType":"YulIdentifier","src":"13174:3:54"},"nativeSrc":"13174:18:54","nodeType":"YulFunctionCall","src":"13174:18:54"},{"name":"value1","nativeSrc":"13194:6:54","nodeType":"YulIdentifier","src":"13194:6:54"},{"name":"value2","nativeSrc":"13202:6:54","nodeType":"YulIdentifier","src":"13202:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"13161:12:54","nodeType":"YulIdentifier","src":"13161:12:54"},"nativeSrc":"13161:48:54","nodeType":"YulFunctionCall","src":"13161:48:54"},"nativeSrc":"13161:48:54","nodeType":"YulExpressionStatement","src":"13161:48:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13233:9:54","nodeType":"YulIdentifier","src":"13233:9:54"},{"name":"value2","nativeSrc":"13244:6:54","nodeType":"YulIdentifier","src":"13244:6:54"}],"functionName":{"name":"add","nativeSrc":"13229:3:54","nodeType":"YulIdentifier","src":"13229:3:54"},"nativeSrc":"13229:22:54","nodeType":"YulFunctionCall","src":"13229:22:54"},{"kind":"number","nativeSrc":"13253:2:54","nodeType":"YulLiteral","src":"13253:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13225:3:54","nodeType":"YulIdentifier","src":"13225:3:54"},"nativeSrc":"13225:31:54","nodeType":"YulFunctionCall","src":"13225:31:54"},{"kind":"number","nativeSrc":"13258:1:54","nodeType":"YulLiteral","src":"13258:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13218:6:54","nodeType":"YulIdentifier","src":"13218:6:54"},"nativeSrc":"13218:42:54","nodeType":"YulFunctionCall","src":"13218:42:54"},"nativeSrc":"13218:42:54","nodeType":"YulExpressionStatement","src":"13218:42:54"},{"nativeSrc":"13269:121:54","nodeType":"YulAssignment","src":"13269:121:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13285:9:54","nodeType":"YulIdentifier","src":"13285:9:54"},{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"13304:6:54","nodeType":"YulIdentifier","src":"13304:6:54"},{"kind":"number","nativeSrc":"13312:2:54","nodeType":"YulLiteral","src":"13312:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13300:3:54","nodeType":"YulIdentifier","src":"13300:3:54"},"nativeSrc":"13300:15:54","nodeType":"YulFunctionCall","src":"13300:15:54"},{"kind":"number","nativeSrc":"13317:66:54","nodeType":"YulLiteral","src":"13317:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"13296:3:54","nodeType":"YulIdentifier","src":"13296:3:54"},"nativeSrc":"13296:88:54","nodeType":"YulFunctionCall","src":"13296:88:54"}],"functionName":{"name":"add","nativeSrc":"13281:3:54","nodeType":"YulIdentifier","src":"13281:3:54"},"nativeSrc":"13281:104:54","nodeType":"YulFunctionCall","src":"13281:104:54"},{"kind":"number","nativeSrc":"13387:2:54","nodeType":"YulLiteral","src":"13387:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13277:3:54","nodeType":"YulIdentifier","src":"13277:3:54"},"nativeSrc":"13277:113:54","nodeType":"YulFunctionCall","src":"13277:113:54"},"variableNames":[{"name":"tail","nativeSrc":"13269:4:54","nodeType":"YulIdentifier","src":"13269:4:54"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"12867:529:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12975:9:54","nodeType":"YulTypedName","src":"12975:9:54","type":""},{"name":"value2","nativeSrc":"12986:6:54","nodeType":"YulTypedName","src":"12986:6:54","type":""},{"name":"value1","nativeSrc":"12994:6:54","nodeType":"YulTypedName","src":"12994:6:54","type":""},{"name":"value0","nativeSrc":"13002:6:54","nodeType":"YulTypedName","src":"13002:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13013:4:54","nodeType":"YulTypedName","src":"13013:4:54","type":""}],"src":"12867:529:54"},{"body":{"nativeSrc":"13575:236:54","nodeType":"YulBlock","src":"13575:236:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13592:9:54","nodeType":"YulIdentifier","src":"13592:9:54"},{"kind":"number","nativeSrc":"13603:2:54","nodeType":"YulLiteral","src":"13603:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13585:6:54","nodeType":"YulIdentifier","src":"13585:6:54"},"nativeSrc":"13585:21:54","nodeType":"YulFunctionCall","src":"13585:21:54"},"nativeSrc":"13585:21:54","nodeType":"YulExpressionStatement","src":"13585:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13626:9:54","nodeType":"YulIdentifier","src":"13626:9:54"},{"kind":"number","nativeSrc":"13637:2:54","nodeType":"YulLiteral","src":"13637:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13622:3:54","nodeType":"YulIdentifier","src":"13622:3:54"},"nativeSrc":"13622:18:54","nodeType":"YulFunctionCall","src":"13622:18:54"},{"kind":"number","nativeSrc":"13642:2:54","nodeType":"YulLiteral","src":"13642:2:54","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"13615:6:54","nodeType":"YulIdentifier","src":"13615:6:54"},"nativeSrc":"13615:30:54","nodeType":"YulFunctionCall","src":"13615:30:54"},"nativeSrc":"13615:30:54","nodeType":"YulExpressionStatement","src":"13615:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13665:9:54","nodeType":"YulIdentifier","src":"13665:9:54"},{"kind":"number","nativeSrc":"13676:2:54","nodeType":"YulLiteral","src":"13676:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13661:3:54","nodeType":"YulIdentifier","src":"13661:3:54"},"nativeSrc":"13661:18:54","nodeType":"YulFunctionCall","src":"13661:18:54"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"13681:34:54","nodeType":"YulLiteral","src":"13681:34:54","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"13654:6:54","nodeType":"YulIdentifier","src":"13654:6:54"},"nativeSrc":"13654:62:54","nodeType":"YulFunctionCall","src":"13654:62:54"},"nativeSrc":"13654:62:54","nodeType":"YulExpressionStatement","src":"13654:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13736:9:54","nodeType":"YulIdentifier","src":"13736:9:54"},{"kind":"number","nativeSrc":"13747:2:54","nodeType":"YulLiteral","src":"13747:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13732:3:54","nodeType":"YulIdentifier","src":"13732:3:54"},"nativeSrc":"13732:18:54","nodeType":"YulFunctionCall","src":"13732:18:54"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"13752:16:54","nodeType":"YulLiteral","src":"13752:16:54","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"13725:6:54","nodeType":"YulIdentifier","src":"13725:6:54"},"nativeSrc":"13725:44:54","nodeType":"YulFunctionCall","src":"13725:44:54"},"nativeSrc":"13725:44:54","nodeType":"YulExpressionStatement","src":"13725:44:54"},{"nativeSrc":"13778:27:54","nodeType":"YulAssignment","src":"13778:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"13790:9:54","nodeType":"YulIdentifier","src":"13790:9:54"},{"kind":"number","nativeSrc":"13801:3:54","nodeType":"YulLiteral","src":"13801:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13786:3:54","nodeType":"YulIdentifier","src":"13786:3:54"},"nativeSrc":"13786:19:54","nodeType":"YulFunctionCall","src":"13786:19:54"},"variableNames":[{"name":"tail","nativeSrc":"13778:4:54","nodeType":"YulIdentifier","src":"13778:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13401:410:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13552:9:54","nodeType":"YulTypedName","src":"13552:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13566:4:54","nodeType":"YulTypedName","src":"13566:4:54","type":""}],"src":"13401:410:54"},{"body":{"nativeSrc":"13923:87:54","nodeType":"YulBlock","src":"13923:87:54","statements":[{"nativeSrc":"13933:26:54","nodeType":"YulAssignment","src":"13933:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"13945:9:54","nodeType":"YulIdentifier","src":"13945:9:54"},{"kind":"number","nativeSrc":"13956:2:54","nodeType":"YulLiteral","src":"13956:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13941:3:54","nodeType":"YulIdentifier","src":"13941:3:54"},"nativeSrc":"13941:18:54","nodeType":"YulFunctionCall","src":"13941:18:54"},"variableNames":[{"name":"tail","nativeSrc":"13933:4:54","nodeType":"YulIdentifier","src":"13933:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13975:9:54","nodeType":"YulIdentifier","src":"13975:9:54"},{"arguments":[{"name":"value0","nativeSrc":"13990:6:54","nodeType":"YulIdentifier","src":"13990:6:54"},{"kind":"number","nativeSrc":"13998:4:54","nodeType":"YulLiteral","src":"13998:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"13986:3:54","nodeType":"YulIdentifier","src":"13986:3:54"},"nativeSrc":"13986:17:54","nodeType":"YulFunctionCall","src":"13986:17:54"}],"functionName":{"name":"mstore","nativeSrc":"13968:6:54","nodeType":"YulIdentifier","src":"13968:6:54"},"nativeSrc":"13968:36:54","nodeType":"YulFunctionCall","src":"13968:36:54"},"nativeSrc":"13968:36:54","nodeType":"YulExpressionStatement","src":"13968:36:54"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"13816:194:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13892:9:54","nodeType":"YulTypedName","src":"13892:9:54","type":""},{"name":"value0","nativeSrc":"13903:6:54","nodeType":"YulTypedName","src":"13903:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13914:4:54","nodeType":"YulTypedName","src":"13914:4:54","type":""}],"src":"13816:194:54"},{"body":{"nativeSrc":"14189:182:54","nodeType":"YulBlock","src":"14189:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14206:9:54","nodeType":"YulIdentifier","src":"14206:9:54"},{"kind":"number","nativeSrc":"14217:2:54","nodeType":"YulLiteral","src":"14217:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14199:6:54","nodeType":"YulIdentifier","src":"14199:6:54"},"nativeSrc":"14199:21:54","nodeType":"YulFunctionCall","src":"14199:21:54"},"nativeSrc":"14199:21:54","nodeType":"YulExpressionStatement","src":"14199:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14240:9:54","nodeType":"YulIdentifier","src":"14240:9:54"},{"kind":"number","nativeSrc":"14251:2:54","nodeType":"YulLiteral","src":"14251:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14236:3:54","nodeType":"YulIdentifier","src":"14236:3:54"},"nativeSrc":"14236:18:54","nodeType":"YulFunctionCall","src":"14236:18:54"},{"kind":"number","nativeSrc":"14256:2:54","nodeType":"YulLiteral","src":"14256:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14229:6:54","nodeType":"YulIdentifier","src":"14229:6:54"},"nativeSrc":"14229:30:54","nodeType":"YulFunctionCall","src":"14229:30:54"},"nativeSrc":"14229:30:54","nodeType":"YulExpressionStatement","src":"14229:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14279:9:54","nodeType":"YulIdentifier","src":"14279:9:54"},{"kind":"number","nativeSrc":"14290:2:54","nodeType":"YulLiteral","src":"14290:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14275:3:54","nodeType":"YulIdentifier","src":"14275:3:54"},"nativeSrc":"14275:18:54","nodeType":"YulFunctionCall","src":"14275:18:54"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"14295:34:54","nodeType":"YulLiteral","src":"14295:34:54","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"14268:6:54","nodeType":"YulIdentifier","src":"14268:6:54"},"nativeSrc":"14268:62:54","nodeType":"YulFunctionCall","src":"14268:62:54"},"nativeSrc":"14268:62:54","nodeType":"YulExpressionStatement","src":"14268:62:54"},{"nativeSrc":"14339:26:54","nodeType":"YulAssignment","src":"14339:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"14351:9:54","nodeType":"YulIdentifier","src":"14351:9:54"},{"kind":"number","nativeSrc":"14362:2:54","nodeType":"YulLiteral","src":"14362:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14347:3:54","nodeType":"YulIdentifier","src":"14347:3:54"},"nativeSrc":"14347:18:54","nodeType":"YulFunctionCall","src":"14347:18:54"},"variableNames":[{"name":"tail","nativeSrc":"14339:4:54","nodeType":"YulIdentifier","src":"14339:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14015:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14166:9:54","nodeType":"YulTypedName","src":"14166:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14180:4:54","nodeType":"YulTypedName","src":"14180:4:54","type":""}],"src":"14015:356:54"},{"body":{"nativeSrc":"14550:227:54","nodeType":"YulBlock","src":"14550:227:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14567:9:54","nodeType":"YulIdentifier","src":"14567:9:54"},{"kind":"number","nativeSrc":"14578:2:54","nodeType":"YulLiteral","src":"14578:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14560:6:54","nodeType":"YulIdentifier","src":"14560:6:54"},"nativeSrc":"14560:21:54","nodeType":"YulFunctionCall","src":"14560:21:54"},"nativeSrc":"14560:21:54","nodeType":"YulExpressionStatement","src":"14560:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14601:9:54","nodeType":"YulIdentifier","src":"14601:9:54"},{"kind":"number","nativeSrc":"14612:2:54","nodeType":"YulLiteral","src":"14612:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14597:3:54","nodeType":"YulIdentifier","src":"14597:3:54"},"nativeSrc":"14597:18:54","nodeType":"YulFunctionCall","src":"14597:18:54"},{"kind":"number","nativeSrc":"14617:2:54","nodeType":"YulLiteral","src":"14617:2:54","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"14590:6:54","nodeType":"YulIdentifier","src":"14590:6:54"},"nativeSrc":"14590:30:54","nodeType":"YulFunctionCall","src":"14590:30:54"},"nativeSrc":"14590:30:54","nodeType":"YulExpressionStatement","src":"14590:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14640:9:54","nodeType":"YulIdentifier","src":"14640:9:54"},{"kind":"number","nativeSrc":"14651:2:54","nodeType":"YulLiteral","src":"14651:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14636:3:54","nodeType":"YulIdentifier","src":"14636:3:54"},"nativeSrc":"14636:18:54","nodeType":"YulFunctionCall","src":"14636:18:54"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"14656:34:54","nodeType":"YulLiteral","src":"14656:34:54","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"14629:6:54","nodeType":"YulIdentifier","src":"14629:6:54"},"nativeSrc":"14629:62:54","nodeType":"YulFunctionCall","src":"14629:62:54"},"nativeSrc":"14629:62:54","nodeType":"YulExpressionStatement","src":"14629:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14711:9:54","nodeType":"YulIdentifier","src":"14711:9:54"},{"kind":"number","nativeSrc":"14722:2:54","nodeType":"YulLiteral","src":"14722:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14707:3:54","nodeType":"YulIdentifier","src":"14707:3:54"},"nativeSrc":"14707:18:54","nodeType":"YulFunctionCall","src":"14707:18:54"},{"hexValue":"6472657373","kind":"string","nativeSrc":"14727:7:54","nodeType":"YulLiteral","src":"14727:7:54","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"14700:6:54","nodeType":"YulIdentifier","src":"14700:6:54"},"nativeSrc":"14700:35:54","nodeType":"YulFunctionCall","src":"14700:35:54"},"nativeSrc":"14700:35:54","nodeType":"YulExpressionStatement","src":"14700:35:54"},{"nativeSrc":"14744:27:54","nodeType":"YulAssignment","src":"14744:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"14756:9:54","nodeType":"YulIdentifier","src":"14756:9:54"},{"kind":"number","nativeSrc":"14767:3:54","nodeType":"YulLiteral","src":"14767:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14752:3:54","nodeType":"YulIdentifier","src":"14752:3:54"},"nativeSrc":"14752:19:54","nodeType":"YulFunctionCall","src":"14752:19:54"},"variableNames":[{"name":"tail","nativeSrc":"14744:4:54","nodeType":"YulIdentifier","src":"14744:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14376:401:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14527:9:54","nodeType":"YulTypedName","src":"14527:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14541:4:54","nodeType":"YulTypedName","src":"14541:4:54","type":""}],"src":"14376:401:54"},{"body":{"nativeSrc":"14911:198:54","nodeType":"YulBlock","src":"14911:198:54","statements":[{"nativeSrc":"14921:26:54","nodeType":"YulAssignment","src":"14921:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"14933:9:54","nodeType":"YulIdentifier","src":"14933:9:54"},{"kind":"number","nativeSrc":"14944:2:54","nodeType":"YulLiteral","src":"14944:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14929:3:54","nodeType":"YulIdentifier","src":"14929:3:54"},"nativeSrc":"14929:18:54","nodeType":"YulFunctionCall","src":"14929:18:54"},"variableNames":[{"name":"tail","nativeSrc":"14921:4:54","nodeType":"YulIdentifier","src":"14921:4:54"}]},{"nativeSrc":"14956:52:54","nodeType":"YulVariableDeclaration","src":"14956:52:54","value":{"kind":"number","nativeSrc":"14966:42:54","nodeType":"YulLiteral","src":"14966:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"14960:2:54","nodeType":"YulTypedName","src":"14960:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15024:9:54","nodeType":"YulIdentifier","src":"15024:9:54"},{"arguments":[{"name":"value0","nativeSrc":"15039:6:54","nodeType":"YulIdentifier","src":"15039:6:54"},{"name":"_1","nativeSrc":"15047:2:54","nodeType":"YulIdentifier","src":"15047:2:54"}],"functionName":{"name":"and","nativeSrc":"15035:3:54","nodeType":"YulIdentifier","src":"15035:3:54"},"nativeSrc":"15035:15:54","nodeType":"YulFunctionCall","src":"15035:15:54"}],"functionName":{"name":"mstore","nativeSrc":"15017:6:54","nodeType":"YulIdentifier","src":"15017:6:54"},"nativeSrc":"15017:34:54","nodeType":"YulFunctionCall","src":"15017:34:54"},"nativeSrc":"15017:34:54","nodeType":"YulExpressionStatement","src":"15017:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15071:9:54","nodeType":"YulIdentifier","src":"15071:9:54"},{"kind":"number","nativeSrc":"15082:2:54","nodeType":"YulLiteral","src":"15082:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15067:3:54","nodeType":"YulIdentifier","src":"15067:3:54"},"nativeSrc":"15067:18:54","nodeType":"YulFunctionCall","src":"15067:18:54"},{"arguments":[{"name":"value1","nativeSrc":"15091:6:54","nodeType":"YulIdentifier","src":"15091:6:54"},{"name":"_1","nativeSrc":"15099:2:54","nodeType":"YulIdentifier","src":"15099:2:54"}],"functionName":{"name":"and","nativeSrc":"15087:3:54","nodeType":"YulIdentifier","src":"15087:3:54"},"nativeSrc":"15087:15:54","nodeType":"YulFunctionCall","src":"15087:15:54"}],"functionName":{"name":"mstore","nativeSrc":"15060:6:54","nodeType":"YulIdentifier","src":"15060:6:54"},"nativeSrc":"15060:43:54","nodeType":"YulFunctionCall","src":"15060:43:54"},"nativeSrc":"15060:43:54","nodeType":"YulExpressionStatement","src":"15060:43:54"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"14782:327:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14872:9:54","nodeType":"YulTypedName","src":"14872:9:54","type":""},{"name":"value1","nativeSrc":"14883:6:54","nodeType":"YulTypedName","src":"14883:6:54","type":""},{"name":"value0","nativeSrc":"14891:6:54","nodeType":"YulTypedName","src":"14891:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14902:4:54","nodeType":"YulTypedName","src":"14902:4:54","type":""}],"src":"14782:327:54"},{"body":{"nativeSrc":"15288:233:54","nodeType":"YulBlock","src":"15288:233:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15305:9:54","nodeType":"YulIdentifier","src":"15305:9:54"},{"kind":"number","nativeSrc":"15316:2:54","nodeType":"YulLiteral","src":"15316:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"15298:6:54","nodeType":"YulIdentifier","src":"15298:6:54"},"nativeSrc":"15298:21:54","nodeType":"YulFunctionCall","src":"15298:21:54"},"nativeSrc":"15298:21:54","nodeType":"YulExpressionStatement","src":"15298:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15339:9:54","nodeType":"YulIdentifier","src":"15339:9:54"},{"kind":"number","nativeSrc":"15350:2:54","nodeType":"YulLiteral","src":"15350:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15335:3:54","nodeType":"YulIdentifier","src":"15335:3:54"},"nativeSrc":"15335:18:54","nodeType":"YulFunctionCall","src":"15335:18:54"},{"kind":"number","nativeSrc":"15355:2:54","nodeType":"YulLiteral","src":"15355:2:54","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"15328:6:54","nodeType":"YulIdentifier","src":"15328:6:54"},"nativeSrc":"15328:30:54","nodeType":"YulFunctionCall","src":"15328:30:54"},"nativeSrc":"15328:30:54","nodeType":"YulExpressionStatement","src":"15328:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15378:9:54","nodeType":"YulIdentifier","src":"15378:9:54"},{"kind":"number","nativeSrc":"15389:2:54","nodeType":"YulLiteral","src":"15389:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15374:3:54","nodeType":"YulIdentifier","src":"15374:3:54"},"nativeSrc":"15374:18:54","nodeType":"YulFunctionCall","src":"15374:18:54"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"15394:34:54","nodeType":"YulLiteral","src":"15394:34:54","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"15367:6:54","nodeType":"YulIdentifier","src":"15367:6:54"},"nativeSrc":"15367:62:54","nodeType":"YulFunctionCall","src":"15367:62:54"},"nativeSrc":"15367:62:54","nodeType":"YulExpressionStatement","src":"15367:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15449:9:54","nodeType":"YulIdentifier","src":"15449:9:54"},{"kind":"number","nativeSrc":"15460:2:54","nodeType":"YulLiteral","src":"15460:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15445:3:54","nodeType":"YulIdentifier","src":"15445:3:54"},"nativeSrc":"15445:18:54","nodeType":"YulFunctionCall","src":"15445:18:54"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"15465:13:54","nodeType":"YulLiteral","src":"15465:13:54","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"15438:6:54","nodeType":"YulIdentifier","src":"15438:6:54"},"nativeSrc":"15438:41:54","nodeType":"YulFunctionCall","src":"15438:41:54"},"nativeSrc":"15438:41:54","nodeType":"YulExpressionStatement","src":"15438:41:54"},{"nativeSrc":"15488:27:54","nodeType":"YulAssignment","src":"15488:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"15500:9:54","nodeType":"YulIdentifier","src":"15500:9:54"},{"kind":"number","nativeSrc":"15511:3:54","nodeType":"YulLiteral","src":"15511:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15496:3:54","nodeType":"YulIdentifier","src":"15496:3:54"},"nativeSrc":"15496:19:54","nodeType":"YulFunctionCall","src":"15496:19:54"},"variableNames":[{"name":"tail","nativeSrc":"15488:4:54","nodeType":"YulIdentifier","src":"15488:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15114:407:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15265:9:54","nodeType":"YulTypedName","src":"15265:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15279:4:54","nodeType":"YulTypedName","src":"15279:4:54","type":""}],"src":"15114:407:54"}]},"contents":"{\n    { }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"Function not found\")\n        tail := add(headStart, 96)\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        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"call failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_array_string_calldata_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\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    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_string_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_string_calldata_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_encode_tuple_t_contract$_IOmnichainGovernanceExecutor_$7931__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\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    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\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    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_string(value2, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_c39385493865630bb9b3c804a5f858917cc1a47989c0d222d56c03d1165a81a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Address must not be zero\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Input arrays must have the same \")\n        mstore(add(headStart, 96), \"length\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ChainId must not be zero\")\n        tail := add(headStart, 96)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20(array, len) -> value\n    {\n        let _1 := calldataload(array)\n        let _2 := 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n        value := and(_1, _2)\n        if lt(len, 20)\n        {\n            value := and(and(_1, shl(shl(3, sub(20, len)), _2)), _2)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_9a39bc466e8dc485b140962f2bafd9bf984c501b349d0866987f6e3bcf7433c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"Source address must be 20 bytes \")\n        mstore(add(headStart, 96), \"long\")\n        tail := add(headStart, 128)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 64)\n        mstore(add(headStart, 64), value2)\n        calldatacopy(add(headStart, 96), value1, value2)\n        mstore(add(add(headStart, value2), 96), 0)\n        tail := add(add(headStart, and(add(value2, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5882":[{"length":32,"start":519},{"length":32,"start":855},{"length":32,"start":1706},{"length":32,"start":3172}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c806379ba50971161008c578063b4a0bdf311610066578063b4a0bdf3146103d7578063c4d66de8146103f5578063e30c397814610408578063f2fde38b14610426576100df565b806379ba50971461039e5780638da5cb5b146103a6578063a6c3d165146103c4576100df565b80634bb7453e116100bd5780634bb7453e1461033f5780635f21f75e14610352578063715018a614610301576100df565b80630e32cb86146102ee578063180d295c146103035780633f90b5401461032c575b600080357fffffffff0000000000000000000000000000000000000000000000000000000016815260c9602052604081208054369160609184919061012390611429565b80601f016020809104026020016040519081016040528092919081815260200182805461014f90611429565b801561019c5780601f106101715761010080835404028352916020019161019c565b820191906000526020600020905b81548152906001019060200180831161017f57829003601f168201915b5050505050905080516000036101f95760405162461bcd60e51b815260206004820152601260248201527f46756e6374696f6e206e6f7420666f756e64000000000000000000000000000060448201526064015b60405180910390fd5b61020281610439565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660405161024c92919061147c565b6000604051808303816000865af19150503d8060008114610289576040519150601f19603f3d011682016040523d82523d6000602084013e61028e565b606091505b5091509150816102e05760405162461bcd60e51b815260206004820152600b60248201527f63616c6c206661696c656400000000000000000000000000000000000000000060448201526064016101f0565b805195506020019350505050f35b6103016102fc36600461148c565b610516565b005b6103166103113660046114c9565b61052a565b604051610323919061156f565b60405180910390f35b61030161033a36600461148c565b6105c4565b61030161034d3660046115ce565b610709565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610323565b610301610a90565b60335473ffffffffffffffffffffffffffffffffffffffff16610379565b6103016103d236600461163a565b610b28565b60975473ffffffffffffffffffffffffffffffffffffffff16610379565b61030161040336600461148c565b610cd4565b60655473ffffffffffffffffffffffffffffffffffffffff16610379565b61030161043436600461148c565b610eb1565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab9061049290339086906004016116c6565b602060405180830381865afa1580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d3919061170b565b905080610512573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016101f093929190611728565b5050565b61051e610f61565b61052781610fc8565b50565b60c9602052600090815260409020805461054390611429565b80601f016020809104026020016040519081016040528092919081815260200182805461056f90611429565b80156105bc5780601f10610591576101008083540402835291602001916105bc565b820191906000526020600020905b81548152906001019060200180831161059f57829003601f168201915b505050505081565b6106026040518060400160405280602081526020017f7472616e736665724272696467654f776e657273686970286164647265737329815250610439565b73ffffffffffffffffffffffffffffffffffffffff81166106655760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b6040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b5050505050565b610711610f61565b828181146107875760405162461bcd60e51b815260206004820152602660248201527f496e70757420617272617973206d7573742068617665207468652073616d652060448201527f6c656e677468000000000000000000000000000000000000000000000000000060648201526084016101f0565b60005b81811015610a865760008686838181106107a6576107a661176a565b90506020028101906107b89190611799565b6040516107c692919061147c565b60408051918290039091207fffffffff000000000000000000000000000000000000000000000000000000008116600090815260c960205291822080549193509061081090611429565b80601f016020809104026020016040519081016040528092919081815260200182805461083c90611429565b80156108895780601f1061085e57610100808354040283529160200191610889565b820191906000526020600020905b81548152906001019060200180831161086c57829003601f168201915b505050505090508585848181106108a2576108a261176a565b90506020020160208101906108b791906117fe565b80156108c257508051155b1561099b578787848181106108d9576108d961176a565b90506020028101906108eb9190611799565b7fffffffff000000000000000000000000000000000000000000000000000000008416600090815260c96020526040902091610928919083611897565b5087878481811061093b5761093b61176a565b905060200281019061094d9190611799565b60405161095b92919061147c565b60405190819003812060018252907f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa9060200160405180910390a2610a7c565b8585848181106109ad576109ad61176a565b90506020020160208101906109c291906117fe565b1580156109cf5750805115155b15610a7c577fffffffff000000000000000000000000000000000000000000000000000000008216600090815260c960205260408120610a0e916113db565b878784818110610a2057610a2061176a565b9050602002810190610a329190611799565b604051610a4092919061147c565b60405190819003812060008252907f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa9060200160405180910390a25b505060010161078a565b505050505050565b565b606554339073ffffffffffffffffffffffffffffffffffffffff168114610b1f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016101f0565b610527816110d0565b610b49604051806060016040528060258152602001611a5260259139610439565b8261ffff16600003610b9d5760405162461bcd60e51b815260206004820152601860248201527f436861696e4964206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b610bb2610baa82846119b1565b60601c611101565b60148114610c275760405162461bcd60e51b8152602060048201526024808201527f536f757263652061646472657373206d7573742062652032302062797465732060448201527f6c6f6e670000000000000000000000000000000000000000000000000000000060648201526084016101f0565b6040517fa6c3d16500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a6c3d16590610c9d908690869086906004016119f9565b600060405180830381600087803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b50505050505050565b600054610100900460ff1615808015610cf45750600054600160ff909116105b80610d0e5750303b158015610d0e575060005460ff166001145b610d805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016101f0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610dde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8216610e415760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265207a65726f000000000000000060448201526064016101f0565b610e4a8261114e565b801561051257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b610eb9610f61565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610f1c60335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a8e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101f0565b73ffffffffffffffffffffffffffffffffffffffff81166110515760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016101f0565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610ea5565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610527816111dc565b73ffffffffffffffffffffffffffffffffffffffff8116610527576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff166111cb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b6111d3611253565b610527816112d8565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166112d05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b610a8e611355565b600054610100900460ff1661051e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b600054610100900460ff166113d25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101f0565b610a8e336110d0565b5080546113e790611429565b6000825580601f106113f7575050565b601f01602090049060005260206000209081019061052791905b808211156114255760008155600101611411565b5090565b600181811c9082168061143d57607f821691505b602082108103611476577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b60006020828403121561149e57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146114c257600080fd5b9392505050565b6000602082840312156114db57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146114c257600080fd5b6000815180845260005b8181101561153157602081850181015186830182015201611515565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006114c2602083018461150b565b60008083601f84011261159457600080fd5b50813567ffffffffffffffff8111156115ac57600080fd5b6020830191508360208260051b85010111156115c757600080fd5b9250929050565b600080600080604085870312156115e457600080fd5b843567ffffffffffffffff808211156115fc57600080fd5b61160888838901611582565b9096509450602087013591508082111561162157600080fd5b5061162e87828801611582565b95989497509550505050565b60008060006040848603121561164f57600080fd5b833561ffff8116811461166157600080fd5b9250602084013567ffffffffffffffff8082111561167e57600080fd5b818601915086601f83011261169257600080fd5b8135818111156116a157600080fd5b8760208285010111156116b357600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006116f5604083018461150b565b949350505050565b801515811461052757600080fd5b60006020828403121561171d57600080fd5b81516114c2816116fd565b600073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525060606040830152611761606083018461150b565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126117ce57600080fd5b83018035915067ffffffffffffffff8211156117e957600080fd5b6020019150368190038213156115c757600080fd5b60006020828403121561181057600080fd5b81356114c2816116fd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f821115611892576000816000526020600020601f850160051c810160208610156118735750805b601f850160051c820191505b81811015610a865782815560010161187f565b505050565b67ffffffffffffffff8311156118af576118af61181b565b6118c3836118bd8354611429565b8361184a565b6000601f84116001811461191557600085156118df5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610702565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156119645786850135825560209485019460019092019101611944565b508682101561199f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081358181169160148510156119f15780818660140360031b1b83161692505b505092915050565b61ffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019291505056fe7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329a2646970667358221220750d75d635d75c82037ca5f8502df65cb2eb49e27e4db877ec324efc20c851a564736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF 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 0x3D7 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x408 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x426 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x3C4 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x4BB7453E GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x4BB7453E EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x5F21F75E EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x301 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x2EE JUMPI DUP1 PUSH4 0x180D295C EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x3F90B540 EQ PUSH2 0x32C JUMPI JUMPDEST PUSH1 0x0 DUP1 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD CALLDATASIZE SWAP2 PUSH1 0x60 SWAP2 DUP5 SWAP2 SWAP1 PUSH2 0x123 SWAP1 PUSH2 0x1429 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 0x14F SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x171 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19C 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 0x17F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E206E6F7420666F756E640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x202 DUP2 PUSH2 0x439 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x24C SWAP3 SWAP2 SWAP1 PUSH2 0x147C 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 0x289 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 0x28E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x63616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST DUP1 MLOAD SWAP6 POP PUSH1 0x20 ADD SWAP4 POP POP POP POP RETURN JUMPDEST PUSH2 0x301 PUSH2 0x2FC CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x516 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x316 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x52A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x156F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x301 PUSH2 0x33A CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x34D CALLDATASIZE PUSH1 0x4 PUSH2 0x15CE JUMP JUMPDEST PUSH2 0x709 JUMP JUMPDEST PUSH2 0x379 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x323 JUMP JUMPDEST PUSH2 0x301 PUSH2 0xA90 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x163A JUMP JUMPDEST PUSH2 0xB28 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x403 CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0xCD4 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x379 JUMP JUMPDEST PUSH2 0x301 PUSH2 0x434 CALLDATASIZE PUSH1 0x4 PUSH2 0x148C JUMP JUMPDEST PUSH2 0xEB1 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x492 SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x16C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4AF 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 0x4D3 SWAP2 SWAP1 PUSH2 0x170B JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x512 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH32 0x4A3FA29300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F0 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1728 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x51E PUSH2 0xF61 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0xFC8 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x543 SWAP1 PUSH2 0x1429 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 0x56F SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5BC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x591 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5BC 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 0x59F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x602 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7472616E736665724272696467654F776E657273686970286164647265737329 DUP2 MSTORE POP PUSH2 0x439 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF2FDE38B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x702 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x711 PUSH2 0xF61 JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0x787 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E70757420617272617973206D7573742068617665207468652073616D6520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C656E6774680000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x7A6 JUMPI PUSH2 0x7A6 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x7B8 SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C6 SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE SWAP2 DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 POP SWAP1 PUSH2 0x810 SWAP1 PUSH2 0x1429 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 0x83C SWAP1 PUSH2 0x1429 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x889 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x85E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x889 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 0x86C 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 0x8A2 JUMPI PUSH2 0x8A2 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8B7 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C2 JUMPI POP DUP1 MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x99B JUMPI DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x8D9 JUMPI PUSH2 0x8D9 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 PUSH2 0x928 SWAP2 SWAP1 DUP4 PUSH2 0x1897 JUMP JUMPDEST POP DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x93B JUMPI PUSH2 0x93B PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x94D SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x95B SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH1 0x1 DUP3 MSTORE SWAP1 PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xA7C JUMP JUMPDEST DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x9AD JUMPI PUSH2 0x9AD PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x9C2 SWAP2 SWAP1 PUSH2 0x17FE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x9CF JUMPI POP DUP1 MLOAD ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xA7C JUMPI PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xA0E SWAP2 PUSH2 0x13DB JUMP JUMPDEST DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0xA20 JUMPI PUSH2 0xA20 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA32 SWAP2 SWAP1 PUSH2 0x1799 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA40 SWAP3 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH1 0x0 DUP3 MSTORE SWAP1 PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP PUSH1 0x1 ADD PUSH2 0x78A JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0xB1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0x10D0 JUMP JUMPDEST PUSH2 0xB49 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A52 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x439 JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0xB9D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436861696E4964206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xBB2 PUSH2 0xBAA DUP3 DUP5 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x60 SHR PUSH2 0x1101 JUMP JUMPDEST PUSH1 0x14 DUP2 EQ PUSH2 0xC27 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x536F757263652061646472657373206D75737420626520323020627974657320 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6F6E6700000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA6C3D16500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xA6C3D165 SWAP1 PUSH2 0xC9D SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCCB 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 0xCF4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xD0E JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xD80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xDDE JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xE41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206D757374206E6F74206265207A65726F0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xE4A DUP3 PUSH2 0x114E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xEB9 PUSH2 0xF61 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xF1C PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xA8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1051 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0xEA5 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x527 DUP2 PUSH2 0x11DC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x11CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0x11D3 PUSH2 0x1253 JUMP JUMPDEST PUSH2 0x527 DUP2 PUSH2 0x12D8 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 0x12D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xA8E PUSH2 0x1355 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x51E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x13D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH2 0xA8E CALLER PUSH2 0x10D0 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x13E7 SWAP1 PUSH2 0x1429 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x13F7 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 0x527 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1425 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1411 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x143D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1476 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x149E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x14C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1531 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x1515 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x14C2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1594 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x15C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x15FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1608 DUP9 DUP4 DUP10 ADD PUSH2 0x1582 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1621 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162E DUP8 DUP3 DUP9 ADD PUSH2 0x1582 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x164F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x167E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x16B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x16F5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x171D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x14C2 DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE DUP1 DUP6 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1761 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x150B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x17CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x17E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x15C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1810 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14C2 DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1892 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1873 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA86 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x187F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x18AF JUMPI PUSH2 0x18AF PUSH2 0x181B JUMP JUMPDEST PUSH2 0x18C3 DUP4 PUSH2 0x18BD DUP4 SLOAD PUSH2 0x1429 JUMP JUMPDEST DUP4 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1915 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x18DF JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0x702 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1964 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1944 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x199F JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x14 DUP6 LT ISZERO PUSH2 0x19F1 JUMPI DUP1 DUP2 DUP7 PUSH1 0x14 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE DUP2 PUSH1 0x40 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x60 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD ADD SWAP3 SWAP2 POP POP JUMP INVALID PUSH20 0x65745472757374656452656D6F74654164647265 PUSH20 0x732875696E7431362C627974657329A264697066 PUSH20 0x58221220750D75D635D75C82037CA5F8502DF65C 0xB2 0xEB BLOBHASH 0xE2 PUSH31 0x4DB877EC324EFC20C851A564736F6C63430008190033000000000000000000 ","sourceMap":"734:4458:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3146:7;;;;3129:25;;:16;:25;;;;;3109:45;;734:4458;;3085:12;;734:4458;;3129:25;3109:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3178:3;3172:17;3193:1;3172:22;3164:53;;;;-1:-1:-1;;;3164:53:27;;658:2:54;3164:53:27;;;640:21:54;697:2;677:18;;;670:30;736:20;716:18;;;709:48;774:18;;3164:53:27;;;;;;;;;3227:24;3247:3;3227:19;:24::i;:::-;3262:7;3271:16;3299:29;3291:43;;3335:5;;3291:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3261:80;;;;3359:2;3351:26;;;;-1:-1:-1;;;3351:26:27;;1281:2:54;3351:26:27;;;1263:21:54;1320:2;1300:18;;;1293:30;1359:13;1339:18;;;1332:41;1390:18;;3351:26:27;1079:335:54;3351:26:27;734:4458;;;-1:-1:-1;734:4458:27;;;-1:-1:-1;;;;734:4458:27;2102:147:33;;;;;;:::i;:::-;;:::i;:::-;;1057:49:27;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4757:271;;;;;;:::i;:::-;;:::i;3679:838::-;;;;;;:::i;:::-;;:::i;876:75::-;;;;;;;;4178:42:54;4166:55;;;4148:74;;4136:2;4121:18;876:75:27;3965:263:54;2010:206:9;;;:::i;1441:85:10:-;1513:6;;;;1441:85;;2303:472:27;;;;;;:::i;:::-;;:::i;2345:125:33:-;2442:21;;;;2345:125;;1727:217:27;;;;;;:::i;:::-;;:::i;1123:99:9:-;1202:13;;;;1123:99;;1415:178;;;;;;:::i;:::-;;:::i;3203:282:33:-;3304:21;;:60;;;;;3281:20;;3304:21;;;:37;;:60;;3342:10;;3354:9;;3304:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3281:83;;3380:15;3375:104;;3431:10;3451:4;3458:9;3418:50;;;;;;;;;;;;;:::i;3375:104::-;3271:214;3203:282;:::o;2102:147::-;1334:13:10;:11;:13::i;:::-;2195:47:33::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;1057:49:27:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4757:271::-;4828:55;;;;;;;;;;;;;;;;;;:19;:55::i;:::-;4901:23;;;4893:60;;;;-1:-1:-1;;;4893:60:27;;6849:2:54;4893:60:27;;;6831:21:54;6888:2;6868:18;;;6861:30;6927:26;6907:18;;;6900:54;6971:18;;4893:60:27;6647:348:54;4893:60:27;4963:58;;;;;:47;4166:55:54;;;4963:58:27;;;4148:74:54;4963:29:27;:47;;;;4121:18:54;;4963:58:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4757:271;:::o;3679:838::-;1334:13:10;:11;:13::i;:::-;3815:11:27;3851:33;;::::1;3843:84;;;::::0;-1:-1:-1;;;3843:84:27;;7202:2:54;3843:84:27::1;::::0;::::1;7184:21:54::0;7241:2;7221:18;;;7214:30;7280:34;7260:18;;;7253:62;7351:8;7331:18;;;7324:36;7377:19;;3843:84:27::1;7000:402:54::0;3843:84:27::1;3942:9;3937:574;3957:15;3953:1;:19;3937:574;;;3993:14;4033:11;;4045:1;4033:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4017:32;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;4095:25;;::::1;4064:22;4095:25:::0;;;:16:::1;:25;::::0;;;;4064:57;;4017:32;;-1:-1:-1;4095:25:27;4064:57:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4139:7;;4147:1;4139:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;:35;;;;-1:-1:-1::0;4153:16:27;;:21;4139:35:::1;4135:366;;;4222:11;;4234:1;4222:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4194:25:::0;;::::1;;::::0;;;:16:::1;:25;::::0;;;;;:42:::1;::::0;;:25;:42:::1;:::i;:::-;;4283:11;;4295:1;4283:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4259:45;;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;4299:4:::1;11270:41:54::0;;4259:45:27;::::1;::::0;11258:2:54;11243:18;4259:45:27::1;;;;;;;4135:366;;;4330:7;;4338:1;4330:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4329:11;:36;;;;-1:-1:-1::0;4344:16:27;;:21;::::1;4329:36;4325:176;;;4392:25:::0;;::::1;;::::0;;;:16:::1;:25;::::0;;;;4385:32:::1;::::0;::::1;:::i;:::-;4464:11;;4476:1;4464:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4440:46;;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;4480:5:::1;11270:41:54::0;;4440:46:27;::::1;::::0;11258:2:54;11243:18;4440:46:27::1;;;;;;;4325:176;-1:-1:-1::0;;3974:3:27::1;;3937:574;;;;3779:738;3679:838:::0;;;;:::o;5135:55::-;:::o;2010:206:9:-;1202:13;;929:10:13;;2103:24:9;1202:13;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:9;;11524:2:54;2095:78:9;;;11506:21:54;11563:2;11543:18;;;11536:30;11602:34;11582:18;;;11575:62;11673:11;11653:18;;;11646:39;11702:19;;2095:78:9;11322:405:54;2095:78:9;2183:26;2202:6;2183:18;:26::i;2303:472:27:-;2403:60;;;;;;;;;;;;;;;;;;:19;:60::i;:::-;2481:11;:16;;2496:1;2481:16;2473:53;;;;-1:-1:-1;;;2473:53:27;;11934:2:54;2473:53:27;;;11916:21:54;11973:2;11953:18;;;11946:30;12012:26;11992:18;;;11985:54;12056:18;;2473:53:27;11732:348:54;2473:53:27;2536:60;2573:20;2581:11;;2573:20;:::i;:::-;2565:29;;2536:20;:60::i;:::-;2636:2;2614:24;;2606:73;;;;-1:-1:-1;;;2606:73:27;;12664:2:54;2606:73:27;;;12646:21:54;12703:2;12683:18;;;12676:30;12742:34;12722:18;;;12715:62;12813:6;12793:18;;;12786:34;12837:19;;2606:73:27;12462:400:54;2606:73:27;2689:79;;;;;:53;:29;:53;;;;:79;;2743:11;;2756;;;;2689:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:472;;;:::o;1727:217::-;3268:19:11;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:11;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:11;1476:19:12;:23;;;3376:66:11;;-1:-1:-1;3425:12:11;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:11;;13603:2:54;3314:201:11;;;13585:21:54;13642:2;13622:18;;;13615:30;13681:34;13661:18;;;13654:62;13752:16;13732:18;;;13725:44;13786:19;;3314:201:11;13401:410:54;3314:201:11;3525:12;:16;;;;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;1817:35:27::1;::::0;::::1;1809:72;;;::::0;-1:-1:-1;;;1809:72:27;;6849:2:54;1809:72:27::1;::::0;::::1;6831:21:54::0;6888:2;6868:18;;;6861:30;6927:26;6907:18;;;6900:54;6971:18;;1809:72:27::1;6647:348:54::0;1809:72:27::1;1891:46;1915:21;1891:23;:46::i;:::-;3640:14:11::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;13968:36:54;;3710:14:11;;13956:2:54;13941:18;3710:14:11;;;;;;;;3258:483;1727:217:27;:::o;1415:178:9:-;1334:13:10;:11;:13::i;:::-;1504::9::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:10::0;;;;;1441:85;1568:7:9::1;1543:43;;;;;;;;;;;;1415:178:::0;:::o;1599:130:10:-;1513:6;;1662:23;1513:6;929:10:13;1662:23:10;1654:68;;;;-1:-1:-1;;;1654:68:10;;14217:2:54;1654:68:10;;;14199:21:54;;;14236:18;;;14229:30;14295:34;14275:18;;;14268:62;14347:18;;1654:68:10;14015:356:54;2641:425:33;2733:44;;;2725:94;;;;-1:-1:-1;;;2725:94:33;;14578:2:54;2725:94:33;;;14560:21:54;14617:2;14597:18;;;14590:30;14656:34;14636:18;;;14629:62;14727:7;14707:18;;;14700:35;14752:19;;2725:94:33;14376:401:54;2725:94:33;2871:21;;;;2903:70;;;;;;;;;;;2988:71;;;2871:21;;;;15017:34:54;;;15082:2;15067:18;;15060:43;;;;2988:71:33;;14929:18:54;2988:71:33;14782:327:54;1777:153:9;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;485:136:24:-;548:22;;;544:75;;589:23;;;;;;;;;;;;;;1419:194:33;5363:13:11;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:11;;15316:2:54;5355:69:11;;;15298:21:54;15355:2;15335:18;;;15328:30;15394:34;15374:18;;;15367:62;15465:13;15445:18;;;15438:41;15496:19;;5355:69:11;15114:407:54;5355:69:11;1519:21:33::1;:19;:21::i;:::-;1550:56;1584:21;1550:33;:56::i;2673:187:10:-:0;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;738:100:9:-;5363:13:11;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:11;;15316:2:54;5355:69:11;;;15298:21:54;15355:2;15335:18;;;15328:30;15394:34;15374:18;;;15367:62;15465:13;15445:18;;;15438:41;15496:19;;5355:69:11;15114:407:54;5355:69:11;805:26:9::1;:24;:26::i;1619:164:33:-:0;5363:13:11;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:11;;15316:2:54;5355:69:11;;;15298:21:54;15355:2;15335:18;;;15328:30;15394:34;15374:18;;;15367:62;15465:13;15445:18;;;15438:41;15496:19;;5355:69:11;15114:407:54;1104:111:10;5363:13:11;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:11;;15316:2:54;5355:69:11;;;15298:21:54;15355:2;15335:18;;;15328:30;15394:34;15374:18;;;15367:62;15465:13;15445:18;;;15438:41;15496:19;;5355:69:11;15114:407:54;5355:69:11;1176:32:10::1;929:10:13::0;1176:18:10::1;:32::i;-1:-1:-1:-:0;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:437:54:-;93:1;89:12;;;;136;;;157:61;;211:4;203:6;199:17;189:27;;157:61;264:2;256:6;253:14;233:18;230:38;227:218;;301:77;298:1;291:88;402:4;399:1;392:15;430:4;427:1;420:15;227:218;;14:437;;;:::o;803:271::-;986:6;978;973:3;960:33;942:3;1012:16;;1037:13;;;1012:16;803:271;-1:-1:-1;803:271:54:o;1419:309::-;1478:6;1531:2;1519:9;1510:7;1506:23;1502:32;1499:52;;;1547:1;1544;1537:12;1499:52;1586:9;1573:23;1636:42;1629:5;1625:54;1618:5;1615:65;1605:93;;1694:1;1691;1684:12;1605:93;1717:5;1419:309;-1:-1:-1;;;1419:309:54:o;1733:332::-;1791:6;1844:2;1832:9;1823:7;1819:23;1815:32;1812:52;;;1860:1;1857;1850:12;1812:52;1899:9;1886:23;1949:66;1942:5;1938:78;1931:5;1928:89;1918:117;;2031:1;2028;2021:12;2070:482;2112:3;2150:5;2144:12;2177:6;2172:3;2165:19;2202:1;2212:162;2226:6;2223:1;2220:13;2212:162;;;2288:4;2344:13;;;2340:22;;2334:29;2316:11;;;2312:20;;2305:59;2241:12;2212:162;;;2216:3;2419:1;2412:4;2403:6;2398:3;2394:16;2390:27;2383:38;2541:4;2471:66;2466:2;2458:6;2454:15;2450:88;2445:3;2441:98;2437:109;2430:116;;;2070:482;;;;:::o;2557:220::-;2706:2;2695:9;2688:21;2669:4;2726:45;2767:2;2756:9;2752:18;2744:6;2726:45;:::i;2782:375::-;2853:8;2863:6;2917:3;2910:4;2902:6;2898:17;2894:27;2884:55;;2935:1;2932;2925:12;2884:55;-1:-1:-1;2958:20:54;;3001:18;2990:30;;2987:50;;;3033:1;3030;3023:12;2987:50;3070:4;3062:6;3058:17;3046:29;;3130:3;3123:4;3113:6;3110:1;3106:14;3098:6;3094:27;3090:38;3087:47;3084:67;;;3147:1;3144;3137:12;3084:67;2782:375;;;;;:::o;3162:798::-;3293:6;3301;3309;3317;3370:2;3358:9;3349:7;3345:23;3341:32;3338:52;;;3386:1;3383;3376:12;3338:52;3426:9;3413:23;3455:18;3496:2;3488:6;3485:14;3482:34;;;3512:1;3509;3502:12;3482:34;3551:78;3621:7;3612:6;3601:9;3597:22;3551:78;:::i;:::-;3648:8;;-1:-1:-1;3525:104:54;-1:-1:-1;3736:2:54;3721:18;;3708:32;;-1:-1:-1;3752:16:54;;;3749:36;;;3781:1;3778;3771:12;3749:36;;3820:80;3892:7;3881:8;3870:9;3866:24;3820:80;:::i;:::-;3162:798;;;;-1:-1:-1;3919:8:54;-1:-1:-1;;;;3162:798:54:o;4464:751::-;4542:6;4550;4558;4611:2;4599:9;4590:7;4586:23;4582:32;4579:52;;;4627:1;4624;4617:12;4579:52;4666:9;4653:23;4716:6;4709:5;4705:18;4698:5;4695:29;4685:57;;4738:1;4735;4728:12;4685:57;4761:5;-1:-1:-1;4817:2:54;4802:18;;4789:32;4840:18;4870:14;;;4867:34;;;4897:1;4894;4887:12;4867:34;4935:6;4924:9;4920:22;4910:32;;4980:7;4973:4;4969:2;4965:13;4961:27;4951:55;;5002:1;4999;4992:12;4951:55;5042:2;5029:16;5068:2;5060:6;5057:14;5054:34;;;5084:1;5081;5074:12;5054:34;5129:7;5124:2;5115:6;5111:2;5107:15;5103:24;5100:37;5097:57;;;5150:1;5147;5140:12;5097:57;5181:2;5177;5173:11;5163:21;;5203:6;5193:16;;;;;4464:751;;;;;:::o;5483:340::-;5672:42;5664:6;5660:55;5649:9;5642:74;5752:2;5747;5736:9;5732:18;5725:30;5623:4;5772:45;5813:2;5802:9;5798:18;5790:6;5772:45;:::i;:::-;5764:53;5483:340;-1:-1:-1;;;;5483:340:54:o;5828:118::-;5914:5;5907:13;5900:21;5893:5;5890:32;5880:60;;5936:1;5933;5926:12;5951:245;6018:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:52;;;6087:1;6084;6077:12;6039:52;6119:9;6113:16;6138:28;6160:5;6138:28;:::i;6201:441::-;6369:4;6398:42;6479:2;6471:6;6467:15;6456:9;6449:34;6531:2;6523:6;6519:15;6514:2;6503:9;6499:18;6492:43;;6571:2;6566;6555:9;6551:18;6544:30;6591:45;6632:2;6621:9;6617:18;6609:6;6591:45;:::i;:::-;6583:53;6201:441;-1:-1:-1;;;;;6201:441:54:o;7407:184::-;7459:77;7456:1;7449:88;7556:4;7553:1;7546:15;7580:4;7577:1;7570:15;7596:581;7674:4;7680:6;7740:11;7727:25;7830:66;7819:8;7803:14;7799:29;7795:102;7775:18;7771:127;7761:155;;7912:1;7909;7902:12;7761:155;7939:33;;7991:20;;;-1:-1:-1;8034:18:54;8023:30;;8020:50;;;8066:1;8063;8056:12;8020:50;8099:4;8087:17;;-1:-1:-1;8130:14:54;8126:27;;;8116:38;;8113:58;;;8167:1;8164;8157:12;8182:241;8238:6;8291:2;8279:9;8270:7;8266:23;8262:32;8259:52;;;8307:1;8304;8297:12;8259:52;8346:9;8333:23;8365:28;8387:5;8365:28;:::i;8428:184::-;8480:77;8477:1;8470:88;8577:4;8574:1;8567:15;8601:4;8598:1;8591:15;8743:543;8845:2;8840:3;8837:11;8834:446;;;8881:1;8905:5;8902:1;8895:16;8949:4;8946:1;8936:18;9019:2;9007:10;9003:19;9000:1;8996:27;8990:4;8986:38;9055:4;9043:10;9040:20;9037:47;;;-1:-1:-1;9078:4:54;9037:47;9133:2;9128:3;9124:12;9121:1;9117:20;9111:4;9107:31;9097:41;;9188:82;9206:2;9199:5;9196:13;9188:82;;;9251:17;;;9232:1;9221:13;9188:82;;8834:446;8743:543;;;:::o;9522:1325::-;9646:18;9641:3;9638:27;9635:53;;;9668:18;;:::i;:::-;9697:94;9787:3;9747:38;9779:4;9773:11;9747:38;:::i;:::-;9741:4;9697:94;:::i;:::-;9817:1;9842:2;9837:3;9834:11;9859:1;9854:735;;;;10633:1;10650:3;10647:93;;;-1:-1:-1;10706:19:54;;;10693:33;10647:93;9428:66;9419:1;9415:11;;;9411:84;9407:89;9397:100;9503:1;9499:11;;;9394:117;10753:78;;9827:1014;;9854:735;8690:1;8683:14;;;8727:4;8714:18;;9899:66;9890:76;;;10050:9;10072:229;10086:7;10083:1;10080:14;10072:229;;;10175:19;;;10162:33;10147:49;;10282:4;10267:20;;;;10235:1;10223:14;;;;10102:12;10072:229;;;10076:3;10329;10320:7;10317:16;10314:219;;;10449:66;10443:3;10437;10434:1;10430:11;10426:21;10422:94;10418:99;10405:9;10400:3;10396:19;10383:33;10379:139;10371:6;10364:155;10314:219;;;10576:1;10570:3;10567:1;10563:11;10559:19;10553:4;10546:33;9827:1014;;9522:1325;;;:::o;12085:372::-;12244:66;12206:19;;12328:11;;;;12359:2;12351:11;;12348:103;;;12438:2;12432;12425:3;12421:2;12417:12;12414:1;12410:20;12406:29;12402:2;12398:38;12394:47;12385:56;;12348:103;;;12085:372;;;;:::o;12867:529::-;13062:6;13054;13050:19;13039:9;13032:38;13106:2;13101;13090:9;13086:18;13079:30;13145:6;13140:2;13129:9;13125:18;13118:34;13202:6;13194;13189:2;13178:9;13174:18;13161:48;13258:1;13229:22;;;13253:2;13225:31;;;13218:42;;;;13312:2;13300:15;;;13317:66;13296:88;13281:104;13277:113;;12867:529;-1:-1:-1;;12867:529:54:o"},"gasEstimates":{"creation":{"codeDepositCost":"1365600","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","OMNICHAIN_GOVERNANCE_EXECUTOR()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"2329","functionRegistry(bytes4)":"infinite","initialize(address)":"infinite","owner()":"2352","pendingOwner()":"2373","renounceOwnership()":"187","setAccessControlManager(address)":"28087","setTrustedRemoteAddress(uint16,bytes)":"infinite","transferBridgeOwnership(address)":"infinite","transferOwnership(address)":"30393","upsertSignature(string[],bool[])":"infinite"}},"methodIdentifiers":{"OMNICHAIN_GOVERNANCE_EXECUTOR()":"5f21f75e","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","functionRegistry(bytes4)":"180d295c","initialize(address)":"c4d66de8","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\":\"omnichainGovernanceExecutor_\",\"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\":true,\"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\":\"OMNICHAIN_GOVERNANCE_EXECUTOR\",\"outputs\":[{\"internalType\":\"contract IOmnichainGovernanceExecutor\",\"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\":[],\"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\":\"srcChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"srcAddress_\",\"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\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"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\"}},\"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:event\":\"Emits SetTrustedRemoteAddress with source chain Id and source address\",\"params\":{\"srcAddress_\":\"The address of the contract on the source chain\",\"srcChainId_\":\"The LayerZero id of a source chain\"}},\"transferBridgeOwnership(address)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"params\":{\"newOwner_\":\"New owner of the governanceExecutor\"}},\"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\",\"params\":{\"active_\":\"bool value, should be true to add function\",\"signatures_\":\"Function signature to be added or removed\"}}},\"stateVariables\":{\"OMNICHAIN_GOVERNANCE_EXECUTOR\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"OmnichainExecutorOwner\",\"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\":\"Event 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\":\"Stores function signature corresponding to their 4 bytes hash value\"},\"initialize(address)\":{\"notice\":\"Initialize the contract\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setTrustedRemoteAddress(uint16,bytes)\":{\"notice\":\"Sets the source message sender address\"},\"transferBridgeOwnership(address)\":{\"notice\":\"This function transfer the ownership of the executor from this contract to new owner\"},\"upsertSignature(string[],bool[])\":{\"notice\":\"A registry of functions that are allowed to be executed from proposals\"}},\"notice\":\"OmnichainProposalSender contract acts as a governance and access control mechanism, allowing owner to upsert signature of OmnichainGovernanceExecutor contract, also contains function to transfer the ownership of contract as well.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/OmnichainExecutorOwner.sol\":\"OmnichainExecutorOwner\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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() external {\\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\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.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 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    /**\\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\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (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 * ```\\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 *\\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\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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     *\\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 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(\\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        (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 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\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"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/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/Cross-chain/OmnichainExecutorOwner.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { AccessControlledV8 } from \\\"../Governance/AccessControlledV8.sol\\\";\\nimport { IOmnichainGovernanceExecutor } from \\\"./interfaces/IOmnichainGovernanceExecutor.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title OmnichainExecutorOwner\\n * @author Venus\\n * @notice OmnichainProposalSender contract acts as a governance and access control mechanism,\\n * allowing owner to upsert signature of OmnichainGovernanceExecutor contract,\\n * also contains function to transfer the ownership of contract as well.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\ncontract OmnichainExecutorOwner is AccessControlledV8 {\\n    /**\\n     *  @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n     */\\n    IOmnichainGovernanceExecutor public immutable OMNICHAIN_GOVERNANCE_EXECUTOR;\\n\\n    /**\\n     * @notice Stores function signature corresponding to their 4 bytes hash value\\n     */\\n    mapping(bytes4 => string) public functionRegistry;\\n\\n    /**\\n     * @notice Event emitted when function registry updated\\n     */\\n    event FunctionRegistryChanged(string indexed signature, bool active);\\n\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor(address omnichainGovernanceExecutor_) {\\n        require(omnichainGovernanceExecutor_ != address(0), \\\"Address must not be zero\\\");\\n        OMNICHAIN_GOVERNANCE_EXECUTOR = IOmnichainGovernanceExecutor(omnichainGovernanceExecutor_);\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @notice Initialize the contract\\n     * @param accessControlManager_  Address of access control manager\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        require(accessControlManager_ != address(0), \\\"Address must not be zero\\\");\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the source message sender address\\n     * @param srcChainId_ The LayerZero id of a source chain\\n     * @param srcAddress_ The address of the contract on the source chain\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SetTrustedRemoteAddress with source chain Id and source address\\n     */\\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external {\\n        _checkAccessAllowed(\\\"setTrustedRemoteAddress(uint16,bytes)\\\");\\n        require(srcChainId_ != 0, \\\"ChainId must not be zero\\\");\\n        ensureNonzeroAddress(address(uint160(bytes20(srcAddress_))));\\n        require(srcAddress_.length == 20, \\\"Source address must be 20 bytes long\\\");\\n        OMNICHAIN_GOVERNANCE_EXECUTOR.setTrustedRemoteAddress(srcChainId_, srcAddress_);\\n    }\\n\\n    /**\\n     * @notice Invoked when called function does not exist in the contract\\n     * @param data_ Calldata containing the encoded function call\\n     * @return Result of function call\\n     * @custom:access Controlled by Access Control Manager\\n     */\\n    fallback(bytes calldata data_) external returns (bytes memory) {\\n        string memory fun = functionRegistry[msg.sig];\\n        require(bytes(fun).length != 0, \\\"Function not found\\\");\\n        _checkAccessAllowed(fun);\\n        (bool ok, bytes memory res) = address(OMNICHAIN_GOVERNANCE_EXECUTOR).call(data_);\\n        require(ok, \\\"call failed\\\");\\n        return res;\\n    }\\n\\n    /**\\n     * @notice A 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     */\\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; ++i) {\\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        }\\n    }\\n\\n    /**\\n     * @notice This function transfer the ownership of the executor from this contract to new owner\\n     * @param newOwner_ New owner of the governanceExecutor\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n\\n    function transferBridgeOwnership(address newOwner_) external {\\n        _checkAccessAllowed(\\\"transferBridgeOwnership(address)\\\");\\n        require(newOwner_ != address(0), \\\"Address must not be zero\\\");\\n        OMNICHAIN_GOVERNANCE_EXECUTOR.transferOwnership(newOwner_);\\n    }\\n\\n    /**\\n     *  @notice Empty implementation of renounce ownership to avoid any mishappening\\n     */\\n    function renounceOwnership() public virtual override {}\\n}\\n\",\"keccak256\":\"0xc04fcc16654a57743f1b515fc61aeed0bfe67e456c72e5cce7ff613439133109\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.25;\\n\\ninterface IOmnichainGovernanceExecutor {\\n    /**\\n     * @notice Transfers ownership of the contract to the specified address\\n     * @param addr The address to which ownership will be transferred\\n     */\\n    function transferOwnership(address addr) external;\\n\\n    /**\\n     * @notice Sets the source message sender address\\n     * @param srcChainId_ The LayerZero id of a source chain\\n     * @param srcAddress_ The address of the contract on the source chain\\n     */\\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external;\\n}\\n\",\"keccak256\":\"0xae3df89cc760968a190e3d723211a643c2aa49c54c0579a1e17db4fc27bf24cb\",\"license\":\"MIT\"},\"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\"},\"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":3190,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":3193,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":3677,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":3062,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":3182,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":2971,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":3050,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":8204,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)8389"},{"astId":8209,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":5887,"contract":"contracts/Cross-chain/OmnichainExecutorOwner.sol:OmnichainExecutorOwner","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)8389":{"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":"Event 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":"Stores function signature corresponding to their 4 bytes hash value"},"initialize(address)":{"notice":"Initialize the contract"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setTrustedRemoteAddress(uint16,bytes)":{"notice":"Sets the source message sender address"},"transferBridgeOwnership(address)":{"notice":"This function transfer the ownership of the executor from this contract to new owner"},"upsertSignature(string[],bool[])":{"notice":"A registry of functions that are allowed to be executed from proposals"}},"notice":"OmnichainProposalSender contract acts as a governance and access control mechanism, allowing owner to upsert signature of OmnichainGovernanceExecutor contract, also contains function to transfer the ownership of contract as well.","version":1}}},"contracts/Cross-chain/OmnichainGovernanceExecutor.sol":{"OmnichainGovernanceExecutor":{"abi":[{"inputs":[{"internalType":"address","name":"endpoint_","type":"address"},{"internalType":"address","name":"guardian_","type":"address"},{"internalType":"uint16","name":"srcChainId_","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidProposalId","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"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":"oldGuardian","type":"address"},{"indexed":true,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","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":"uint256","name":"id","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint8","name":"proposalType","type":"uint8"}],"name":"ProposalReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":true,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"ReceivePayloadFailed","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":"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":"_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":true,"internalType":"uint16","name":"oldSrcChainId","type":"uint16"},{"indexed":true,"internalType":"uint16","name":"newSrcChainId","type":"uint16"}],"name":"SetSrcChainId","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"SetTimelockPendingAdmin","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":false,"internalType":"uint8","name":"routeType","type":"uint8"},{"indexed":true,"internalType":"address","name":"oldTimelock","type":"address"},{"indexed":true,"internalType":"address","name":"newTimelock","type":"address"}],"name":"TimelockAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ITimelock[]","name":"timelocks_","type":"address[]"}],"name":"addTimelocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId_","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId_","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","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":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"last24HourCommandsReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last24HourReceiveWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastProposalReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"maxDailyReceiveLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"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":"uint256","name":"","type":"uint256"}],"name":"proposalTimelocks","outputs":[{"internalType":"contract ITimelock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"eta","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"queued","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address","name":"newGuardian","type":"address"}],"name":"setGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyReceiveLimit","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":"srcChainId_","type":"uint16"}],"name":"setSrcChainId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"},{"internalType":"uint8","name":"proposalType_","type":"uint8"}],"name":"setTimelockPendingAdmin","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":"srcChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId_","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum OmnichainGovernanceExecutor.ProposalState","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"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","details":"The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor This implementation is non-blocking, meaning the failed messages will not block the future messages from the source. For the blocking behavior, derive the contract from LzApp.","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":{"addTimelocks(address[])":{"custom:access":"Only owner","custom:event":"Emits TimelockAdded with old and new timelock and route type","params":{"timelocks_":"Array of addresses of all 3 timelocks"}},"cancel(uint256)":{"custom:access":"Sender must be the guardian","custom:event":"Emits ProposalCanceled with proposal id of the canceled proposal","params":{"proposalId_":"Id of proposal that is to be canceled"}},"execute(uint256)":{"custom:event":"Emits ProposalExecuted with proposal id of executed proposal","params":{"proposalId_":"Id of proposal that is to be executed"}},"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."},"retryMessage(uint16,bytes,uint64,bytes)":{"custom:access":"Only owner","params":{"nonce_":"Nonce to identify failed message","payload_":"The payload of the message to be retried","srcAddress_":"Source address => local app address + remote app address","srcChainId_":"Source chain Id"}},"setGuardian(address)":{"custom:access":"Must be call by guardian or owner","custom:event":"Emit NewGuardian with old and new guardian address","params":{"newGuardian":"The address of the new guardian"}},"setMaxDailyReceiveLimit(uint256)":{"custom:access":"Only Owner","custom:event":"Emits SetMaxDailyReceiveLimit with old and new limit","params":{"limit_":"Number of commands"}},"setSrcChainId(uint16)":{"custom:access":"Only owner","custom:event":"Emit SetSrcChainId with old and new source id","params":{"srcChainId_":"The new source chain id to be set"}},"setTimelockPendingAdmin(address,uint8)":{"custom:access":"Only owner","custom:event":"Emits SetTimelockPendingAdmin with new pending admin and proposal type","params":{"pendingAdmin_":"Address of new pending admin","proposalType_":"Type of proposal"}},"state(uint256)":{"params":{"proposalId_":"The id of the proposal"},"returns":{"_0":"Proposal state"}},"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"}},"title":"OmnichainGovernanceExecutor","version":1},"evm":{"bytecode":{"functionDebugData":{"@_4091":{"entryPoint":null,"id":4091,"parameterSlots":0,"returnSlots":0},"@_4207":{"entryPoint":null,"id":4207,"parameterSlots":0,"returnSlots":0},"@_4307":{"entryPoint":null,"id":4307,"parameterSlots":0,"returnSlots":0},"@_503":{"entryPoint":null,"id":503,"parameterSlots":1,"returnSlots":0},"@_5523":{"entryPoint":null,"id":5523,"parameterSlots":1,"returnSlots":0},"@_6379":{"entryPoint":null,"id":6379,"parameterSlots":3,"returnSlots":0},"@_989":{"entryPoint":null,"id":989,"parameterSlots":1,"returnSlots":0},"@_msgSender_4354":{"entryPoint":null,"id":4354,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_4179":{"entryPoint":158,"id":4179,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":240,"id":5466,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":282,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint16_fromMemory":{"entryPoint":310,"id":null,"parameterSlots":2,"returnSlots":3}},"generatedSources":[{"ast":{"nativeSrc":"0:644:54","nodeType":"YulBlock","src":"0:644:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"74:117:54","nodeType":"YulBlock","src":"74:117:54","statements":[{"nativeSrc":"84:22:54","nodeType":"YulAssignment","src":"84:22:54","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:54","nodeType":"YulIdentifier","src":"99:6:54"}],"functionName":{"name":"mload","nativeSrc":"93:5:54","nodeType":"YulIdentifier","src":"93:5:54"},"nativeSrc":"93:13:54","nodeType":"YulFunctionCall","src":"93:13:54"},"variableNames":[{"name":"value","nativeSrc":"84:5:54","nodeType":"YulIdentifier","src":"84:5:54"}]},{"body":{"nativeSrc":"169:16:54","nodeType":"YulBlock","src":"169:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:54","nodeType":"YulLiteral","src":"178:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:54","nodeType":"YulLiteral","src":"181:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:54","nodeType":"YulIdentifier","src":"171:6:54"},"nativeSrc":"171:12:54","nodeType":"YulFunctionCall","src":"171:12:54"},"nativeSrc":"171:12:54","nodeType":"YulExpressionStatement","src":"171:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:54","nodeType":"YulIdentifier","src":"128:5:54"},{"arguments":[{"name":"value","nativeSrc":"139:5:54","nodeType":"YulIdentifier","src":"139:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:54","nodeType":"YulLiteral","src":"154:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:54","nodeType":"YulLiteral","src":"159:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:54","nodeType":"YulIdentifier","src":"150:3:54"},"nativeSrc":"150:11:54","nodeType":"YulFunctionCall","src":"150:11:54"},{"kind":"number","nativeSrc":"163:1:54","nodeType":"YulLiteral","src":"163:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:54","nodeType":"YulIdentifier","src":"146:3:54"},"nativeSrc":"146:19:54","nodeType":"YulFunctionCall","src":"146:19:54"}],"functionName":{"name":"and","nativeSrc":"135:3:54","nodeType":"YulIdentifier","src":"135:3:54"},"nativeSrc":"135:31:54","nodeType":"YulFunctionCall","src":"135:31:54"}],"functionName":{"name":"eq","nativeSrc":"125:2:54","nodeType":"YulIdentifier","src":"125:2:54"},"nativeSrc":"125:42:54","nodeType":"YulFunctionCall","src":"125:42:54"}],"functionName":{"name":"iszero","nativeSrc":"118:6:54","nodeType":"YulIdentifier","src":"118:6:54"},"nativeSrc":"118:50:54","nodeType":"YulFunctionCall","src":"118:50:54"},"nativeSrc":"115:70:54","nodeType":"YulIf","src":"115:70:54"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:54","nodeType":"YulTypedName","src":"53:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:54","nodeType":"YulTypedName","src":"64:5:54","type":""}],"src":"14:177:54"},{"body":{"nativeSrc":"310:332:54","nodeType":"YulBlock","src":"310:332:54","statements":[{"body":{"nativeSrc":"356:16:54","nodeType":"YulBlock","src":"356:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"365:1:54","nodeType":"YulLiteral","src":"365:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"368:1:54","nodeType":"YulLiteral","src":"368:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"358:6:54","nodeType":"YulIdentifier","src":"358:6:54"},"nativeSrc":"358:12:54","nodeType":"YulFunctionCall","src":"358:12:54"},"nativeSrc":"358:12:54","nodeType":"YulExpressionStatement","src":"358:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"331:7:54","nodeType":"YulIdentifier","src":"331:7:54"},{"name":"headStart","nativeSrc":"340:9:54","nodeType":"YulIdentifier","src":"340:9:54"}],"functionName":{"name":"sub","nativeSrc":"327:3:54","nodeType":"YulIdentifier","src":"327:3:54"},"nativeSrc":"327:23:54","nodeType":"YulFunctionCall","src":"327:23:54"},{"kind":"number","nativeSrc":"352:2:54","nodeType":"YulLiteral","src":"352:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"323:3:54","nodeType":"YulIdentifier","src":"323:3:54"},"nativeSrc":"323:32:54","nodeType":"YulFunctionCall","src":"323:32:54"},"nativeSrc":"320:52:54","nodeType":"YulIf","src":"320:52:54"},{"nativeSrc":"381:50:54","nodeType":"YulAssignment","src":"381:50:54","value":{"arguments":[{"name":"headStart","nativeSrc":"421:9:54","nodeType":"YulIdentifier","src":"421:9:54"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"391:29:54","nodeType":"YulIdentifier","src":"391:29:54"},"nativeSrc":"391:40:54","nodeType":"YulFunctionCall","src":"391:40:54"},"variableNames":[{"name":"value0","nativeSrc":"381:6:54","nodeType":"YulIdentifier","src":"381:6:54"}]},{"nativeSrc":"440:59:54","nodeType":"YulAssignment","src":"440:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"484:9:54","nodeType":"YulIdentifier","src":"484:9:54"},{"kind":"number","nativeSrc":"495:2:54","nodeType":"YulLiteral","src":"495:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"480:3:54","nodeType":"YulIdentifier","src":"480:3:54"},"nativeSrc":"480:18:54","nodeType":"YulFunctionCall","src":"480:18:54"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"450:29:54","nodeType":"YulIdentifier","src":"450:29:54"},"nativeSrc":"450:49:54","nodeType":"YulFunctionCall","src":"450:49:54"},"variableNames":[{"name":"value1","nativeSrc":"440:6:54","nodeType":"YulIdentifier","src":"440:6:54"}]},{"nativeSrc":"508:38:54","nodeType":"YulVariableDeclaration","src":"508:38:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"531:9:54","nodeType":"YulIdentifier","src":"531:9:54"},{"kind":"number","nativeSrc":"542:2:54","nodeType":"YulLiteral","src":"542:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"527:3:54","nodeType":"YulIdentifier","src":"527:3:54"},"nativeSrc":"527:18:54","nodeType":"YulFunctionCall","src":"527:18:54"}],"functionName":{"name":"mload","nativeSrc":"521:5:54","nodeType":"YulIdentifier","src":"521:5:54"},"nativeSrc":"521:25:54","nodeType":"YulFunctionCall","src":"521:25:54"},"variables":[{"name":"value","nativeSrc":"512:5:54","nodeType":"YulTypedName","src":"512:5:54","type":""}]},{"body":{"nativeSrc":"596:16:54","nodeType":"YulBlock","src":"596:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"605:1:54","nodeType":"YulLiteral","src":"605:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"608:1:54","nodeType":"YulLiteral","src":"608:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"598:6:54","nodeType":"YulIdentifier","src":"598:6:54"},"nativeSrc":"598:12:54","nodeType":"YulFunctionCall","src":"598:12:54"},"nativeSrc":"598:12:54","nodeType":"YulExpressionStatement","src":"598:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"568:5:54","nodeType":"YulIdentifier","src":"568:5:54"},{"arguments":[{"name":"value","nativeSrc":"579:5:54","nodeType":"YulIdentifier","src":"579:5:54"},{"kind":"number","nativeSrc":"586:6:54","nodeType":"YulLiteral","src":"586:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"575:3:54","nodeType":"YulIdentifier","src":"575:3:54"},"nativeSrc":"575:18:54","nodeType":"YulFunctionCall","src":"575:18:54"}],"functionName":{"name":"eq","nativeSrc":"565:2:54","nodeType":"YulIdentifier","src":"565:2:54"},"nativeSrc":"565:29:54","nodeType":"YulFunctionCall","src":"565:29:54"}],"functionName":{"name":"iszero","nativeSrc":"558:6:54","nodeType":"YulIdentifier","src":"558:6:54"},"nativeSrc":"558:37:54","nodeType":"YulFunctionCall","src":"558:37:54"},"nativeSrc":"555:57:54","nodeType":"YulIf","src":"555:57:54"},{"nativeSrc":"621:15:54","nodeType":"YulAssignment","src":"621:15:54","value":{"name":"value","nativeSrc":"631:5:54","nodeType":"YulIdentifier","src":"631:5:54"},"variableNames":[{"name":"value2","nativeSrc":"621:6:54","nodeType":"YulIdentifier","src":"621:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint16_fromMemory","nativeSrc":"196:446:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"260:9:54","nodeType":"YulTypedName","src":"260:9:54","type":""},{"name":"dataEnd","nativeSrc":"271:7:54","nodeType":"YulTypedName","src":"271:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"283:6:54","nodeType":"YulTypedName","src":"283:6:54","type":""},{"name":"value1","nativeSrc":"291:6:54","nodeType":"YulTypedName","src":"291:6:54","type":""},{"name":"value2","nativeSrc":"299:6:54","nodeType":"YulTypedName","src":"299:6:54","type":""}],"src":"196:446:54"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint16_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        let value := mload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n        value2 := value\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051614aa5380380614aa583398101604081905261002f91610136565b60016000558280806100403361009e565b6001600160a01b0316608052506007805460ff19169055610060816100f0565b5061006a826100f0565b600b805461ffff909216600160a01b026001600160b01b03199092166001600160a01b039093169290921717905550610184565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610117576040516342bcdf7f60e11b815260040160405180910390fd5b50565b80516001600160a01b038116811461013157600080fd5b919050565b60008060006060848603121561014b57600080fd5b6101548461011a565b92506101626020850161011a565b9150604084015161ffff8116811461017957600080fd5b809150509250925092565b6080516148dc6101c960003960008181610804015281816109d501528181610c6101528181610d2f01528181611232015281816118c70152611f7901526148dc6000f3fe6080604052600436106102f15760003560e01c8063876919e81161018f578063c4461834116100e1578063ed66039b1161008a578063f4fcfcca11610064578063f4fcfcca14610972578063f5ecbdbc14610992578063fe0d94c1146109b257600080fd5b8063ed66039b146108ef578063ee9799ee1461090f578063f2fde38b1461095257600080fd5b8063d1deba1f116100bb578063d1deba1f1461089c578063df2a5b3b146108af578063eb8d72b7146108cf57600080fd5b8063c446183414610846578063c8b42e5b1461085c578063cbed8b9c1461087c57600080fd5b8063950c8a7411610143578063a6c3d1651161011d578063a6c3d165146107d2578063b353aaa7146107f2578063baf3292d1461082657600080fd5b8063950c8a74146107555780639f0c3101146107825780639f38369a146107b257600080fd5b80638cfd8f5c116101745780638cfd8f5c146106d25780638da5cb5b1461070a5780639493ffad1461073557600080fd5b8063876919e81461069c5780638a0dac4a146106b257600080fd5b806342d65a8d116102485780635c975abb116101fc578063715018a6116101d6578063715018a61461064e5780637533d7881461065a5780638456cb591461068757600080fd5b80635c975abb1461060057806366ad5c8a1461061857806370f6ad9a1461063857600080fd5b8063452a93201161022d578063452a93201461051957806349d126051461056b5780635b8c41e6146105b157600080fd5b806342d65a8d146104e35780634406baaf1461050357600080fd5b806310ddb137116102aa5780633f1f4fa4116102845780633f1f4fa4146104815780633f4ba83a146104ae57806340e58ee5146104c357600080fd5b806310ddb137146104045780633d8b38f6146104245780633e4f49e61461045457600080fd5b80630435bb56116102db5780630435bb56146103a057806307e0db17146103c45780630df37483146103e457600080fd5b80621d3567146102f6578063013cf08b14610318575b600080fd5b34801561030257600080fd5b506103166103113660046137db565b6109d2565b005b34801561032457600080fd5b5061036a61033336600461386f565b600d6020526000908152604090208054600182015460069092015490919060ff808216916101008104821691620100009091041685565b60408051958652602086019490945291151592840192909252901515606083015260ff16608082015260a0015b60405180910390f35b3480156103ac57600080fd5b506103b660085481565b604051908152602001610397565b3480156103d057600080fd5b506103166103df366004613888565b610c27565b3480156103f057600080fd5b506103166103ff3660046138a3565b610cd6565b34801561041057600080fd5b5061031661041f366004613888565b610cf5565b34801561043057600080fd5b5061044461043f3660046138cd565b610d73565b6040519015158152602001610397565b34801561046057600080fd5b5061047461046f36600461386f565b610e40565b604051610397919061394f565b34801561048d57600080fd5b506103b661049c366004613888565b60046020526000908152604090205481565b3480156104ba57600080fd5b50610316610ed7565b3480156104cf57600080fd5b506103166104de36600461386f565b610ee9565b3480156104ef57600080fd5b506103166104fe3660046138cd565b6111ed565b34801561050f57600080fd5b506103b6600c5481565b34801561052557600080fd5b50600b546105469073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610397565b34801561057757600080fd5b50600b5461059e9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610397565b3480156105bd57600080fd5b506103b66105cc366004613a18565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561060c57600080fd5b5060075460ff16610444565b34801561062457600080fd5b506103166106333660046137db565b611299565b34801561064457600080fd5b506103b660095481565b34801561031657600080fd5b34801561066657600080fd5b5061067a610675366004613888565b61138c565b6040516103979190613b09565b34801561069357600080fd5b50610316611426565b3480156106a857600080fd5b506103b6600a5481565b3480156106be57600080fd5b506103166106cd366004613b3e565b611436565b3480156106de57600080fd5b506103b66106ed366004613b5b565b600360209081526000928352604080842090915290825290205481565b34801561071657600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff16610546565b34801561074157600080fd5b5061031661075036600461386f565b61157e565b34801561076157600080fd5b506005546105469073ffffffffffffffffffffffffffffffffffffffff1681565b34801561078e57600080fd5b5061044461079d36600461386f565b600f6020526000908152604090205460ff1681565b3480156107be57600080fd5b5061067a6107cd366004613888565b6115c7565b3480156107de57600080fd5b506103166107ed3660046138cd565b6116d6565b3480156107fe57600080fd5b506105467f000000000000000000000000000000000000000000000000000000000000000081565b34801561083257600080fd5b50610316610841366004613b3e565b61175f565b34801561085257600080fd5b506103b661271081565b34801561086857600080fd5b50610316610877366004613888565b6117e0565b34801561088857600080fd5b50610316610897366004613b8e565b611882565b6103166108aa3660046137db565b61193d565b3480156108bb57600080fd5b506103166108ca366004613bfd565b611a19565b3480156108db57600080fd5b506103166108ea3660046138cd565b611a83565b3480156108fb57600080fd5b5061031661090a366004613c5d565b611add565b34801561091b57600080fd5b5061054661092a36600461386f565b600e6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561095e57600080fd5b5061031661096d366004613b3e565b611cf4565b34801561097e57600080fd5b5061031661098d366004613d06565b611d91565b34801561099e57600080fd5b5061067a6109ad366004613d3f565b611f2f565b3480156109be57600080fd5b506103166109cd36600461386f565b612006565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a5c5760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526002602052604081208054610a7a90613d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa690613d8c565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b50505050509050805186869050148015610b0e575060008151115b8015610b36575080516020820120604051610b2c9088908890613dd9565b6040518091039020145b610ba85760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610a53565b610c1e8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506122bf92505050565b50505050505050565b610c2f6124b9565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307e0db17906024015b600060405180830381600087803b158015610cbb57600080fd5b505af1158015610ccf573d6000803e3d6000fd5b5050505050565b610cde6124b9565b61ffff909116600090815260046020526040902055565b610cfd6124b9565b6040517f10ddb13700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906310ddb13790602401610ca1565b61ffff831660009081526002602052604081208054829190610d9490613d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc090613d8c565b8015610e0d5780601f10610de257610100808354040283529160200191610e0d565b820191906000526020600020905b815481529060010190602001808311610df057829003601f168201915b505050505090508383604051610e24929190613dd9565b60405180910390208180519060200120149150505b9392505050565b6000818152600d60205260408120600681015460ff1615610e645750600092915050565b6006810154610100900460ff1615610e7f5750600292915050565b6000838152600f602052604090205460ff1615610e9f5750600192915050565b6040517f0992f7ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b610edf6124b9565b610ee7612520565b565b6001610ef482610e40565b6002811115610f0557610f05613920565b14610f9e5760405162461bcd60e51b815260206004820152604f60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e60448201527f63656c3a2070726f706f73616c2073686f756c6420626520717565756564206160648201527f6e64206e6f742065786563757465640000000000000000000000000000000000608482015260a401610a53565b6000818152600d60205260409020600b5473ffffffffffffffffffffffffffffffffffffffff1633146110395760405162461bcd60e51b815260206004820152603c60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e60448201527f63656c3a2073656e646572206d75737420626520677561726469616e000000006064820152608401610a53565b60068101805460ff19166001908117918290556201000090910460ff166000908152600e602052604080822054928401546002850154915173ffffffffffffffffffffffffffffffffffffffff90941693909286917f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c9190a260005b818110156111d0578373ffffffffffffffffffffffffffffffffffffffff1663591fcdfe8660020183815481106110ee576110ee613de9565b60009182526020909120015460038801805473ffffffffffffffffffffffffffffffffffffffff909216918590811061112957611129613de9565b906000526020600020015488600401858154811061114957611149613de9565b9060005260206000200189600501868154811061116857611168613de9565b90600052602060002001886040518663ffffffff1660e01b8152600401611193959493929190613e95565b600060405180830381600087803b1580156111ad57600080fd5b505af11580156111c1573d6000803e3d6000fd5b505050508060010190506110b5565b50505060009283525050600f60205260409020805460ff19169055565b6111f56124b9565b6040517f42d65a8d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061126b90869086908690600401613f1a565b600060405180830381600087803b15801561128557600080fd5b505af1158015610c1e573d6000803e3d6000fd5b33301461130e5760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560448201527f204c7a41707000000000000000000000000000000000000000000000000000006064820152608401610a53565b6113848686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061257f92505050565b505050505050565b600260205260009081526040902080546113a590613d8c565b80601f01602080910402602001604051908101604052809291908181526020018280546113d190613d8c565b801561141e5780601f106113f35761010080835404028352916020019161141e565b820191906000526020600020905b81548152906001019060200180831161140157829003601f168201915b505050505081565b61142e6124b9565b610ee76129b1565b600b5473ffffffffffffffffffffffffffffffffffffffff16331480611473575060015473ffffffffffffffffffffffffffffffffffffffff1633145b6114e7576040805162461bcd60e51b81526020600482015260248101919091527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657460448201527f477561726469616e3a206f776e6572206f7220677561726469616e206f6e6c796064820152608401610a53565b6114f0816129ee565b600b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e390600090a3600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6115866124b9565b60085460408051918252602082018390527f0a653bb1a57e62cfd43f0dc557c7223e8b58896238b5f9b300ef646d37b82d1b910160405180910390a1600855565b61ffff81166000908152600260205260408120805460609291906115ea90613d8c565b80601f016020809104026020016040519081016040528092919081815260200182805461161690613d8c565b80156116635780601f1061163857610100808354040283529160200191611663565b820191906000526020600020905b81548152906001019060200180831161164657829003601f168201915b5050505050905080516000036116bb5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606401610a53565b610e396000601483516116ce9190613f67565b839190612a3b565b6116de6124b9565b8181306040516020016116f393929190613f80565b60408051601f1981840301815291815261ffff851660009081526002602052209061171e9082614001565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161175293929190613f1a565b60405180910390a1505050565b6117676124b9565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b6117e86124b9565b600b5460405161ffff8084169274010000000000000000000000000000000000000000900416907fb17c58d5977290696b6eea77c81c725f3dc83e426252bd9ece6287c1b8d0e96890600090a3600b805461ffff90921674010000000000000000000000000000000000000000027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b61188a6124b9565b6040517fcbed8b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c9061190490889088908890889088906004016140fd565b600060405180830381600087803b15801561191e57600080fd5b505af1158015611932573d6000803e3d6000fd5b505050505050505050565b6119456124b9565b61194d612b63565b848460405161195d929190613dd9565b6040805191829003822061ffff891660009081526002602052919091209091611986919061412b565b604051809103902014611a015760405162461bcd60e51b815260206004820152603f60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a72657460448201527f72794d6573736167653a206e6f74206120747275737465642072656d6f7465006064820152608401610a53565b611a0f868686868686612bbc565b6113846001600055565b611a216124b9565b61ffff83811660008181526003602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611752565b611a8b6124b9565b61ffff83166000908152600260205260409020611aa98284836141a1565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161175293929190613f1a565b611ae56124b9565b6000611af36002600161429d565b90508060ff16825114611bba5760405162461bcd60e51b815260206004820152606a60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a61646460448201527f54696d656c6f636b733a6e756d626572206f662074696d656c6f636b7320736860648201527f6f756c64206d6174636820746865206e756d626572206f6620676f7665726e6160848201527f6e636520726f757465730000000000000000000000000000000000000000000060a482015260c401610a53565b60005b8160ff168160ff161015611cef57611bf0838260ff1681518110611be357611be3613de9565b60200260200101516129ee565b828160ff1681518110611c0557611c05613de9565b60209081029190910181015160ff83166000818152600e845260409081902054905191825273ffffffffffffffffffffffffffffffffffffffff928316939216917ffc45ae51ac4893a3f843d030fbfd4037c0c196109c9e667645b8f144c83c16ea910160405180910390a3828160ff1681518110611c8657611c86613de9565b60209081029190910181015160ff83166000908152600e909252604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055600101611bbd565b505050565b611cfc6124b9565b73ffffffffffffffffffffffffffffffffffffffff8116611d855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a53565b611d8e81612e0a565b50565b611d996124b9565b6000611da76002600161429d565b90508060ff168260ff1610611e4a5760405162461bcd60e51b815260206004820152604b60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657460448201527f54696d656c6f636b50656e64696e6741646d696e3a20696e76616c696420707260648201527f6f706f73616c2074797065000000000000000000000000000000000000000000608482015260a401610a53565b60ff82166000908152600e6020526040908190205490517f4dd18bf500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911690634dd18bf590602401600060405180830381600087803b158015611ec857600080fd5b505af1158015611edc573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8716815260ff861660208201527f6ac0b2c896b49975f12891f83c573bdf05490fe6b707cbaa2ba84c36094cbaec9350019050611752565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808616600483015284166024820152306044820152606481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5ecbdbc90608401600060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffd9190810190614306565b95945050505050565b61200e612b63565b600161201982610e40565b600281111561202a5761202a613920565b146120c35760405162461bcd60e51b815260206004820152605360248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a65786560448201527f637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637560648201527f7465642069662069742069732071756575656400000000000000000000000000608482015260a401610a53565b6000818152600d602090815260408083206006810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179081905562010000900460ff168452600e90925280832054600183015460028401549251939473ffffffffffffffffffffffffffffffffffffffff9092169390929186917f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9190a260005b81811015612299578373ffffffffffffffffffffffffffffffffffffffff16630825f38f8660020183815481106121a4576121a4613de9565b60009182526020909120015460038801805473ffffffffffffffffffffffffffffffffffffffff90921691859081106121df576121df613de9565b90600052602060002001548860040185815481106121ff576121ff613de9565b9060005260206000200189600501868154811061221e5761221e613de9565b90600052602060002001886040518663ffffffff1660e01b8152600401612249959493929190613e95565b6000604051808303816000875af1158015612268573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122909190810190614306565b5060010161216b565b5050506000838152600f60205260409020805460ff1916905550611d8e90506001600055565b600b5461ffff85811674010000000000000000000000000000000000000000909204161461237b5760405162461bcd60e51b815260206004820152604860248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f626c60448201527f6f636b696e674c7a526563656976653a20696e76616c696420736f757263652060648201527f636861696e206964000000000000000000000000000000000000000000000000608482015260a401610a53565b8051602082012060405160009030906366ad5c8a906123a4908990899089908990602401614343565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806124066175305a6123fc9190613f67565b3090609686612e81565b91509150816124af5761ffff8816600090815260066020526040908190209051859190612434908a90614382565b90815260408051918290036020908101832067ffffffffffffffff8b16600090815291522091909155612468908890614382565b60405180910390208861ffff167f41d73ce7be31a588d59fe9013cdcfe583bc0aab25093d042b64cade0df73065688846040516124a692919061439e565b60405180910390a35b5050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610ee75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a53565b612528612f0c565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b612587612f5e565b6000808280602001905181019061259e91906143c1565b915091506000806000806000868060200190518101906125be9190614592565b60008b8152600d602052604090205494995092975090955093509150156126735760405162461bcd60e51b815260206004820152604660248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a206475706c696361746520707260648201527f6f706f73616c0000000000000000000000000000000000000000000000000000608482015260a401610a53565b83518551148015612685575082518551145b8015612692575081518551145b61272a5760405162461bcd60e51b815260206004820152606060248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a2070726f706f73616c2066756e60648201527f6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368608482015260a401610a53565b6127366002600161429d565b60ff168160ff16106127d65760405162461bcd60e51b815260206004820152604960248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a20696e76616c69642070726f7060648201527f6f73616c20747970650000000000000000000000000000000000000000000000608482015260a401610a53565b6127e08551612fb1565b6040805161012081018252878152600060208083018281528385018a8152606085018a90526080850189905260a0850188905260c0850184905260e0850184905260ff87166101008601528b8452600d835294909220835181559151600183015592518051929384936128599260028501920190613571565b50606082015180516128759160038401916020909101906135fb565b5060808201518051612891916004840191602090910190613636565b5060a082015180516128ad916005840191602090910190613688565b5060c08201516006909101805460e08401516101009485015160ff1662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff9115159095027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909216919091179290921791909116919091179055600c87905580516040517fc37d19c9a6a9a568b5071658f9b5082ff8f142df3cf090385c5621ab1193806590612992908990899089908990899061470b565b60405180910390a26129a387613041565b505050505050505050505050565b6129b9612f5e565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125553390565b73ffffffffffffffffffffffffffffffffffffffff8116611d8e576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081612a4981601f6147d5565b1015612a975760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610a53565b612aa182846147d5565b84511015612af15760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610a53565b606082158015612b105760405191506000825260208201604052612b5a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612b49578051835260209283019201612b31565b5050858452601f01601f1916604052505b50949350505050565b600260005403612bb55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a53565b6002600055565b61ffff86166000908152600660205260408082209051612bdf9088908890613dd9565b908152604080516020928190038301902067ffffffffffffffff871660009081529252902054905080612c7a5760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201527f61676500000000000000000000000000000000000000000000000000000000006064820152608401610a53565b808383604051612c8b929190613dd9565b604051809103902014612d065760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a53565b61ffff87166000908152600660205260408082209051612d299089908990613dd9565b908152604080516020928190038301812067ffffffffffffffff8916600090815290845282902093909355601f88018290048202830182019052868252612dc2918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061257f92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051612df99594939291906147e8565b60405180910390a150505050505050565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000606060008060008661ffff1667ffffffffffffffff811115612ea757612ea7613990565b6040519080825280601f01601f191660200182016040528015612ed1576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612ef3578692505b828152826000602083013e909890975095505050505050565b60075460ff16610ee75760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a53565b60075460ff1615610ee75760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a53565b600954600a544291906201518090612fc99084613f67565b1115612fdb5750600a81905581612fe8565b612fe583826147d5565b90505b60085481111561303a5760405162461bcd60e51b815260206004820181905260248201527f4461696c79205472616e73616374696f6e204c696d69742045786365656465646044820152606401610a53565b6009555050565b6000818152600d60209081526040808320600681015462010000900460ff168452600e83528184205482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949373ffffffffffffffffffffffffffffffffffffffff90911692636a42b8f892600480830193928290030181865afa1580156130d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f79190614824565b61310190426147d5565b60018084018290556000858152600f602052604090819020805460ff191690921790915560068401546002850154915192935062010000900460ff169185907f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28929061316f9086815260200190565b60405180910390a260005b818110156113845761333785600201828154811061319a5761319a613de9565b60009182526020909120015460038701805473ffffffffffffffffffffffffffffffffffffffff90921691849081106131d5576131d5613de9565b90600052602060002001548760040184815481106131f5576131f5613de9565b90600052602060002001805461320a90613d8c565b80601f016020809104026020016040519081016040528092919081815260200182805461323690613d8c565b80156132835780601f1061325857610100808354040283529160200191613283565b820191906000526020600020905b81548152906001019060200180831161326657829003601f168201915b505050505088600501858154811061329d5761329d613de9565b9060005260206000200180546132b290613d8c565b80601f01602080910402602001604051908101604052809291908181526020018280546132de90613d8c565b801561332b5780601f106133005761010080835404028352916020019161332b565b820191906000526020600020905b81548152906001019060200180831161330e57829003601f168201915b5050505050888861333f565b60010161317a565b60ff81166000908152600e602090815260409182902054915173ffffffffffffffffffffffffffffffffffffffff9092169163f2b065379161338b918a918a918a918a918a910161483d565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016133bf91815260200190565b602060405180830381865afa1580156133dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134009190614884565b156134bf5760405162461bcd60e51b815260206004820152606360248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a71756560448201527f75654f72526576657274496e7465726e616c3a206964656e746963616c20707260648201527f6f706f73616c20616374696f6e20616c7265616479207175657565642061742060848201527f657461000000000000000000000000000000000000000000000000000000000060a482015260c401610a53565b60ff81166000908152600e6020526040908190205490517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f9019061352e908990899089908990899060040161483d565b6020604051808303816000875af115801561354d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e9190614824565b8280548282559060005260206000209081019282156135eb579160200282015b828111156135eb57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190613591565b506135f79291506136da565b5090565b8280548282559060005260206000209081019282156135eb579160200282015b828111156135eb57825182559160200191906001019061361b565b82805482825590600052602060002090810192821561367c579160200282015b8281111561367c578251829061366c9082614001565b5091602001919060010190613656565b506135f79291506136ef565b8280548282559060005260206000209081019282156136ce579160200282015b828111156136ce57825182906136be9082614001565b50916020019190600101906136a8565b506135f792915061370c565b5b808211156135f757600081556001016136db565b808211156135f75760006137038282613729565b506001016136ef565b808211156135f75760006137208282613729565b5060010161370c565b50805461373590613d8c565b6000825580601f10613745575050565b601f016020900490600052602060002090810190611d8e91906136da565b803561ffff8116811461377557600080fd5b919050565b60008083601f84011261378c57600080fd5b50813567ffffffffffffffff8111156137a457600080fd5b6020830191508360208285010111156137bc57600080fd5b9250929050565b803567ffffffffffffffff8116811461377557600080fd5b600080600080600080608087890312156137f457600080fd5b6137fd87613763565b9550602087013567ffffffffffffffff8082111561381a57600080fd5b6138268a838b0161377a565b909750955085915061383a60408a016137c3565b9450606089013591508082111561385057600080fd5b5061385d89828a0161377a565b979a9699509497509295939492505050565b60006020828403121561388157600080fd5b5035919050565b60006020828403121561389a57600080fd5b610e3982613763565b600080604083850312156138b657600080fd5b6138bf83613763565b946020939093013593505050565b6000806000604084860312156138e257600080fd5b6138eb84613763565b9250602084013567ffffffffffffffff81111561390757600080fd5b6139138682870161377a565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061398a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139e8576139e8613990565b604052919050565b600067ffffffffffffffff821115613a0a57613a0a613990565b50601f01601f191660200190565b600080600060608486031215613a2d57600080fd5b613a3684613763565b9250602084013567ffffffffffffffff811115613a5257600080fd5b8401601f81018613613a6357600080fd5b8035613a76613a71826139f0565b6139bf565b818152876020838501011115613a8b57600080fd5b81602084016020830137600060208383010152809450505050613ab0604085016137c3565b90509250925092565b60005b83811015613ad4578181015183820152602001613abc565b50506000910152565b60008151808452613af5816020860160208601613ab9565b601f01601f19169290920160200192915050565b602081526000610e396020830184613add565b73ffffffffffffffffffffffffffffffffffffffff81168114611d8e57600080fd5b600060208284031215613b5057600080fd5b8135610e3981613b1c565b60008060408385031215613b6e57600080fd5b613b7783613763565b9150613b8560208401613763565b90509250929050565b600080600080600060808688031215613ba657600080fd5b613baf86613763565b9450613bbd60208701613763565b935060408601359250606086013567ffffffffffffffff811115613be057600080fd5b613bec8882890161377a565b969995985093965092949392505050565b600080600060608486031215613c1257600080fd5b613c1b84613763565b9250613c2960208501613763565b9150604084013590509250925092565b600067ffffffffffffffff821115613c5357613c53613990565b5060051b60200190565b60006020808385031215613c7057600080fd5b823567ffffffffffffffff811115613c8757600080fd5b8301601f81018513613c9857600080fd5b8035613ca6613a7182613c39565b81815260059190911b82018301908381019087831115613cc557600080fd5b928401925b82841015613cec578335613cdd81613b1c565b82529284019290840190613cca565b979650505050505050565b60ff81168114611d8e57600080fd5b60008060408385031215613d1957600080fd5b8235613d2481613b1c565b91506020830135613d3481613cf7565b809150509250929050565b60008060008060808587031215613d5557600080fd5b613d5e85613763565b9350613d6c60208601613763565b92506040850135613d7c81613b1c565b9396929550929360600135925050565b600181811c90821680613da057607f821691505b602082108103610ed1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008154613e2581613d8c565b808552602060018381168015613e425760018114613e5c57613e8a565b60ff198516838901528284151560051b8901019550613e8a565b866000528260002060005b85811015613e825781548a8201860152908301908401613e67565b890184019650505b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000613eca60a0830186613e18565b8281036060840152613edc8186613e18565b9150508260808301529695505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff84168152604060208201526000611ffd604083018486613eef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115613f7a57613f7a613f38565b92915050565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b601f821115611cef576000816000526020600020601f850160051c81016020861015613fe25750805b601f850160051c820191505b8181101561138457828155600101613fee565b815167ffffffffffffffff81111561401b5761401b613990565b61402f816140298454613d8c565b84613fb9565b602080601f831160018114614082576000841561404c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611384565b600085815260208120601f198616915b828110156140b157888601518255948401946001909101908401614092565b50858210156140ed57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600061ffff808816835280871660208401525084604083015260806060830152613cec608083018486613eef565b600080835461413981613d8c565b60018281168015614151576001811461416657614195565b60ff1984168752821515830287019450614195565b8760005260208060002060005b8581101561418c5781548a820152908401908201614173565b50505082870194505b50929695505050505050565b67ffffffffffffffff8311156141b9576141b9613990565b6141cd836141c78354613d8c565b83613fb9565b6000601f84116001811461421f57600085156141e95750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610ccf565b600083815260209020601f19861690835b828110156142505786850135825560209485019460019092019101614230565b508682101561428b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8181168382160190811115613f7a57613f7a613f38565b60006142c4613a71846139f0565b90508281528383830111156142d857600080fd5b610e39836020830184613ab9565b600082601f8301126142f757600080fd5b610e39838351602085016142b6565b60006020828403121561431857600080fd5b815167ffffffffffffffff81111561432f57600080fd5b61433b848285016142e6565b949350505050565b61ffff851681526080602082015260006143606080830186613add565b67ffffffffffffffff851660408401528281036060840152613cec8185613add565b60008251614394818460208701613ab9565b9190910192915050565b67ffffffffffffffff8316815260406020820152600061433b6040830184613add565b600080604083850312156143d457600080fd5b825167ffffffffffffffff8111156143eb57600080fd5b6143f7858286016142e6565b925050602083015190509250929050565b600082601f83011261441957600080fd5b81516020614429613a7183613c39565b8083825260208201915060208460051b87010193508684111561444b57600080fd5b602086015b848110156144675780518352918301918301614450565b509695505050505050565b600082601f83011261448357600080fd5b81516020614493613a7183613c39565b82815260059290921b840181019181810190868411156144b257600080fd5b8286015b8481101561446757805167ffffffffffffffff8111156144d65760008081fd5b8701603f810189136144e85760008081fd5b6144f98986830151604084016142b6565b8452509183019183016144b6565b600082601f83011261451857600080fd5b81516020614528613a7183613c39565b82815260059290921b8401810191818101908684111561454757600080fd5b8286015b8481101561446757805167ffffffffffffffff81111561456b5760008081fd5b6145798986838b01016142e6565b84525091830191830161454b565b805161377581613cf7565b600080600080600060a086880312156145aa57600080fd5b855167ffffffffffffffff808211156145c257600080fd5b818801915088601f8301126145d657600080fd5b815160206145e6613a7183613c39565b82815260059290921b8401810191818101908c84111561460557600080fd5b948201945b8386101561462c57855161461d81613b1c565b8252948201949082019061460a565b918b015191995090935050508082111561464557600080fd5b61465189838a01614408565b9550604088015191508082111561466757600080fd5b61467389838a01614472565b9450606088015191508082111561468957600080fd5b5061469688828901614507565b9250506146a560808701614587565b90509295509295909350565b60008282518085526020808601955060208260051b8401016020860160005b848110156146fe57601f198684030189526146ec838351613add565b988401989250908301906001016146d0565b5090979650505050505050565b60a0808252865190820181905260009060209060c0840190828a01845b8281101561475a57815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101614728565b5050508381038285015287518082528883019183019060005b8181101561478f57835183529284019291840191600101614773565b505084810360408601526147a381896146b1565b9250505082810360608401526147b981866146b1565b9150506147cb608083018460ff169052565b9695505050505050565b80820180821115613f7a57613f7a613f38565b61ffff86168152608060208201526000614806608083018688613eef565b67ffffffffffffffff94909416604083015250606001529392505050565b60006020828403121561483657600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a06040820152600061487260a0830186613add565b8281036060840152613edc8186613add565b60006020828403121561489657600080fd5b81518015158114610e3957600080fdfea26469706673582212206e9b4e0e8423ddd67a12f6b1a136938a978661714c282ede340b91a73060ecf464736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4AA5 CODESIZE SUB DUP1 PUSH2 0x4AA5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE DUP3 DUP1 DUP1 PUSH2 0x40 CALLER PUSH2 0x9E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE POP PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x60 DUP2 PUSH2 0xF0 JUMP JUMPDEST POP PUSH2 0x6A DUP3 PUSH2 0xF0 JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR OR SWAP1 SSTORE POP PUSH2 0x184 JUMP JUMPDEST PUSH1 0x1 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 0x117 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 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x14B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x154 DUP5 PUSH2 0x11A JUMP JUMPDEST SWAP3 POP PUSH2 0x162 PUSH1 0x20 DUP6 ADD PUSH2 0x11A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x48DC PUSH2 0x1C9 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x804 ADD MSTORE DUP2 DUP2 PUSH2 0x9D5 ADD MSTORE DUP2 DUP2 PUSH2 0xC61 ADD MSTORE DUP2 DUP2 PUSH2 0xD2F ADD MSTORE DUP2 DUP2 PUSH2 0x1232 ADD MSTORE DUP2 DUP2 PUSH2 0x18C7 ADD MSTORE PUSH2 0x1F79 ADD MSTORE PUSH2 0x48DC PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2F1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x876919E8 GT PUSH2 0x18F JUMPI DUP1 PUSH4 0xC4461834 GT PUSH2 0xE1 JUMPI DUP1 PUSH4 0xED66039B GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xF4FCFCCA GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF4FCFCCA EQ PUSH2 0x972 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x992 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xED66039B EQ PUSH2 0x8EF JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x90F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD1DEBA1F GT PUSH2 0xBB JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x89C JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x8AF JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4461834 EQ PUSH2 0x846 JUMPI DUP1 PUSH4 0xC8B42E5B EQ PUSH2 0x85C JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0x143 JUMPI DUP1 PUSH4 0xA6C3D165 GT PUSH2 0x11D JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x7F2 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x755 JUMPI DUP1 PUSH4 0x9F0C3101 EQ PUSH2 0x782 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8CFD8F5C GT PUSH2 0x174 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x6D2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0x9493FFAD EQ PUSH2 0x735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x876919E8 EQ PUSH2 0x69C JUMPI DUP1 PUSH4 0x8A0DAC4A EQ PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x248 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x1FC JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x64E JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x600 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x618 JUMPI DUP1 PUSH4 0x70F6AD9A EQ PUSH2 0x638 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x452A9320 GT PUSH2 0x22D JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x49D12605 EQ PUSH2 0x56B JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0x4406BAAF EQ PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x2AA JUMPI DUP1 PUSH4 0x3F1F4FA4 GT PUSH2 0x284 JUMPI DUP1 PUSH4 0x3F1F4FA4 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x454 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x435BB56 GT PUSH2 0x2DB JUMPI DUP1 PUSH4 0x435BB56 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0xDF37483 EQ PUSH2 0x3E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0x318 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x9D2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36A PUSH2 0x333 CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x6 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 DUP2 DIV DUP3 AND SWAP2 PUSH3 0x10000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x3DF CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0xC27 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x38A3 JUMP JUMPDEST PUSH2 0xCD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0xCF5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0x43F CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0xD73 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x474 PUSH2 0x46F CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x397 SWAP2 SWAP1 PUSH2 0x394F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x49C CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0xED7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0xEE9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x11ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x546 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x59E SWAP1 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x3A18 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 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x444 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x633 CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x1299 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x644 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x675 CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x138C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x397 SWAP2 SWAP1 PUSH2 0x3B09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x1426 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x6CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x1436 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x6ED CALLDATASIZE PUSH1 0x4 PUSH2 0x3B5B JUMP JUMPDEST PUSH1 0x3 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 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x546 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x750 CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0x157E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH2 0x546 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0x79D CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x15C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x7ED CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x16D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x546 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x832 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x841 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x175F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x2710 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x877 CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x17E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x897 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B8E JUMP JUMPDEST PUSH2 0x1882 JUMP JUMPDEST PUSH2 0x316 PUSH2 0x8AA CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x193D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x8CA CALLDATASIZE PUSH1 0x4 PUSH2 0x3BFD JUMP JUMPDEST PUSH2 0x1A19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x8EA CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x1A83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x90A CALLDATASIZE PUSH1 0x4 PUSH2 0x3C5D JUMP JUMPDEST PUSH2 0x1ADD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x546 PUSH2 0x92A CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x96D CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x1CF4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x98D CALLDATASIZE PUSH1 0x4 PUSH2 0x3D06 JUMP JUMPDEST PUSH2 0x1D91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x9AD CALLDATASIZE PUSH1 0x4 PUSH2 0x3D3F JUMP JUMPDEST PUSH2 0x1F2F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x9CD CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0x2006 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xA5C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xA7A SWAP1 PUSH2 0x3D8C 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 0xAA6 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAF3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAC8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAF3 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 0xAD6 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 0xB0E JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0xB36 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xB2C SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xC1E 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 0x22BF SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC2F PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7E0DB1700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCCF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xCDE PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xCFD PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x10DDB13700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0xCA1 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xD94 SWAP1 PUSH2 0x3D8C 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 0xDC0 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE0D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDE2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE0D 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 0xDF0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE24 SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 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 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE64 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE7F JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE9F JUMPI POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x992F7AD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEDF PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x2520 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH2 0xEF4 DUP3 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF05 JUMPI PUSH2 0xF05 PUSH2 0x3920 JUMP JUMPDEST EQ PUSH2 0xF9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A63616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656C3A2070726F706F73616C2073686F756C64206265207175657565642061 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6E64206E6F742065786563757465640000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1039 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A63616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656C3A2073656E646572206D75737420626520677561726469616E00000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP3 DUP7 SWAP2 PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C SWAP2 SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x11D0 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x591FCDFE DUP7 PUSH1 0x2 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x10EE JUMPI PUSH2 0x10EE PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP9 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0x1129 JUMPI PUSH2 0x1129 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP9 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1149 JUMPI PUSH2 0x1149 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP10 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1168 JUMPI PUSH2 0x1168 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1193 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E95 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x10B5 JUMP JUMPDEST POP POP POP PUSH1 0x0 SWAP3 DUP4 MSTORE POP POP PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x11F5 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42D65A8D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0x126B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3F1A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0x130E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x204C7A4170700000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1384 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 0x257F SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x13A5 SWAP1 PUSH2 0x3D8C 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 0x13D1 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x141E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x13F3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x141E 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 0x1401 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x142E PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ DUP1 PUSH2 0x1473 JUMPI POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0x14E7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A736574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x477561726469616E3A206F776E6572206F7220677561726469616E206F6E6C79 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x14F0 DUP2 PUSH2 0x29EE JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1586 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xA653BB1A57E62CFD43F0DC557C7223E8B58896238B5F9B300EF646D37B82D1B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x8 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x15EA SWAP1 PUSH2 0x3D8C 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 0x1616 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1663 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1638 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1663 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 0x1646 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xE39 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x16CE SWAP2 SWAP1 PUSH2 0x3F67 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x16DE PUSH2 0x24B9 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16F3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F80 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 0x2 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x171E SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1752 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1767 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x17E8 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP1 DUP5 AND SWAP3 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV AND SWAP1 PUSH32 0xB17C58D5977290696B6EEA77C81C725F3DC83E426252BD9ECE6287C1B8D0E968 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x188A PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCBED8B9C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1904 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x40FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x191E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1932 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1945 PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0x194D PUSH2 0x2B63 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x195D SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 PUSH2 0x1986 SWAP2 SWAP1 PUSH2 0x412B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1A01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A726574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72794D6573736167653A206E6F74206120747275737465642072656D6F746500 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1A0F DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2BBC JUMP JUMPDEST PUSH2 0x1384 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1A21 PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1752 JUMP JUMPDEST PUSH2 0x1A8B PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1AA9 DUP3 DUP5 DUP4 PUSH2 0x41A1 JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1752 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F1A JUMP JUMPDEST PUSH2 0x1AE5 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF3 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP3 MLOAD EQ PUSH2 0x1BBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B733A6E756D626572206F662074696D656C6F636B73207368 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F756C64206D6174636820746865206E756D626572206F6620676F7665726E61 PUSH1 0x84 DUP3 ADD MSTORE PUSH32 0x6E636520726F7574657300000000000000000000000000000000000000000000 PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 PUSH1 0xFF AND DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1CEF JUMPI PUSH2 0x1BF0 DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1BE3 JUMPI PUSH2 0x1BE3 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x29EE JUMP JUMPDEST DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1C05 JUMPI PUSH2 0x1C05 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0xFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE DUP5 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0xFC45AE51AC4893A3F843D030FBFD4037C0C196109C9E667645B8F144C83C16EA SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1C86 JUMPI PUSH2 0x1C86 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0xFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1BBD JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1CFC PUSH2 0x24B9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1D85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1D8E DUP2 PUSH2 0x2E0A JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D99 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA7 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP3 PUSH1 0xFF AND LT PUSH2 0x1E4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A736574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B50656E64696E6741646D696E3A20696E76616C6964207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C2074797065000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x4DD18BF500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x4DD18BF5 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND DUP2 MSTORE PUSH1 0xFF DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6AC0B2C896B49975F12891F83C573BDF05490FE6B707CBAA2BA84C36094CBAEC SWAP4 POP ADD SWAP1 POP PUSH2 0x1752 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF5ECBDBC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FD5 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 0x1FFD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4306 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x200E PUSH2 0x2B63 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x2019 DUP3 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x202A JUMPI PUSH2 0x202A PUSH2 0x3920 JUMP JUMPDEST EQ PUSH2 0x20C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x53 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A657865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x637574653A2070726F706F73616C2063616E206F6E6C79206265206578656375 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x7465642069662069742069732071756575656400000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 DUP2 SWAP1 SSTORE PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 DUP5 ADD SLOAD SWAP3 MLOAD SWAP4 SWAP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP4 SWAP1 SWAP3 SWAP2 DUP7 SWAP2 PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2299 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x825F38F DUP7 PUSH1 0x2 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x21A4 JUMPI PUSH2 0x21A4 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP9 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0x21DF JUMPI PUSH2 0x21DF PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP9 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x21FF JUMPI PUSH2 0x21FF PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP10 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x221E JUMPI PUSH2 0x221E PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2249 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E95 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2268 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 0x2290 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4306 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x216B JUMP JUMPDEST POP POP POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP PUSH2 0x1D8E SWAP1 POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD PUSH2 0xFFFF DUP6 DUP2 AND PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP3 DIV AND EQ PUSH2 0x237B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x48 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F626C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F636B696E674C7A526563656976653A20696E76616C696420736F7572636520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x636861696E206964000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 ADDRESS SWAP1 PUSH4 0x66AD5C8A SWAP1 PUSH2 0x23A4 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH2 0x4343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2406 PUSH2 0x7530 GAS PUSH2 0x23FC SWAP2 SWAP1 PUSH2 0x3F67 JUMP JUMPDEST ADDRESS SWAP1 PUSH1 0x96 DUP7 PUSH2 0x2E81 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x24AF JUMPI PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD DUP6 SWAP2 SWAP1 PUSH2 0x2434 SWAP1 DUP11 SWAP1 PUSH2 0x4382 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x2468 SWAP1 DUP9 SWAP1 PUSH2 0x4382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP9 PUSH2 0xFFFF AND PUSH32 0x41D73CE7BE31A588D59FE9013CDCFE583BC0AAB25093D042B64CADE0DF730656 DUP9 DUP5 PUSH1 0x40 MLOAD PUSH2 0x24A6 SWAP3 SWAP2 SWAP1 PUSH2 0x439E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2528 PUSH2 0x2F0C JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2587 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x259E SWAP2 SWAP1 PUSH2 0x43C1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x25BE SWAP2 SWAP1 PUSH2 0x4592 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP SWAP2 POP ISZERO PUSH2 0x2673 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x46 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A206475706C6963617465207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C0000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST DUP4 MLOAD DUP6 MLOAD EQ DUP1 ISZERO PUSH2 0x2685 JUMPI POP DUP3 MLOAD DUP6 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x2692 JUMPI POP DUP2 MLOAD DUP6 MLOAD EQ JUMPDEST PUSH2 0x272A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A2070726F706F73616C2066756E PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6374696F6E20696E666F726D6174696F6E206172697479206D69736D61746368 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2736 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST PUSH1 0xFF AND DUP2 PUSH1 0xFF AND LT PUSH2 0x27D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A20696E76616C69642070726F70 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F73616C20747970650000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x27E0 DUP6 MLOAD PUSH2 0x2FB1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE DUP8 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 DUP2 MSTORE DUP4 DUP6 ADD DUP11 DUP2 MSTORE PUSH1 0x60 DUP6 ADD DUP11 SWAP1 MSTORE PUSH1 0x80 DUP6 ADD DUP10 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD DUP9 SWAP1 MSTORE PUSH1 0xC0 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0xE0 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0xFF DUP8 AND PUSH2 0x100 DUP7 ADD MSTORE DUP12 DUP5 MSTORE PUSH1 0xD DUP4 MSTORE SWAP5 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP2 MLOAD PUSH1 0x1 DUP4 ADD SSTORE SWAP3 MLOAD DUP1 MLOAD SWAP3 SWAP4 DUP5 SWAP4 PUSH2 0x2859 SWAP3 PUSH1 0x2 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x3571 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x2875 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x35FB JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x2891 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3636 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x28AD SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3688 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xE0 DUP5 ADD MLOAD PUSH2 0x100 SWAP5 DUP6 ADD MLOAD PUSH1 0xFF AND PUSH3 0x10000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF SWAP2 ISZERO ISZERO SWAP1 SWAP6 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF SWAP5 ISZERO ISZERO SWAP5 SWAP1 SWAP5 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0xC DUP8 SWAP1 SSTORE DUP1 MLOAD PUSH1 0x40 MLOAD PUSH32 0xC37D19C9A6A9A568B5071658F9B5082FF8F142DF3CF090385C5621AB11938065 SWAP1 PUSH2 0x2992 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x470B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x29A3 DUP8 PUSH2 0x3041 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x29B9 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2555 CALLER SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1D8E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x2A49 DUP2 PUSH1 0x1F PUSH2 0x47D5 JUMP JUMPDEST LT ISZERO PUSH2 0x2A97 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x736C6963655F6F766572666C6F77000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2AA1 DUP3 DUP5 PUSH2 0x47D5 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x2AF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x736C6963655F6F75744F66426F756E6473000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x2B10 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2B5A 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 0x2B49 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x2B31 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 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0x2BB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2BDF SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x2C7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6167650000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2C8B SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x2D06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2D29 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF 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 0x2DC2 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 0x257F SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DF9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2EA7 JUMPI PUSH2 0x2EA7 PUSH2 0x3990 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 0x2ED1 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 0x2EF3 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 PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD TIMESTAMP SWAP2 SWAP1 PUSH3 0x15180 SWAP1 PUSH2 0x2FC9 SWAP1 DUP5 PUSH2 0x3F67 JUMP JUMPDEST GT ISZERO PUSH2 0x2FDB JUMPI POP PUSH1 0xA DUP2 SWAP1 SSTORE DUP2 PUSH2 0x2FE8 JUMP JUMPDEST PUSH2 0x2FE5 DUP4 DUP3 PUSH2 0x47D5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x8 SLOAD DUP2 GT ISZERO PUSH2 0x303A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565646564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH32 0x6A42B8F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30D3 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 0x30F7 SWAP2 SWAP1 PUSH2 0x4824 JUMP JUMPDEST PUSH2 0x3101 SWAP1 TIMESTAMP PUSH2 0x47D5 JUMP JUMPDEST PUSH1 0x1 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 MLOAD SWAP3 SWAP4 POP PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP2 DUP6 SWAP1 PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x316F SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1384 JUMPI PUSH2 0x3337 DUP6 PUSH1 0x2 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x319A JUMPI PUSH2 0x319A PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP8 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x31D5 JUMPI PUSH2 0x31D5 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP8 PUSH1 0x4 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x31F5 JUMPI PUSH2 0x31F5 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x320A SWAP1 PUSH2 0x3D8C 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 0x3236 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3283 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3258 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3283 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 0x3266 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP9 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x329D JUMPI PUSH2 0x329D PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x32B2 SWAP1 PUSH2 0x3D8C 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 0x32DE SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3300 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332B 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 0x330E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP9 DUP9 PUSH2 0x333F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x317A JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2B06537 SWAP2 PUSH2 0x338B SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 ADD PUSH2 0x483D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33BF SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33DC 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 0x3400 SWAP2 SWAP1 PUSH2 0x4884 JUMP JUMPDEST ISZERO PUSH2 0x34BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x63 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A717565 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x75654F72526576657274496E7465726E616C3A206964656E746963616C207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C20616374696F6E20616C72656164792071756575656420617420 PUSH1 0x84 DUP3 ADD MSTORE PUSH32 0x6574610000000000000000000000000000000000000000000000000000000000 PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x3A66F90100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x352E SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x483D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x354D 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 0xC1E SWAP2 SWAP1 PUSH2 0x4824 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x35EB JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x35EB JUMPI DUP3 MLOAD DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3591 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x36DA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x35EB JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x35EB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x361B JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x367C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x367C JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x366C SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3656 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x36EF JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x36CE JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x36CE JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x36BE SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x36A8 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x370C JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x36DB JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 PUSH2 0x3703 DUP3 DUP3 PUSH2 0x3729 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x36EF JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 PUSH2 0x3720 DUP3 DUP3 PUSH2 0x3729 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x370C JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3735 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3745 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 0x1D8E SWAP2 SWAP1 PUSH2 0x36DA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x3775 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x378C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x37BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3775 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x37F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37FD DUP8 PUSH2 0x3763 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3826 DUP11 DUP4 DUP12 ADD PUSH2 0x377A JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x383A PUSH1 0x40 DUP11 ADD PUSH2 0x37C3 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3850 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x385D DUP10 DUP3 DUP11 ADD PUSH2 0x377A JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x389A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP3 PUSH2 0x3763 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x38B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38BF DUP4 PUSH2 0x3763 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x38E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38EB DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3913 DUP7 DUP3 DUP8 ADD PUSH2 0x377A JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x398A JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x39E8 JUMPI PUSH2 0x39E8 PUSH2 0x3990 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3A0A JUMPI PUSH2 0x3A0A PUSH2 0x3990 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A36 DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x3A63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A76 PUSH2 0x3A71 DUP3 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x39BF JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3A8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x3AB0 PUSH1 0x40 DUP6 ADD PUSH2 0x37C3 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AD4 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3ABC JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3AF5 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3AB9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xE39 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3ADD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE39 DUP2 PUSH2 0x3B1C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B77 DUP4 PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B85 PUSH1 0x20 DUP5 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BAF DUP7 PUSH2 0x3763 JUMP JUMPDEST SWAP5 POP PUSH2 0x3BBD PUSH1 0x20 DUP8 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BEC DUP9 DUP3 DUP10 ADD PUSH2 0x377A JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3C12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C1B DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH2 0x3C29 PUSH1 0x20 DUP6 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3C53 JUMPI PUSH2 0x3C53 PUSH2 0x3990 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3C98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3CA6 PUSH2 0x3A71 DUP3 PUSH2 0x3C39 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x5 SWAP2 SWAP1 SWAP2 SHL DUP3 ADD DUP4 ADD SWAP1 DUP4 DUP2 ADD SWAP1 DUP8 DUP4 GT ISZERO PUSH2 0x3CC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 DUP5 ADD SWAP3 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x3CEC JUMPI DUP4 CALLDATALOAD PUSH2 0x3CDD DUP2 PUSH2 0x3B1C JUMP JUMPDEST DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH2 0x3CCA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3D24 DUP2 PUSH2 0x3B1C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3D34 DUP2 PUSH2 0x3CF7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D5E DUP6 PUSH2 0x3763 JUMP JUMPDEST SWAP4 POP PUSH2 0x3D6C PUSH1 0x20 DUP7 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x3D7C DUP2 PUSH2 0x3B1C JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3DA0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xED1 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x3E25 DUP2 PUSH2 0x3D8C JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x20 PUSH1 0x1 DUP4 DUP2 AND DUP1 ISZERO PUSH2 0x3E42 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3E5C JUMPI PUSH2 0x3E8A JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP4 DUP10 ADD MSTORE DUP3 DUP5 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD ADD SWAP6 POP PUSH2 0x3E8A JUMP JUMPDEST DUP7 PUSH1 0x0 MSTORE DUP3 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3E82 JUMPI DUP2 SLOAD DUP11 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP5 ADD PUSH2 0x3E67 JUMP JUMPDEST DUP10 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3ECA PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3E18 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3EDC DUP2 DUP7 PUSH2 0x3E18 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1FFD PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1CEF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3FE2 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1384 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3FEE JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x401B JUMPI PUSH2 0x401B PUSH2 0x3990 JUMP JUMPDEST PUSH2 0x402F DUP2 PUSH2 0x4029 DUP5 SLOAD PUSH2 0x3D8C JUMP JUMPDEST DUP5 PUSH2 0x3FB9 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4082 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x404C JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1384 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x40B1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x4092 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x40ED JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3CEC PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x4139 DUP2 PUSH2 0x3D8C JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x4151 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x4166 JUMPI PUSH2 0x4195 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x4195 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x418C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x4173 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x41B9 JUMPI PUSH2 0x41B9 PUSH2 0x3990 JUMP JUMPDEST PUSH2 0x41CD DUP4 PUSH2 0x41C7 DUP4 SLOAD PUSH2 0x3D8C JUMP JUMPDEST DUP4 PUSH2 0x3FB9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x421F JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x41E9 JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0xCCF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4250 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4230 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x428B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42C4 PUSH2 0x3A71 DUP5 PUSH2 0x39F0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x42D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AB9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x42B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x432F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x433B DUP5 DUP3 DUP6 ADD PUSH2 0x42E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4360 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3ADD JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3CEC DUP2 DUP6 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4394 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3AB9 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x433B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x43D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x43EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43F7 DUP6 DUP3 DUP7 ADD PUSH2 0x42E6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4429 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x444B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x4450 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4493 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x44B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44D6 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x44E8 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x44F9 DUP10 DUP7 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD PUSH2 0x42B6 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x44B6 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4528 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x456B JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x4579 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x42E6 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x454B JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3775 DUP2 PUSH2 0x3CF7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x45AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x45C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x45D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x45E6 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP13 DUP5 GT ISZERO PUSH2 0x4605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x462C JUMPI DUP6 MLOAD PUSH2 0x461D DUP2 PUSH2 0x3B1C JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH2 0x460A JUMP JUMPDEST SWAP2 DUP12 ADD MLOAD SWAP2 SWAP10 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH2 0x4645 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4651 DUP10 DUP4 DUP11 ADD PUSH2 0x4408 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4667 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4673 DUP10 DUP4 DUP11 ADD PUSH2 0x4472 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4689 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4696 DUP9 DUP3 DUP10 ADD PUSH2 0x4507 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x46A5 PUSH1 0x80 DUP8 ADD PUSH2 0x4587 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD SWAP6 POP PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x46FE JUMPI PUSH1 0x1F NOT DUP7 DUP5 SUB ADD DUP10 MSTORE PUSH2 0x46EC DUP4 DUP4 MLOAD PUSH2 0x3ADD JUMP JUMPDEST SWAP9 DUP5 ADD SWAP9 SWAP3 POP SWAP1 DUP4 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x46D0 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP7 MLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x20 SWAP1 PUSH1 0xC0 DUP5 ADD SWAP1 DUP3 DUP11 ADD DUP5 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x475A JUMPI DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4728 JUMP JUMPDEST POP POP POP DUP4 DUP2 SUB DUP3 DUP6 ADD MSTORE DUP8 MLOAD DUP1 DUP3 MSTORE DUP9 DUP4 ADD SWAP2 DUP4 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x478F JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4773 JUMP JUMPDEST POP POP DUP5 DUP2 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x47A3 DUP2 DUP10 PUSH2 0x46B1 JUMP JUMPDEST SWAP3 POP POP POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x47B9 DUP2 DUP7 PUSH2 0x46B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x47CB PUSH1 0x80 DUP4 ADD DUP5 PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4806 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3EEF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4872 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3ADD JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3EDC DUP2 DUP7 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE39 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH15 0x9B4E0E8423DDD67A12F6B1A136938A SWAP8 DUP7 PUSH2 0x714C 0x28 0x2E 0xDE CALLVALUE SIGNEXTEND SWAP2 0xA7 ADDRESS PUSH1 0xEC DELEGATECALL PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"1113:15302:28:-:0;;;4618:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1716:1:18;1821:7;:22;4716:9:28;;;936:32:16;719:10:19;936:18:16;:32::i;:::-;-1:-1:-1;;;;;1201:42:2;;;-1:-1:-1;996:7:17;:15;;-1:-1:-1;;996:15:17;;;1451:31:25::1;1472:9:::0;1451:20:::1;:31::i;:::-;-1:-1:-1::0;4737:31:28::1;4758:9:::0;4737:20:::1;:31::i;:::-;4778:8;:20:::0;;4808:24:::1;::::0;;::::1;-1:-1:-1::0;;;4808:24:28::1;-1:-1:-1::0;;;;;;4808:24:28;;;-1:-1:-1;;;;;4778:20:28;;::::1;4808:24:::0;;;;::::1;::::0;;-1:-1:-1;1113:15302:28;;2433:187:16;2525:6;;;-1:-1:-1;;;;;2541:17:16;;;-1:-1:-1;;;;;;2541:17:16;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;485:136:24:-;-1:-1:-1;;;;;548:22:24;;544:75;;589:23;;-1:-1:-1;;;589:23:24;;;;;;;;;;;544:75;485:136;:::o;14:177:54:-;93:13;;-1:-1:-1;;;;;135:31:54;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:446::-;283:6;291;299;352:2;340:9;331:7;327:23;323:32;320:52;;;368:1;365;358:12;320:52;391:40;421:9;391:40;:::i;:::-;381:50;;450:49;495:2;484:9;480:18;450:49;:::i;:::-;440:59;;542:2;531:9;527:18;521:25;586:6;579:5;575:18;568:5;565:29;555:57;;608:1;605;598:12;555:57;631:5;621:15;;;196:446;;;;;:::o;:::-;1113:15302:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_PAYLOAD_SIZE_LIMIT_448":{"entryPoint":null,"id":448,"parameterSlots":0,"returnSlots":0},"@_blockingLzReceive_6901":{"entryPoint":8895,"id":6901,"parameterSlots":4,"returnSlots":0},"@_checkOwner_4122":{"entryPoint":9401,"id":4122,"parameterSlots":0,"returnSlots":0},"@_isEligibleToReceive_5614":{"entryPoint":12209,"id":5614,"parameterSlots":1,"returnSlots":0},"@_msgSender_4354":{"entryPoint":null,"id":4354,"parameterSlots":0,"returnSlots":1},"@_nonReentrantAfter_4341":{"entryPoint":null,"id":4341,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_4333":{"entryPoint":11107,"id":4333,"parameterSlots":0,"returnSlots":0},"@_nonblockingLzReceive_7057":{"entryPoint":9599,"id":7057,"parameterSlots":4,"returnSlots":0},"@_pause_4271":{"entryPoint":10673,"id":4271,"parameterSlots":0,"returnSlots":0},"@_queueOrRevertInternal_7191":{"entryPoint":13119,"id":7191,"parameterSlots":6,"returnSlots":0},"@_queue_7143":{"entryPoint":12353,"id":7143,"parameterSlots":1,"returnSlots":0},"@_requireNotPaused_4244":{"entryPoint":12126,"id":4244,"parameterSlots":0,"returnSlots":0},"@_requirePaused_4255":{"entryPoint":12044,"id":4255,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_4179":{"entryPoint":11786,"id":4179,"parameterSlots":1,"returnSlots":0},"@_unpause_4287":{"entryPoint":9504,"id":4287,"parameterSlots":0,"returnSlots":0},"@addTimelocks_6506":{"entryPoint":6877,"id":6506,"parameterSlots":1,"returnSlots":0},"@cancel_6698":{"entryPoint":3817,"id":6698,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":10734,"id":5466,"parameterSlots":1,"returnSlots":0},"@excessivelySafeCall_372":{"entryPoint":11905,"id":372,"parameterSlots":4,"returnSlots":2},"@execute_6599":{"entryPoint":8198,"id":6599,"parameterSlots":1,"returnSlots":0},"@failedMessages_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_808":{"entryPoint":4589,"id":808,"parameterSlots":3,"returnSlots":0},"@getConfig_736":{"entryPoint":7983,"id":736,"parameterSlots":4,"returnSlots":1},"@getTrustedRemoteAddress_888":{"entryPoint":5575,"id":888,"parameterSlots":1,"returnSlots":1},"@guardian_6251":{"entryPoint":null,"id":6251,"parameterSlots":0,"returnSlots":0},"@isTrustedRemote_970":{"entryPoint":3443,"id":970,"parameterSlots":3,"returnSlots":1},"@last24HourCommandsReceived_5500":{"entryPoint":null,"id":5500,"parameterSlots":0,"returnSlots":0},"@last24HourReceiveWindowStart_5503":{"entryPoint":null,"id":5503,"parameterSlots":0,"returnSlots":0},"@lastProposalReceived_6257":{"entryPoint":null,"id":6257,"parameterSlots":0,"returnSlots":0},"@lzEndpoint_451":{"entryPoint":null,"id":451,"parameterSlots":0,"returnSlots":0},"@lzReceive_562":{"entryPoint":2514,"id":562,"parameterSlots":6,"returnSlots":0},"@maxDailyReceiveLimit_5497":{"entryPoint":null,"id":5497,"parameterSlots":0,"returnSlots":0},"@minDstGasLookup_461":{"entryPoint":null,"id":461,"parameterSlots":0,"returnSlots":0},"@nonblockingLzReceive_1132":{"entryPoint":4761,"id":1132,"parameterSlots":6,"returnSlots":0},"@owner_4108":{"entryPoint":null,"id":4108,"parameterSlots":0,"returnSlots":1},"@pause_5551":{"entryPoint":5158,"id":5551,"parameterSlots":0,"returnSlots":0},"@paused_4232":{"entryPoint":null,"id":4232,"parameterSlots":0,"returnSlots":1},"@payloadSizeLimitLookup_465":{"entryPoint":null,"id":465,"parameterSlots":0,"returnSlots":0},"@precrime_467":{"entryPoint":null,"id":467,"parameterSlots":0,"returnSlots":0},"@proposalTimelocks_6269":{"entryPoint":null,"id":6269,"parameterSlots":0,"returnSlots":0},"@proposals_6263":{"entryPoint":null,"id":6263,"parameterSlots":0,"returnSlots":0},"@queued_6274":{"entryPoint":null,"id":6274,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_5567":{"entryPoint":null,"id":5567,"parameterSlots":0,"returnSlots":0},"@retryMessage_1211":{"entryPoint":11196,"id":1211,"parameterSlots":6,"returnSlots":0},"@retryMessage_6780":{"entryPoint":6461,"id":6780,"parameterSlots":6,"returnSlots":0},"@setConfig_760":{"entryPoint":6274,"id":760,"parameterSlots":5,"returnSlots":0},"@setGuardian_6431":{"entryPoint":5174,"id":6431,"parameterSlots":1,"returnSlots":0},"@setMaxDailyReceiveLimit_5541":{"entryPoint":5502,"id":5541,"parameterSlots":1,"returnSlots":0},"@setMinDstGas_930":{"entryPoint":6681,"id":930,"parameterSlots":3,"returnSlots":0},"@setPayloadSizeLimit_946":{"entryPoint":3286,"id":946,"parameterSlots":2,"returnSlots":0},"@setPrecrime_904":{"entryPoint":5983,"id":904,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_790":{"entryPoint":3317,"id":790,"parameterSlots":1,"returnSlots":0},"@setSendVersion_775":{"entryPoint":3111,"id":775,"parameterSlots":1,"returnSlots":0},"@setSrcChainId_6397":{"entryPoint":6112,"id":6397,"parameterSlots":1,"returnSlots":0},"@setTimelockPendingAdmin_6740":{"entryPoint":7569,"id":6740,"parameterSlots":2,"returnSlots":0},"@setTrustedRemoteAddress_857":{"entryPoint":5846,"id":857,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_829":{"entryPoint":6787,"id":829,"parameterSlots":3,"returnSlots":0},"@slice_63":{"entryPoint":10811,"id":63,"parameterSlots":3,"returnSlots":1},"@srcChainId_6254":{"entryPoint":null,"id":6254,"parameterSlots":0,"returnSlots":0},"@state_6823":{"entryPoint":3648,"id":6823,"parameterSlots":1,"returnSlots":1},"@transferOwnership_4159":{"entryPoint":7412,"id":4159,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_455":{"entryPoint":5004,"id":455,"parameterSlots":0,"returnSlots":0},"@unpause_5561":{"entryPoint":3799,"id":5561,"parameterSlots":0,"returnSlots":0},"abi_decode_array_bytes_dyn_fromMemory":{"entryPoint":17671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_string_dyn_fromMemory":{"entryPoint":17522,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint256_dyn_fromMemory":{"entryPoint":17416,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_bytes_fromMemory":{"entryPoint":17078,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":14202,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_bytes_fromMemory":{"entryPoint":17126,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":15166,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint8":{"entryPoint":15622,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory":{"entryPoint":17810,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_array$_t_contract$_ITimelock_$8011_$dyn_memory_ptr":{"entryPoint":15453,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":18564,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":17158,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptrt_uint256_fromMemory":{"entryPoint":17345,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16":{"entryPoint":14472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":14541,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":14299,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":14872,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":15195,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":15679,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":15357,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":15246,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_uint256":{"entryPoint":14499,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":14447,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":18468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint16":{"entryPoint":14179,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":14275,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint8_fromMemory":{"entryPoint":17799,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_string_dyn":{"entryPoint":18097,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":15069,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":16111,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_string_storage":{"entryPoint":15896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":15833,"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":16256,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":17282,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":16683,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":18493,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":16021,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__fromStack_reversed":{"entryPoint":18187,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"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":15113,"id":null,"parameterSlots":2,"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$_ITimelock_$8011__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_ProposalState_$6248__to_t_uint8__fromStack_reversed":{"entryPoint":14671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"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":16154,"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":18408,"id":null,"parameterSlots":6,"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":17219,"id":null,"parameterSlots":5,"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":null,"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":null,"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":16637,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_bool_t_bool_t_uint8__to_t_uint256_t_uint256_t_bool_t_bool_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint64_t_bytes_memory_ptr__to_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":17310,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint8":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":14783,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_contract_ITimelock_dyn":{"entryPoint":15417,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":14832,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":18389,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint8":{"entryPoint":17053,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":16231,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":16313,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage":{"entryPoint":16801,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":16385,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":15033,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":15756,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":16184,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":14624,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":15849,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":14736,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":15132,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint8":{"entryPoint":15607,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:46073:54","nodeType":"YulBlock","src":"0:46073:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"62:111:54","nodeType":"YulBlock","src":"62:111:54","statements":[{"nativeSrc":"72:29:54","nodeType":"YulAssignment","src":"72:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"94:6:54","nodeType":"YulIdentifier","src":"94:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"81:12:54","nodeType":"YulIdentifier","src":"81:12:54"},"nativeSrc":"81:20:54","nodeType":"YulFunctionCall","src":"81:20:54"},"variableNames":[{"name":"value","nativeSrc":"72:5:54","nodeType":"YulIdentifier","src":"72:5:54"}]},{"body":{"nativeSrc":"151:16:54","nodeType":"YulBlock","src":"151:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"160:1:54","nodeType":"YulLiteral","src":"160:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"163:1:54","nodeType":"YulLiteral","src":"163:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"153:6:54","nodeType":"YulIdentifier","src":"153:6:54"},"nativeSrc":"153:12:54","nodeType":"YulFunctionCall","src":"153:12:54"},"nativeSrc":"153:12:54","nodeType":"YulExpressionStatement","src":"153:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"123:5:54","nodeType":"YulIdentifier","src":"123:5:54"},{"arguments":[{"name":"value","nativeSrc":"134:5:54","nodeType":"YulIdentifier","src":"134:5:54"},{"kind":"number","nativeSrc":"141:6:54","nodeType":"YulLiteral","src":"141:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"130:3:54","nodeType":"YulIdentifier","src":"130:3:54"},"nativeSrc":"130:18:54","nodeType":"YulFunctionCall","src":"130:18:54"}],"functionName":{"name":"eq","nativeSrc":"120:2:54","nodeType":"YulIdentifier","src":"120:2:54"},"nativeSrc":"120:29:54","nodeType":"YulFunctionCall","src":"120:29:54"}],"functionName":{"name":"iszero","nativeSrc":"113:6:54","nodeType":"YulIdentifier","src":"113:6:54"},"nativeSrc":"113:37:54","nodeType":"YulFunctionCall","src":"113:37:54"},"nativeSrc":"110:57:54","nodeType":"YulIf","src":"110:57:54"}]},"name":"abi_decode_uint16","nativeSrc":"14:159:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"41:6:54","nodeType":"YulTypedName","src":"41:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"52:5:54","nodeType":"YulTypedName","src":"52:5:54","type":""}],"src":"14:159:54"},{"body":{"nativeSrc":"250:275:54","nodeType":"YulBlock","src":"250:275:54","statements":[{"body":{"nativeSrc":"299:16:54","nodeType":"YulBlock","src":"299:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"308:1:54","nodeType":"YulLiteral","src":"308:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"311:1:54","nodeType":"YulLiteral","src":"311:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"301:6:54","nodeType":"YulIdentifier","src":"301:6:54"},"nativeSrc":"301:12:54","nodeType":"YulFunctionCall","src":"301:12:54"},"nativeSrc":"301:12:54","nodeType":"YulExpressionStatement","src":"301:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"278:6:54","nodeType":"YulIdentifier","src":"278:6:54"},{"kind":"number","nativeSrc":"286:4:54","nodeType":"YulLiteral","src":"286:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"274:3:54","nodeType":"YulIdentifier","src":"274:3:54"},"nativeSrc":"274:17:54","nodeType":"YulFunctionCall","src":"274:17:54"},{"name":"end","nativeSrc":"293:3:54","nodeType":"YulIdentifier","src":"293:3:54"}],"functionName":{"name":"slt","nativeSrc":"270:3:54","nodeType":"YulIdentifier","src":"270:3:54"},"nativeSrc":"270:27:54","nodeType":"YulFunctionCall","src":"270:27:54"}],"functionName":{"name":"iszero","nativeSrc":"263:6:54","nodeType":"YulIdentifier","src":"263:6:54"},"nativeSrc":"263:35:54","nodeType":"YulFunctionCall","src":"263:35:54"},"nativeSrc":"260:55:54","nodeType":"YulIf","src":"260:55:54"},{"nativeSrc":"324:30:54","nodeType":"YulAssignment","src":"324:30:54","value":{"arguments":[{"name":"offset","nativeSrc":"347:6:54","nodeType":"YulIdentifier","src":"347:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"334:12:54","nodeType":"YulIdentifier","src":"334:12:54"},"nativeSrc":"334:20:54","nodeType":"YulFunctionCall","src":"334:20:54"},"variableNames":[{"name":"length","nativeSrc":"324:6:54","nodeType":"YulIdentifier","src":"324:6:54"}]},{"body":{"nativeSrc":"397:16:54","nodeType":"YulBlock","src":"397:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"406:1:54","nodeType":"YulLiteral","src":"406:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"409:1:54","nodeType":"YulLiteral","src":"409:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"399:6:54","nodeType":"YulIdentifier","src":"399:6:54"},"nativeSrc":"399:12:54","nodeType":"YulFunctionCall","src":"399:12:54"},"nativeSrc":"399:12:54","nodeType":"YulExpressionStatement","src":"399:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"369:6:54","nodeType":"YulIdentifier","src":"369:6:54"},{"kind":"number","nativeSrc":"377:18:54","nodeType":"YulLiteral","src":"377:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"366:2:54","nodeType":"YulIdentifier","src":"366:2:54"},"nativeSrc":"366:30:54","nodeType":"YulFunctionCall","src":"366:30:54"},"nativeSrc":"363:50:54","nodeType":"YulIf","src":"363:50:54"},{"nativeSrc":"422:29:54","nodeType":"YulAssignment","src":"422:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"438:6:54","nodeType":"YulIdentifier","src":"438:6:54"},{"kind":"number","nativeSrc":"446:4:54","nodeType":"YulLiteral","src":"446:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"434:3:54","nodeType":"YulIdentifier","src":"434:3:54"},"nativeSrc":"434:17:54","nodeType":"YulFunctionCall","src":"434:17:54"},"variableNames":[{"name":"arrayPos","nativeSrc":"422:8:54","nodeType":"YulIdentifier","src":"422:8:54"}]},{"body":{"nativeSrc":"503:16:54","nodeType":"YulBlock","src":"503:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"512:1:54","nodeType":"YulLiteral","src":"512:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"515:1:54","nodeType":"YulLiteral","src":"515:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"505:6:54","nodeType":"YulIdentifier","src":"505:6:54"},"nativeSrc":"505:12:54","nodeType":"YulFunctionCall","src":"505:12:54"},"nativeSrc":"505:12:54","nodeType":"YulExpressionStatement","src":"505:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"474:6:54","nodeType":"YulIdentifier","src":"474:6:54"},{"name":"length","nativeSrc":"482:6:54","nodeType":"YulIdentifier","src":"482:6:54"}],"functionName":{"name":"add","nativeSrc":"470:3:54","nodeType":"YulIdentifier","src":"470:3:54"},"nativeSrc":"470:19:54","nodeType":"YulFunctionCall","src":"470:19:54"},{"kind":"number","nativeSrc":"491:4:54","nodeType":"YulLiteral","src":"491:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"466:3:54","nodeType":"YulIdentifier","src":"466:3:54"},"nativeSrc":"466:30:54","nodeType":"YulFunctionCall","src":"466:30:54"},{"name":"end","nativeSrc":"498:3:54","nodeType":"YulIdentifier","src":"498:3:54"}],"functionName":{"name":"gt","nativeSrc":"463:2:54","nodeType":"YulIdentifier","src":"463:2:54"},"nativeSrc":"463:39:54","nodeType":"YulFunctionCall","src":"463:39:54"},"nativeSrc":"460:59:54","nodeType":"YulIf","src":"460:59:54"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"178:347:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"213:6:54","nodeType":"YulTypedName","src":"213:6:54","type":""},{"name":"end","nativeSrc":"221:3:54","nodeType":"YulTypedName","src":"221:3:54","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"229:8:54","nodeType":"YulTypedName","src":"229:8:54","type":""},{"name":"length","nativeSrc":"239:6:54","nodeType":"YulTypedName","src":"239:6:54","type":""}],"src":"178:347:54"},{"body":{"nativeSrc":"578:123:54","nodeType":"YulBlock","src":"578:123:54","statements":[{"nativeSrc":"588:29:54","nodeType":"YulAssignment","src":"588:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"610:6:54","nodeType":"YulIdentifier","src":"610:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"597:12:54","nodeType":"YulIdentifier","src":"597:12:54"},"nativeSrc":"597:20:54","nodeType":"YulFunctionCall","src":"597:20:54"},"variableNames":[{"name":"value","nativeSrc":"588:5:54","nodeType":"YulIdentifier","src":"588:5:54"}]},{"body":{"nativeSrc":"679:16:54","nodeType":"YulBlock","src":"679:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"688:1:54","nodeType":"YulLiteral","src":"688:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"691:1:54","nodeType":"YulLiteral","src":"691:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"681:6:54","nodeType":"YulIdentifier","src":"681:6:54"},"nativeSrc":"681:12:54","nodeType":"YulFunctionCall","src":"681:12:54"},"nativeSrc":"681:12:54","nodeType":"YulExpressionStatement","src":"681:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"639:5:54","nodeType":"YulIdentifier","src":"639:5:54"},{"arguments":[{"name":"value","nativeSrc":"650:5:54","nodeType":"YulIdentifier","src":"650:5:54"},{"kind":"number","nativeSrc":"657:18:54","nodeType":"YulLiteral","src":"657:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"646:3:54","nodeType":"YulIdentifier","src":"646:3:54"},"nativeSrc":"646:30:54","nodeType":"YulFunctionCall","src":"646:30:54"}],"functionName":{"name":"eq","nativeSrc":"636:2:54","nodeType":"YulIdentifier","src":"636:2:54"},"nativeSrc":"636:41:54","nodeType":"YulFunctionCall","src":"636:41:54"}],"functionName":{"name":"iszero","nativeSrc":"629:6:54","nodeType":"YulIdentifier","src":"629:6:54"},"nativeSrc":"629:49:54","nodeType":"YulFunctionCall","src":"629:49:54"},"nativeSrc":"626:69:54","nodeType":"YulIf","src":"626:69:54"}]},"name":"abi_decode_uint64","nativeSrc":"530:171:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"557:6:54","nodeType":"YulTypedName","src":"557:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"568:5:54","nodeType":"YulTypedName","src":"568:5:54","type":""}],"src":"530:171:54"},{"body":{"nativeSrc":"863:705:54","nodeType":"YulBlock","src":"863:705:54","statements":[{"body":{"nativeSrc":"910:16:54","nodeType":"YulBlock","src":"910:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"919:1:54","nodeType":"YulLiteral","src":"919:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"922:1:54","nodeType":"YulLiteral","src":"922:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"912:6:54","nodeType":"YulIdentifier","src":"912:6:54"},"nativeSrc":"912:12:54","nodeType":"YulFunctionCall","src":"912:12:54"},"nativeSrc":"912:12:54","nodeType":"YulExpressionStatement","src":"912:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"884:7:54","nodeType":"YulIdentifier","src":"884:7:54"},{"name":"headStart","nativeSrc":"893:9:54","nodeType":"YulIdentifier","src":"893:9:54"}],"functionName":{"name":"sub","nativeSrc":"880:3:54","nodeType":"YulIdentifier","src":"880:3:54"},"nativeSrc":"880:23:54","nodeType":"YulFunctionCall","src":"880:23:54"},{"kind":"number","nativeSrc":"905:3:54","nodeType":"YulLiteral","src":"905:3:54","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"876:3:54","nodeType":"YulIdentifier","src":"876:3:54"},"nativeSrc":"876:33:54","nodeType":"YulFunctionCall","src":"876:33:54"},"nativeSrc":"873:53:54","nodeType":"YulIf","src":"873:53:54"},{"nativeSrc":"935:38:54","nodeType":"YulAssignment","src":"935:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"963:9:54","nodeType":"YulIdentifier","src":"963:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"945:17:54","nodeType":"YulIdentifier","src":"945:17:54"},"nativeSrc":"945:28:54","nodeType":"YulFunctionCall","src":"945:28:54"},"variableNames":[{"name":"value0","nativeSrc":"935:6:54","nodeType":"YulIdentifier","src":"935:6:54"}]},{"nativeSrc":"982:46:54","nodeType":"YulVariableDeclaration","src":"982:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1013:9:54","nodeType":"YulIdentifier","src":"1013:9:54"},{"kind":"number","nativeSrc":"1024:2:54","nodeType":"YulLiteral","src":"1024:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1009:3:54","nodeType":"YulIdentifier","src":"1009:3:54"},"nativeSrc":"1009:18:54","nodeType":"YulFunctionCall","src":"1009:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"996:12:54","nodeType":"YulIdentifier","src":"996:12:54"},"nativeSrc":"996:32:54","nodeType":"YulFunctionCall","src":"996:32:54"},"variables":[{"name":"offset","nativeSrc":"986:6:54","nodeType":"YulTypedName","src":"986:6:54","type":""}]},{"nativeSrc":"1037:28:54","nodeType":"YulVariableDeclaration","src":"1037:28:54","value":{"kind":"number","nativeSrc":"1047:18:54","nodeType":"YulLiteral","src":"1047:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1041:2:54","nodeType":"YulTypedName","src":"1041:2:54","type":""}]},{"body":{"nativeSrc":"1092:16:54","nodeType":"YulBlock","src":"1092:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1101:1:54","nodeType":"YulLiteral","src":"1101:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1104:1:54","nodeType":"YulLiteral","src":"1104:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1094:6:54","nodeType":"YulIdentifier","src":"1094:6:54"},"nativeSrc":"1094:12:54","nodeType":"YulFunctionCall","src":"1094:12:54"},"nativeSrc":"1094:12:54","nodeType":"YulExpressionStatement","src":"1094:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1080:6:54","nodeType":"YulIdentifier","src":"1080:6:54"},{"name":"_1","nativeSrc":"1088:2:54","nodeType":"YulIdentifier","src":"1088:2:54"}],"functionName":{"name":"gt","nativeSrc":"1077:2:54","nodeType":"YulIdentifier","src":"1077:2:54"},"nativeSrc":"1077:14:54","nodeType":"YulFunctionCall","src":"1077:14:54"},"nativeSrc":"1074:34:54","nodeType":"YulIf","src":"1074:34:54"},{"nativeSrc":"1117:84:54","nodeType":"YulVariableDeclaration","src":"1117:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1173:9:54","nodeType":"YulIdentifier","src":"1173:9:54"},{"name":"offset","nativeSrc":"1184:6:54","nodeType":"YulIdentifier","src":"1184:6:54"}],"functionName":{"name":"add","nativeSrc":"1169:3:54","nodeType":"YulIdentifier","src":"1169:3:54"},"nativeSrc":"1169:22:54","nodeType":"YulFunctionCall","src":"1169:22:54"},{"name":"dataEnd","nativeSrc":"1193:7:54","nodeType":"YulIdentifier","src":"1193:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1143:25:54","nodeType":"YulIdentifier","src":"1143:25:54"},"nativeSrc":"1143:58:54","nodeType":"YulFunctionCall","src":"1143:58:54"},"variables":[{"name":"value1_1","nativeSrc":"1121:8:54","nodeType":"YulTypedName","src":"1121:8:54","type":""},{"name":"value2_1","nativeSrc":"1131:8:54","nodeType":"YulTypedName","src":"1131:8:54","type":""}]},{"nativeSrc":"1210:18:54","nodeType":"YulAssignment","src":"1210:18:54","value":{"name":"value1_1","nativeSrc":"1220:8:54","nodeType":"YulIdentifier","src":"1220:8:54"},"variableNames":[{"name":"value1","nativeSrc":"1210:6:54","nodeType":"YulIdentifier","src":"1210:6:54"}]},{"nativeSrc":"1237:18:54","nodeType":"YulAssignment","src":"1237:18:54","value":{"name":"value2_1","nativeSrc":"1247:8:54","nodeType":"YulIdentifier","src":"1247:8:54"},"variableNames":[{"name":"value2","nativeSrc":"1237:6:54","nodeType":"YulIdentifier","src":"1237:6:54"}]},{"nativeSrc":"1264:47:54","nodeType":"YulAssignment","src":"1264:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1296:9:54","nodeType":"YulIdentifier","src":"1296:9:54"},{"kind":"number","nativeSrc":"1307:2:54","nodeType":"YulLiteral","src":"1307:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1292:3:54","nodeType":"YulIdentifier","src":"1292:3:54"},"nativeSrc":"1292:18:54","nodeType":"YulFunctionCall","src":"1292:18:54"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"1274:17:54","nodeType":"YulIdentifier","src":"1274:17:54"},"nativeSrc":"1274:37:54","nodeType":"YulFunctionCall","src":"1274:37:54"},"variableNames":[{"name":"value3","nativeSrc":"1264:6:54","nodeType":"YulIdentifier","src":"1264:6:54"}]},{"nativeSrc":"1320:48:54","nodeType":"YulVariableDeclaration","src":"1320:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1353:9:54","nodeType":"YulIdentifier","src":"1353:9:54"},{"kind":"number","nativeSrc":"1364:2:54","nodeType":"YulLiteral","src":"1364:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1349:3:54","nodeType":"YulIdentifier","src":"1349:3:54"},"nativeSrc":"1349:18:54","nodeType":"YulFunctionCall","src":"1349:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1336:12:54","nodeType":"YulIdentifier","src":"1336:12:54"},"nativeSrc":"1336:32:54","nodeType":"YulFunctionCall","src":"1336:32:54"},"variables":[{"name":"offset_1","nativeSrc":"1324:8:54","nodeType":"YulTypedName","src":"1324:8:54","type":""}]},{"body":{"nativeSrc":"1397:16:54","nodeType":"YulBlock","src":"1397:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1406:1:54","nodeType":"YulLiteral","src":"1406:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1409:1:54","nodeType":"YulLiteral","src":"1409:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1399:6:54","nodeType":"YulIdentifier","src":"1399:6:54"},"nativeSrc":"1399:12:54","nodeType":"YulFunctionCall","src":"1399:12:54"},"nativeSrc":"1399:12:54","nodeType":"YulExpressionStatement","src":"1399:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1383:8:54","nodeType":"YulIdentifier","src":"1383:8:54"},{"name":"_1","nativeSrc":"1393:2:54","nodeType":"YulIdentifier","src":"1393:2:54"}],"functionName":{"name":"gt","nativeSrc":"1380:2:54","nodeType":"YulIdentifier","src":"1380:2:54"},"nativeSrc":"1380:16:54","nodeType":"YulFunctionCall","src":"1380:16:54"},"nativeSrc":"1377:36:54","nodeType":"YulIf","src":"1377:36:54"},{"nativeSrc":"1422:86:54","nodeType":"YulVariableDeclaration","src":"1422:86:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1478:9:54","nodeType":"YulIdentifier","src":"1478:9:54"},{"name":"offset_1","nativeSrc":"1489:8:54","nodeType":"YulIdentifier","src":"1489:8:54"}],"functionName":{"name":"add","nativeSrc":"1474:3:54","nodeType":"YulIdentifier","src":"1474:3:54"},"nativeSrc":"1474:24:54","nodeType":"YulFunctionCall","src":"1474:24:54"},{"name":"dataEnd","nativeSrc":"1500:7:54","nodeType":"YulIdentifier","src":"1500:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1448:25:54","nodeType":"YulIdentifier","src":"1448:25:54"},"nativeSrc":"1448:60:54","nodeType":"YulFunctionCall","src":"1448:60:54"},"variables":[{"name":"value4_1","nativeSrc":"1426:8:54","nodeType":"YulTypedName","src":"1426:8:54","type":""},{"name":"value5_1","nativeSrc":"1436:8:54","nodeType":"YulTypedName","src":"1436:8:54","type":""}]},{"nativeSrc":"1517:18:54","nodeType":"YulAssignment","src":"1517:18:54","value":{"name":"value4_1","nativeSrc":"1527:8:54","nodeType":"YulIdentifier","src":"1527:8:54"},"variableNames":[{"name":"value4","nativeSrc":"1517:6:54","nodeType":"YulIdentifier","src":"1517:6:54"}]},{"nativeSrc":"1544:18:54","nodeType":"YulAssignment","src":"1544:18:54","value":{"name":"value5_1","nativeSrc":"1554:8:54","nodeType":"YulIdentifier","src":"1554:8:54"},"variableNames":[{"name":"value5","nativeSrc":"1544:6:54","nodeType":"YulIdentifier","src":"1544:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nativeSrc":"706:862:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"789:9:54","nodeType":"YulTypedName","src":"789:9:54","type":""},{"name":"dataEnd","nativeSrc":"800:7:54","nodeType":"YulTypedName","src":"800:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"812:6:54","nodeType":"YulTypedName","src":"812:6:54","type":""},{"name":"value1","nativeSrc":"820:6:54","nodeType":"YulTypedName","src":"820:6:54","type":""},{"name":"value2","nativeSrc":"828:6:54","nodeType":"YulTypedName","src":"828:6:54","type":""},{"name":"value3","nativeSrc":"836:6:54","nodeType":"YulTypedName","src":"836:6:54","type":""},{"name":"value4","nativeSrc":"844:6:54","nodeType":"YulTypedName","src":"844:6:54","type":""},{"name":"value5","nativeSrc":"852:6:54","nodeType":"YulTypedName","src":"852:6:54","type":""}],"src":"706:862:54"},{"body":{"nativeSrc":"1643:110:54","nodeType":"YulBlock","src":"1643:110:54","statements":[{"body":{"nativeSrc":"1689:16:54","nodeType":"YulBlock","src":"1689:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1698:1:54","nodeType":"YulLiteral","src":"1698:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1701:1:54","nodeType":"YulLiteral","src":"1701:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1691:6:54","nodeType":"YulIdentifier","src":"1691:6:54"},"nativeSrc":"1691:12:54","nodeType":"YulFunctionCall","src":"1691:12:54"},"nativeSrc":"1691:12:54","nodeType":"YulExpressionStatement","src":"1691:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1664:7:54","nodeType":"YulIdentifier","src":"1664:7:54"},{"name":"headStart","nativeSrc":"1673:9:54","nodeType":"YulIdentifier","src":"1673:9:54"}],"functionName":{"name":"sub","nativeSrc":"1660:3:54","nodeType":"YulIdentifier","src":"1660:3:54"},"nativeSrc":"1660:23:54","nodeType":"YulFunctionCall","src":"1660:23:54"},{"kind":"number","nativeSrc":"1685:2:54","nodeType":"YulLiteral","src":"1685:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1656:3:54","nodeType":"YulIdentifier","src":"1656:3:54"},"nativeSrc":"1656:32:54","nodeType":"YulFunctionCall","src":"1656:32:54"},"nativeSrc":"1653:52:54","nodeType":"YulIf","src":"1653:52:54"},{"nativeSrc":"1714:33:54","nodeType":"YulAssignment","src":"1714:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1737:9:54","nodeType":"YulIdentifier","src":"1737:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"1724:12:54","nodeType":"YulIdentifier","src":"1724:12:54"},"nativeSrc":"1724:23:54","nodeType":"YulFunctionCall","src":"1724:23:54"},"variableNames":[{"name":"value0","nativeSrc":"1714:6:54","nodeType":"YulIdentifier","src":"1714:6:54"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1573:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1609:9:54","nodeType":"YulTypedName","src":"1609:9:54","type":""},{"name":"dataEnd","nativeSrc":"1620:7:54","nodeType":"YulTypedName","src":"1620:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1632:6:54","nodeType":"YulTypedName","src":"1632:6:54","type":""}],"src":"1573:180:54"},{"body":{"nativeSrc":"1800:33:54","nodeType":"YulBlock","src":"1800:33:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1809:3:54","nodeType":"YulIdentifier","src":"1809:3:54"},{"arguments":[{"name":"value","nativeSrc":"1818:5:54","nodeType":"YulIdentifier","src":"1818:5:54"},{"kind":"number","nativeSrc":"1825:4:54","nodeType":"YulLiteral","src":"1825:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1814:3:54","nodeType":"YulIdentifier","src":"1814:3:54"},"nativeSrc":"1814:16:54","nodeType":"YulFunctionCall","src":"1814:16:54"}],"functionName":{"name":"mstore","nativeSrc":"1802:6:54","nodeType":"YulIdentifier","src":"1802:6:54"},"nativeSrc":"1802:29:54","nodeType":"YulFunctionCall","src":"1802:29:54"},"nativeSrc":"1802:29:54","nodeType":"YulExpressionStatement","src":"1802:29:54"}]},"name":"abi_encode_uint8","nativeSrc":"1758:75:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1784:5:54","nodeType":"YulTypedName","src":"1784:5:54","type":""},{"name":"pos","nativeSrc":"1791:3:54","nodeType":"YulTypedName","src":"1791:3:54","type":""}],"src":"1758:75:54"},{"body":{"nativeSrc":"2035:293:54","nodeType":"YulBlock","src":"2035:293:54","statements":[{"nativeSrc":"2045:27:54","nodeType":"YulAssignment","src":"2045:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2057:9:54","nodeType":"YulIdentifier","src":"2057:9:54"},{"kind":"number","nativeSrc":"2068:3:54","nodeType":"YulLiteral","src":"2068:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"2053:3:54","nodeType":"YulIdentifier","src":"2053:3:54"},"nativeSrc":"2053:19:54","nodeType":"YulFunctionCall","src":"2053:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2045:4:54","nodeType":"YulIdentifier","src":"2045:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2088:9:54","nodeType":"YulIdentifier","src":"2088:9:54"},{"name":"value0","nativeSrc":"2099:6:54","nodeType":"YulIdentifier","src":"2099:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2081:6:54","nodeType":"YulIdentifier","src":"2081:6:54"},"nativeSrc":"2081:25:54","nodeType":"YulFunctionCall","src":"2081:25:54"},"nativeSrc":"2081:25:54","nodeType":"YulExpressionStatement","src":"2081:25:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2126:9:54","nodeType":"YulIdentifier","src":"2126:9:54"},{"kind":"number","nativeSrc":"2137:2:54","nodeType":"YulLiteral","src":"2137:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2122:3:54","nodeType":"YulIdentifier","src":"2122:3:54"},"nativeSrc":"2122:18:54","nodeType":"YulFunctionCall","src":"2122:18:54"},{"name":"value1","nativeSrc":"2142:6:54","nodeType":"YulIdentifier","src":"2142:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2115:6:54","nodeType":"YulIdentifier","src":"2115:6:54"},"nativeSrc":"2115:34:54","nodeType":"YulFunctionCall","src":"2115:34:54"},"nativeSrc":"2115:34:54","nodeType":"YulExpressionStatement","src":"2115:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2169:9:54","nodeType":"YulIdentifier","src":"2169:9:54"},{"kind":"number","nativeSrc":"2180:2:54","nodeType":"YulLiteral","src":"2180:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2165:3:54","nodeType":"YulIdentifier","src":"2165:3:54"},"nativeSrc":"2165:18:54","nodeType":"YulFunctionCall","src":"2165:18:54"},{"arguments":[{"arguments":[{"name":"value2","nativeSrc":"2199:6:54","nodeType":"YulIdentifier","src":"2199:6:54"}],"functionName":{"name":"iszero","nativeSrc":"2192:6:54","nodeType":"YulIdentifier","src":"2192:6:54"},"nativeSrc":"2192:14:54","nodeType":"YulFunctionCall","src":"2192:14:54"}],"functionName":{"name":"iszero","nativeSrc":"2185:6:54","nodeType":"YulIdentifier","src":"2185:6:54"},"nativeSrc":"2185:22:54","nodeType":"YulFunctionCall","src":"2185:22:54"}],"functionName":{"name":"mstore","nativeSrc":"2158:6:54","nodeType":"YulIdentifier","src":"2158:6:54"},"nativeSrc":"2158:50:54","nodeType":"YulFunctionCall","src":"2158:50:54"},"nativeSrc":"2158:50:54","nodeType":"YulExpressionStatement","src":"2158:50:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2228:9:54","nodeType":"YulIdentifier","src":"2228:9:54"},{"kind":"number","nativeSrc":"2239:2:54","nodeType":"YulLiteral","src":"2239:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2224:3:54","nodeType":"YulIdentifier","src":"2224:3:54"},"nativeSrc":"2224:18:54","nodeType":"YulFunctionCall","src":"2224:18:54"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"2258:6:54","nodeType":"YulIdentifier","src":"2258:6:54"}],"functionName":{"name":"iszero","nativeSrc":"2251:6:54","nodeType":"YulIdentifier","src":"2251:6:54"},"nativeSrc":"2251:14:54","nodeType":"YulFunctionCall","src":"2251:14:54"}],"functionName":{"name":"iszero","nativeSrc":"2244:6:54","nodeType":"YulIdentifier","src":"2244:6:54"},"nativeSrc":"2244:22:54","nodeType":"YulFunctionCall","src":"2244:22:54"}],"functionName":{"name":"mstore","nativeSrc":"2217:6:54","nodeType":"YulIdentifier","src":"2217:6:54"},"nativeSrc":"2217:50:54","nodeType":"YulFunctionCall","src":"2217:50:54"},"nativeSrc":"2217:50:54","nodeType":"YulExpressionStatement","src":"2217:50:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2287:9:54","nodeType":"YulIdentifier","src":"2287:9:54"},{"kind":"number","nativeSrc":"2298:3:54","nodeType":"YulLiteral","src":"2298:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2283:3:54","nodeType":"YulIdentifier","src":"2283:3:54"},"nativeSrc":"2283:19:54","nodeType":"YulFunctionCall","src":"2283:19:54"},{"arguments":[{"name":"value4","nativeSrc":"2308:6:54","nodeType":"YulIdentifier","src":"2308:6:54"},{"kind":"number","nativeSrc":"2316:4:54","nodeType":"YulLiteral","src":"2316:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2304:3:54","nodeType":"YulIdentifier","src":"2304:3:54"},"nativeSrc":"2304:17:54","nodeType":"YulFunctionCall","src":"2304:17:54"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:54","nodeType":"YulIdentifier","src":"2276:6:54"},"nativeSrc":"2276:46:54","nodeType":"YulFunctionCall","src":"2276:46:54"},"nativeSrc":"2276:46:54","nodeType":"YulExpressionStatement","src":"2276:46:54"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_bool_t_bool_t_uint8__to_t_uint256_t_uint256_t_bool_t_bool_t_uint8__fromStack_reversed","nativeSrc":"1838:490:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1972:9:54","nodeType":"YulTypedName","src":"1972:9:54","type":""},{"name":"value4","nativeSrc":"1983:6:54","nodeType":"YulTypedName","src":"1983:6:54","type":""},{"name":"value3","nativeSrc":"1991:6:54","nodeType":"YulTypedName","src":"1991:6:54","type":""},{"name":"value2","nativeSrc":"1999:6:54","nodeType":"YulTypedName","src":"1999:6:54","type":""},{"name":"value1","nativeSrc":"2007:6:54","nodeType":"YulTypedName","src":"2007:6:54","type":""},{"name":"value0","nativeSrc":"2015:6:54","nodeType":"YulTypedName","src":"2015:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2026:4:54","nodeType":"YulTypedName","src":"2026:4:54","type":""}],"src":"1838:490:54"},{"body":{"nativeSrc":"2434:76:54","nodeType":"YulBlock","src":"2434:76:54","statements":[{"nativeSrc":"2444:26:54","nodeType":"YulAssignment","src":"2444:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2456:9:54","nodeType":"YulIdentifier","src":"2456:9:54"},{"kind":"number","nativeSrc":"2467:2:54","nodeType":"YulLiteral","src":"2467:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2452:3:54","nodeType":"YulIdentifier","src":"2452:3:54"},"nativeSrc":"2452:18:54","nodeType":"YulFunctionCall","src":"2452:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2444:4:54","nodeType":"YulIdentifier","src":"2444:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2486:9:54","nodeType":"YulIdentifier","src":"2486:9:54"},{"name":"value0","nativeSrc":"2497:6:54","nodeType":"YulIdentifier","src":"2497:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2479:6:54","nodeType":"YulIdentifier","src":"2479:6:54"},"nativeSrc":"2479:25:54","nodeType":"YulFunctionCall","src":"2479:25:54"},"nativeSrc":"2479:25:54","nodeType":"YulExpressionStatement","src":"2479:25:54"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2333:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2403:9:54","nodeType":"YulTypedName","src":"2403:9:54","type":""},{"name":"value0","nativeSrc":"2414:6:54","nodeType":"YulTypedName","src":"2414:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2425:4:54","nodeType":"YulTypedName","src":"2425:4:54","type":""}],"src":"2333:177:54"},{"body":{"nativeSrc":"2584:115:54","nodeType":"YulBlock","src":"2584:115:54","statements":[{"body":{"nativeSrc":"2630:16:54","nodeType":"YulBlock","src":"2630:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2639:1:54","nodeType":"YulLiteral","src":"2639:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2642:1:54","nodeType":"YulLiteral","src":"2642:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2632:6:54","nodeType":"YulIdentifier","src":"2632:6:54"},"nativeSrc":"2632:12:54","nodeType":"YulFunctionCall","src":"2632:12:54"},"nativeSrc":"2632:12:54","nodeType":"YulExpressionStatement","src":"2632:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2605:7:54","nodeType":"YulIdentifier","src":"2605:7:54"},{"name":"headStart","nativeSrc":"2614:9:54","nodeType":"YulIdentifier","src":"2614:9:54"}],"functionName":{"name":"sub","nativeSrc":"2601:3:54","nodeType":"YulIdentifier","src":"2601:3:54"},"nativeSrc":"2601:23:54","nodeType":"YulFunctionCall","src":"2601:23:54"},{"kind":"number","nativeSrc":"2626:2:54","nodeType":"YulLiteral","src":"2626:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2597:3:54","nodeType":"YulIdentifier","src":"2597:3:54"},"nativeSrc":"2597:32:54","nodeType":"YulFunctionCall","src":"2597:32:54"},"nativeSrc":"2594:52:54","nodeType":"YulIf","src":"2594:52:54"},{"nativeSrc":"2655:38:54","nodeType":"YulAssignment","src":"2655:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2683:9:54","nodeType":"YulIdentifier","src":"2683:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2665:17:54","nodeType":"YulIdentifier","src":"2665:17:54"},"nativeSrc":"2665:28:54","nodeType":"YulFunctionCall","src":"2665:28:54"},"variableNames":[{"name":"value0","nativeSrc":"2655:6:54","nodeType":"YulIdentifier","src":"2655:6:54"}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"2515:184:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2550:9:54","nodeType":"YulTypedName","src":"2550:9:54","type":""},{"name":"dataEnd","nativeSrc":"2561:7:54","nodeType":"YulTypedName","src":"2561:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2573:6:54","nodeType":"YulTypedName","src":"2573:6:54","type":""}],"src":"2515:184:54"},{"body":{"nativeSrc":"2790:166:54","nodeType":"YulBlock","src":"2790:166:54","statements":[{"body":{"nativeSrc":"2836:16:54","nodeType":"YulBlock","src":"2836:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2845:1:54","nodeType":"YulLiteral","src":"2845:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2848:1:54","nodeType":"YulLiteral","src":"2848:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2838:6:54","nodeType":"YulIdentifier","src":"2838:6:54"},"nativeSrc":"2838:12:54","nodeType":"YulFunctionCall","src":"2838:12:54"},"nativeSrc":"2838:12:54","nodeType":"YulExpressionStatement","src":"2838:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2811:7:54","nodeType":"YulIdentifier","src":"2811:7:54"},{"name":"headStart","nativeSrc":"2820:9:54","nodeType":"YulIdentifier","src":"2820:9:54"}],"functionName":{"name":"sub","nativeSrc":"2807:3:54","nodeType":"YulIdentifier","src":"2807:3:54"},"nativeSrc":"2807:23:54","nodeType":"YulFunctionCall","src":"2807:23:54"},{"kind":"number","nativeSrc":"2832:2:54","nodeType":"YulLiteral","src":"2832:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2803:3:54","nodeType":"YulIdentifier","src":"2803:3:54"},"nativeSrc":"2803:32:54","nodeType":"YulFunctionCall","src":"2803:32:54"},"nativeSrc":"2800:52:54","nodeType":"YulIf","src":"2800:52:54"},{"nativeSrc":"2861:38:54","nodeType":"YulAssignment","src":"2861:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2889:9:54","nodeType":"YulIdentifier","src":"2889:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2871:17:54","nodeType":"YulIdentifier","src":"2871:17:54"},"nativeSrc":"2871:28:54","nodeType":"YulFunctionCall","src":"2871:28:54"},"variableNames":[{"name":"value0","nativeSrc":"2861:6:54","nodeType":"YulIdentifier","src":"2861:6:54"}]},{"nativeSrc":"2908:42:54","nodeType":"YulAssignment","src":"2908:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2935:9:54","nodeType":"YulIdentifier","src":"2935:9:54"},{"kind":"number","nativeSrc":"2946:2:54","nodeType":"YulLiteral","src":"2946:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2931:3:54","nodeType":"YulIdentifier","src":"2931:3:54"},"nativeSrc":"2931:18:54","nodeType":"YulFunctionCall","src":"2931:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"2918:12:54","nodeType":"YulIdentifier","src":"2918:12:54"},"nativeSrc":"2918:32:54","nodeType":"YulFunctionCall","src":"2918:32:54"},"variableNames":[{"name":"value1","nativeSrc":"2908:6:54","nodeType":"YulIdentifier","src":"2908:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint256","nativeSrc":"2704:252:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2748:9:54","nodeType":"YulTypedName","src":"2748:9:54","type":""},{"name":"dataEnd","nativeSrc":"2759:7:54","nodeType":"YulTypedName","src":"2759:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2771:6:54","nodeType":"YulTypedName","src":"2771:6:54","type":""},{"name":"value1","nativeSrc":"2779:6:54","nodeType":"YulTypedName","src":"2779:6:54","type":""}],"src":"2704:252:54"},{"body":{"nativeSrc":"3066:376:54","nodeType":"YulBlock","src":"3066:376:54","statements":[{"body":{"nativeSrc":"3112:16:54","nodeType":"YulBlock","src":"3112:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3121:1:54","nodeType":"YulLiteral","src":"3121:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3124:1:54","nodeType":"YulLiteral","src":"3124:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3114:6:54","nodeType":"YulIdentifier","src":"3114:6:54"},"nativeSrc":"3114:12:54","nodeType":"YulFunctionCall","src":"3114:12:54"},"nativeSrc":"3114:12:54","nodeType":"YulExpressionStatement","src":"3114:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3087:7:54","nodeType":"YulIdentifier","src":"3087:7:54"},{"name":"headStart","nativeSrc":"3096:9:54","nodeType":"YulIdentifier","src":"3096:9:54"}],"functionName":{"name":"sub","nativeSrc":"3083:3:54","nodeType":"YulIdentifier","src":"3083:3:54"},"nativeSrc":"3083:23:54","nodeType":"YulFunctionCall","src":"3083:23:54"},{"kind":"number","nativeSrc":"3108:2:54","nodeType":"YulLiteral","src":"3108:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3079:3:54","nodeType":"YulIdentifier","src":"3079:3:54"},"nativeSrc":"3079:32:54","nodeType":"YulFunctionCall","src":"3079:32:54"},"nativeSrc":"3076:52:54","nodeType":"YulIf","src":"3076:52:54"},{"nativeSrc":"3137:38:54","nodeType":"YulAssignment","src":"3137:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3165:9:54","nodeType":"YulIdentifier","src":"3165:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3147:17:54","nodeType":"YulIdentifier","src":"3147:17:54"},"nativeSrc":"3147:28:54","nodeType":"YulFunctionCall","src":"3147:28:54"},"variableNames":[{"name":"value0","nativeSrc":"3137:6:54","nodeType":"YulIdentifier","src":"3137:6:54"}]},{"nativeSrc":"3184:46:54","nodeType":"YulVariableDeclaration","src":"3184:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3215:9:54","nodeType":"YulIdentifier","src":"3215:9:54"},{"kind":"number","nativeSrc":"3226:2:54","nodeType":"YulLiteral","src":"3226:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3211:3:54","nodeType":"YulIdentifier","src":"3211:3:54"},"nativeSrc":"3211:18:54","nodeType":"YulFunctionCall","src":"3211:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"3198:12:54","nodeType":"YulIdentifier","src":"3198:12:54"},"nativeSrc":"3198:32:54","nodeType":"YulFunctionCall","src":"3198:32:54"},"variables":[{"name":"offset","nativeSrc":"3188:6:54","nodeType":"YulTypedName","src":"3188:6:54","type":""}]},{"body":{"nativeSrc":"3273:16:54","nodeType":"YulBlock","src":"3273:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3282:1:54","nodeType":"YulLiteral","src":"3282:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3285:1:54","nodeType":"YulLiteral","src":"3285:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3275:6:54","nodeType":"YulIdentifier","src":"3275:6:54"},"nativeSrc":"3275:12:54","nodeType":"YulFunctionCall","src":"3275:12:54"},"nativeSrc":"3275:12:54","nodeType":"YulExpressionStatement","src":"3275:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3245:6:54","nodeType":"YulIdentifier","src":"3245:6:54"},{"kind":"number","nativeSrc":"3253:18:54","nodeType":"YulLiteral","src":"3253:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3242:2:54","nodeType":"YulIdentifier","src":"3242:2:54"},"nativeSrc":"3242:30:54","nodeType":"YulFunctionCall","src":"3242:30:54"},"nativeSrc":"3239:50:54","nodeType":"YulIf","src":"3239:50:54"},{"nativeSrc":"3298:84:54","nodeType":"YulVariableDeclaration","src":"3298:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3354:9:54","nodeType":"YulIdentifier","src":"3354:9:54"},{"name":"offset","nativeSrc":"3365:6:54","nodeType":"YulIdentifier","src":"3365:6:54"}],"functionName":{"name":"add","nativeSrc":"3350:3:54","nodeType":"YulIdentifier","src":"3350:3:54"},"nativeSrc":"3350:22:54","nodeType":"YulFunctionCall","src":"3350:22:54"},{"name":"dataEnd","nativeSrc":"3374:7:54","nodeType":"YulIdentifier","src":"3374:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3324:25:54","nodeType":"YulIdentifier","src":"3324:25:54"},"nativeSrc":"3324:58:54","nodeType":"YulFunctionCall","src":"3324:58:54"},"variables":[{"name":"value1_1","nativeSrc":"3302:8:54","nodeType":"YulTypedName","src":"3302:8:54","type":""},{"name":"value2_1","nativeSrc":"3312:8:54","nodeType":"YulTypedName","src":"3312:8:54","type":""}]},{"nativeSrc":"3391:18:54","nodeType":"YulAssignment","src":"3391:18:54","value":{"name":"value1_1","nativeSrc":"3401:8:54","nodeType":"YulIdentifier","src":"3401:8:54"},"variableNames":[{"name":"value1","nativeSrc":"3391:6:54","nodeType":"YulIdentifier","src":"3391:6:54"}]},{"nativeSrc":"3418:18:54","nodeType":"YulAssignment","src":"3418:18:54","value":{"name":"value2_1","nativeSrc":"3428:8:54","nodeType":"YulIdentifier","src":"3428:8:54"},"variableNames":[{"name":"value2","nativeSrc":"3418:6:54","nodeType":"YulIdentifier","src":"3418:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"2961:481:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3016:9:54","nodeType":"YulTypedName","src":"3016:9:54","type":""},{"name":"dataEnd","nativeSrc":"3027:7:54","nodeType":"YulTypedName","src":"3027:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3039:6:54","nodeType":"YulTypedName","src":"3039:6:54","type":""},{"name":"value1","nativeSrc":"3047:6:54","nodeType":"YulTypedName","src":"3047:6:54","type":""},{"name":"value2","nativeSrc":"3055:6:54","nodeType":"YulTypedName","src":"3055:6:54","type":""}],"src":"2961:481:54"},{"body":{"nativeSrc":"3542:92:54","nodeType":"YulBlock","src":"3542:92:54","statements":[{"nativeSrc":"3552:26:54","nodeType":"YulAssignment","src":"3552:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3564:9:54","nodeType":"YulIdentifier","src":"3564:9:54"},{"kind":"number","nativeSrc":"3575:2:54","nodeType":"YulLiteral","src":"3575:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3560:3:54","nodeType":"YulIdentifier","src":"3560:3:54"},"nativeSrc":"3560:18:54","nodeType":"YulFunctionCall","src":"3560:18:54"},"variableNames":[{"name":"tail","nativeSrc":"3552:4:54","nodeType":"YulIdentifier","src":"3552:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3594:9:54","nodeType":"YulIdentifier","src":"3594:9:54"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3619:6:54","nodeType":"YulIdentifier","src":"3619:6:54"}],"functionName":{"name":"iszero","nativeSrc":"3612:6:54","nodeType":"YulIdentifier","src":"3612:6:54"},"nativeSrc":"3612:14:54","nodeType":"YulFunctionCall","src":"3612:14:54"}],"functionName":{"name":"iszero","nativeSrc":"3605:6:54","nodeType":"YulIdentifier","src":"3605:6:54"},"nativeSrc":"3605:22:54","nodeType":"YulFunctionCall","src":"3605:22:54"}],"functionName":{"name":"mstore","nativeSrc":"3587:6:54","nodeType":"YulIdentifier","src":"3587:6:54"},"nativeSrc":"3587:41:54","nodeType":"YulFunctionCall","src":"3587:41:54"},"nativeSrc":"3587:41:54","nodeType":"YulExpressionStatement","src":"3587:41:54"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3447:187:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3511:9:54","nodeType":"YulTypedName","src":"3511:9:54","type":""},{"name":"value0","nativeSrc":"3522:6:54","nodeType":"YulTypedName","src":"3522:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3533:4:54","nodeType":"YulTypedName","src":"3533:4:54","type":""}],"src":"3447:187:54"},{"body":{"nativeSrc":"3671:152:54","nodeType":"YulBlock","src":"3671:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3688:1:54","nodeType":"YulLiteral","src":"3688:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3691:77:54","nodeType":"YulLiteral","src":"3691:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3681:6:54","nodeType":"YulIdentifier","src":"3681:6:54"},"nativeSrc":"3681:88:54","nodeType":"YulFunctionCall","src":"3681:88:54"},"nativeSrc":"3681:88:54","nodeType":"YulExpressionStatement","src":"3681:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3785:1:54","nodeType":"YulLiteral","src":"3785:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"3788:4:54","nodeType":"YulLiteral","src":"3788:4:54","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"3778:6:54","nodeType":"YulIdentifier","src":"3778:6:54"},"nativeSrc":"3778:15:54","nodeType":"YulFunctionCall","src":"3778:15:54"},"nativeSrc":"3778:15:54","nodeType":"YulExpressionStatement","src":"3778:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3809:1:54","nodeType":"YulLiteral","src":"3809:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3812:4:54","nodeType":"YulLiteral","src":"3812:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3802:6:54","nodeType":"YulIdentifier","src":"3802:6:54"},"nativeSrc":"3802:15:54","nodeType":"YulFunctionCall","src":"3802:15:54"},"nativeSrc":"3802:15:54","nodeType":"YulExpressionStatement","src":"3802:15:54"}]},"name":"panic_error_0x21","nativeSrc":"3639:184:54","nodeType":"YulFunctionDefinition","src":"3639:184:54"},{"body":{"nativeSrc":"3945:286:54","nodeType":"YulBlock","src":"3945:286:54","statements":[{"nativeSrc":"3955:26:54","nodeType":"YulAssignment","src":"3955:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3967:9:54","nodeType":"YulIdentifier","src":"3967:9:54"},{"kind":"number","nativeSrc":"3978:2:54","nodeType":"YulLiteral","src":"3978:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3963:3:54","nodeType":"YulIdentifier","src":"3963:3:54"},"nativeSrc":"3963:18:54","nodeType":"YulFunctionCall","src":"3963:18:54"},"variableNames":[{"name":"tail","nativeSrc":"3955:4:54","nodeType":"YulIdentifier","src":"3955:4:54"}]},{"body":{"nativeSrc":"4023:168:54","nodeType":"YulBlock","src":"4023:168:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4044:1:54","nodeType":"YulLiteral","src":"4044:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4047:77:54","nodeType":"YulLiteral","src":"4047:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4037:6:54","nodeType":"YulIdentifier","src":"4037:6:54"},"nativeSrc":"4037:88:54","nodeType":"YulFunctionCall","src":"4037:88:54"},"nativeSrc":"4037:88:54","nodeType":"YulExpressionStatement","src":"4037:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4145:1:54","nodeType":"YulLiteral","src":"4145:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"4148:4:54","nodeType":"YulLiteral","src":"4148:4:54","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"4138:6:54","nodeType":"YulIdentifier","src":"4138:6:54"},"nativeSrc":"4138:15:54","nodeType":"YulFunctionCall","src":"4138:15:54"},"nativeSrc":"4138:15:54","nodeType":"YulExpressionStatement","src":"4138:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4173:1:54","nodeType":"YulLiteral","src":"4173:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4176:4:54","nodeType":"YulLiteral","src":"4176:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4166:6:54","nodeType":"YulIdentifier","src":"4166:6:54"},"nativeSrc":"4166:15:54","nodeType":"YulFunctionCall","src":"4166:15:54"},"nativeSrc":"4166:15:54","nodeType":"YulExpressionStatement","src":"4166:15:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4003:6:54","nodeType":"YulIdentifier","src":"4003:6:54"},{"kind":"number","nativeSrc":"4011:1:54","nodeType":"YulLiteral","src":"4011:1:54","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"4000:2:54","nodeType":"YulIdentifier","src":"4000:2:54"},"nativeSrc":"4000:13:54","nodeType":"YulFunctionCall","src":"4000:13:54"}],"functionName":{"name":"iszero","nativeSrc":"3993:6:54","nodeType":"YulIdentifier","src":"3993:6:54"},"nativeSrc":"3993:21:54","nodeType":"YulFunctionCall","src":"3993:21:54"},"nativeSrc":"3990:201:54","nodeType":"YulIf","src":"3990:201:54"},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4207:9:54","nodeType":"YulIdentifier","src":"4207:9:54"},{"name":"value0","nativeSrc":"4218:6:54","nodeType":"YulIdentifier","src":"4218:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4200:6:54","nodeType":"YulIdentifier","src":"4200:6:54"},"nativeSrc":"4200:25:54","nodeType":"YulFunctionCall","src":"4200:25:54"},"nativeSrc":"4200:25:54","nodeType":"YulExpressionStatement","src":"4200:25:54"}]},"name":"abi_encode_tuple_t_enum$_ProposalState_$6248__to_t_uint8__fromStack_reversed","nativeSrc":"3828:403:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3914:9:54","nodeType":"YulTypedName","src":"3914:9:54","type":""},{"name":"value0","nativeSrc":"3925:6:54","nodeType":"YulTypedName","src":"3925:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3936:4:54","nodeType":"YulTypedName","src":"3936:4:54","type":""}],"src":"3828:403:54"},{"body":{"nativeSrc":"4337:125:54","nodeType":"YulBlock","src":"4337:125:54","statements":[{"nativeSrc":"4347:26:54","nodeType":"YulAssignment","src":"4347:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4359:9:54","nodeType":"YulIdentifier","src":"4359:9:54"},{"kind":"number","nativeSrc":"4370:2:54","nodeType":"YulLiteral","src":"4370:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4355:3:54","nodeType":"YulIdentifier","src":"4355:3:54"},"nativeSrc":"4355:18:54","nodeType":"YulFunctionCall","src":"4355:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4347:4:54","nodeType":"YulIdentifier","src":"4347:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4389:9:54","nodeType":"YulIdentifier","src":"4389:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4404:6:54","nodeType":"YulIdentifier","src":"4404:6:54"},{"kind":"number","nativeSrc":"4412:42:54","nodeType":"YulLiteral","src":"4412:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4400:3:54","nodeType":"YulIdentifier","src":"4400:3:54"},"nativeSrc":"4400:55:54","nodeType":"YulFunctionCall","src":"4400:55:54"}],"functionName":{"name":"mstore","nativeSrc":"4382:6:54","nodeType":"YulIdentifier","src":"4382:6:54"},"nativeSrc":"4382:74:54","nodeType":"YulFunctionCall","src":"4382:74:54"},"nativeSrc":"4382:74:54","nodeType":"YulExpressionStatement","src":"4382:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4236:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4306:9:54","nodeType":"YulTypedName","src":"4306:9:54","type":""},{"name":"value0","nativeSrc":"4317:6:54","nodeType":"YulTypedName","src":"4317:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4328:4:54","nodeType":"YulTypedName","src":"4328:4:54","type":""}],"src":"4236:226:54"},{"body":{"nativeSrc":"4566:89:54","nodeType":"YulBlock","src":"4566:89:54","statements":[{"nativeSrc":"4576:26:54","nodeType":"YulAssignment","src":"4576:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4588:9:54","nodeType":"YulIdentifier","src":"4588:9:54"},{"kind":"number","nativeSrc":"4599:2:54","nodeType":"YulLiteral","src":"4599:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4584:3:54","nodeType":"YulIdentifier","src":"4584:3:54"},"nativeSrc":"4584:18:54","nodeType":"YulFunctionCall","src":"4584:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4576:4:54","nodeType":"YulIdentifier","src":"4576:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4618:9:54","nodeType":"YulIdentifier","src":"4618:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4633:6:54","nodeType":"YulIdentifier","src":"4633:6:54"},{"kind":"number","nativeSrc":"4641:6:54","nodeType":"YulLiteral","src":"4641:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"4629:3:54","nodeType":"YulIdentifier","src":"4629:3:54"},"nativeSrc":"4629:19:54","nodeType":"YulFunctionCall","src":"4629:19:54"}],"functionName":{"name":"mstore","nativeSrc":"4611:6:54","nodeType":"YulIdentifier","src":"4611:6:54"},"nativeSrc":"4611:38:54","nodeType":"YulFunctionCall","src":"4611:38:54"},"nativeSrc":"4611:38:54","nodeType":"YulExpressionStatement","src":"4611:38:54"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"4467:188:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4535:9:54","nodeType":"YulTypedName","src":"4535:9:54","type":""},{"name":"value0","nativeSrc":"4546:6:54","nodeType":"YulTypedName","src":"4546:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4557:4:54","nodeType":"YulTypedName","src":"4557:4:54","type":""}],"src":"4467:188:54"},{"body":{"nativeSrc":"4692:152:54","nodeType":"YulBlock","src":"4692:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4709:1:54","nodeType":"YulLiteral","src":"4709:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4712:77:54","nodeType":"YulLiteral","src":"4712:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4702:6:54","nodeType":"YulIdentifier","src":"4702:6:54"},"nativeSrc":"4702:88:54","nodeType":"YulFunctionCall","src":"4702:88:54"},"nativeSrc":"4702:88:54","nodeType":"YulExpressionStatement","src":"4702:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4806:1:54","nodeType":"YulLiteral","src":"4806:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"4809:4:54","nodeType":"YulLiteral","src":"4809:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"4799:6:54","nodeType":"YulIdentifier","src":"4799:6:54"},"nativeSrc":"4799:15:54","nodeType":"YulFunctionCall","src":"4799:15:54"},"nativeSrc":"4799:15:54","nodeType":"YulExpressionStatement","src":"4799:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4830:1:54","nodeType":"YulLiteral","src":"4830:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4833:4:54","nodeType":"YulLiteral","src":"4833:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4823:6:54","nodeType":"YulIdentifier","src":"4823:6:54"},"nativeSrc":"4823:15:54","nodeType":"YulFunctionCall","src":"4823:15:54"},"nativeSrc":"4823:15:54","nodeType":"YulExpressionStatement","src":"4823:15:54"}]},"name":"panic_error_0x41","nativeSrc":"4660:184:54","nodeType":"YulFunctionDefinition","src":"4660:184:54"},{"body":{"nativeSrc":"4894:289:54","nodeType":"YulBlock","src":"4894:289:54","statements":[{"nativeSrc":"4904:19:54","nodeType":"YulAssignment","src":"4904:19:54","value":{"arguments":[{"kind":"number","nativeSrc":"4920:2:54","nodeType":"YulLiteral","src":"4920:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"4914:5:54","nodeType":"YulIdentifier","src":"4914:5:54"},"nativeSrc":"4914:9:54","nodeType":"YulFunctionCall","src":"4914:9:54"},"variableNames":[{"name":"memPtr","nativeSrc":"4904:6:54","nodeType":"YulIdentifier","src":"4904:6:54"}]},{"nativeSrc":"4932:117:54","nodeType":"YulVariableDeclaration","src":"4932:117:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"4954:6:54","nodeType":"YulIdentifier","src":"4954:6:54"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"4970:4:54","nodeType":"YulIdentifier","src":"4970:4:54"},{"kind":"number","nativeSrc":"4976:2:54","nodeType":"YulLiteral","src":"4976:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4966:3:54","nodeType":"YulIdentifier","src":"4966:3:54"},"nativeSrc":"4966:13:54","nodeType":"YulFunctionCall","src":"4966:13:54"},{"kind":"number","nativeSrc":"4981:66:54","nodeType":"YulLiteral","src":"4981:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4962:3:54","nodeType":"YulIdentifier","src":"4962:3:54"},"nativeSrc":"4962:86:54","nodeType":"YulFunctionCall","src":"4962:86:54"}],"functionName":{"name":"add","nativeSrc":"4950:3:54","nodeType":"YulIdentifier","src":"4950:3:54"},"nativeSrc":"4950:99:54","nodeType":"YulFunctionCall","src":"4950:99:54"},"variables":[{"name":"newFreePtr","nativeSrc":"4936:10:54","nodeType":"YulTypedName","src":"4936:10:54","type":""}]},{"body":{"nativeSrc":"5124:22:54","nodeType":"YulBlock","src":"5124:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5126:16:54","nodeType":"YulIdentifier","src":"5126:16:54"},"nativeSrc":"5126:18:54","nodeType":"YulFunctionCall","src":"5126:18:54"},"nativeSrc":"5126:18:54","nodeType":"YulExpressionStatement","src":"5126:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5067:10:54","nodeType":"YulIdentifier","src":"5067:10:54"},{"kind":"number","nativeSrc":"5079:18:54","nodeType":"YulLiteral","src":"5079:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5064:2:54","nodeType":"YulIdentifier","src":"5064:2:54"},"nativeSrc":"5064:34:54","nodeType":"YulFunctionCall","src":"5064:34:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5103:10:54","nodeType":"YulIdentifier","src":"5103:10:54"},{"name":"memPtr","nativeSrc":"5115:6:54","nodeType":"YulIdentifier","src":"5115:6:54"}],"functionName":{"name":"lt","nativeSrc":"5100:2:54","nodeType":"YulIdentifier","src":"5100:2:54"},"nativeSrc":"5100:22:54","nodeType":"YulFunctionCall","src":"5100:22:54"}],"functionName":{"name":"or","nativeSrc":"5061:2:54","nodeType":"YulIdentifier","src":"5061:2:54"},"nativeSrc":"5061:62:54","nodeType":"YulFunctionCall","src":"5061:62:54"},"nativeSrc":"5058:88:54","nodeType":"YulIf","src":"5058:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5162:2:54","nodeType":"YulLiteral","src":"5162:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5166:10:54","nodeType":"YulIdentifier","src":"5166:10:54"}],"functionName":{"name":"mstore","nativeSrc":"5155:6:54","nodeType":"YulIdentifier","src":"5155:6:54"},"nativeSrc":"5155:22:54","nodeType":"YulFunctionCall","src":"5155:22:54"},"nativeSrc":"5155:22:54","nodeType":"YulExpressionStatement","src":"5155:22:54"}]},"name":"allocate_memory","nativeSrc":"4849:334:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"4874:4:54","nodeType":"YulTypedName","src":"4874:4:54","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"4883:6:54","nodeType":"YulTypedName","src":"4883:6:54","type":""}],"src":"4849:334:54"},{"body":{"nativeSrc":"5245:188:54","nodeType":"YulBlock","src":"5245:188:54","statements":[{"body":{"nativeSrc":"5289:22:54","nodeType":"YulBlock","src":"5289:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5291:16:54","nodeType":"YulIdentifier","src":"5291:16:54"},"nativeSrc":"5291:18:54","nodeType":"YulFunctionCall","src":"5291:18:54"},"nativeSrc":"5291:18:54","nodeType":"YulExpressionStatement","src":"5291:18:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5261:6:54","nodeType":"YulIdentifier","src":"5261:6:54"},{"kind":"number","nativeSrc":"5269:18:54","nodeType":"YulLiteral","src":"5269:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5258:2:54","nodeType":"YulIdentifier","src":"5258:2:54"},"nativeSrc":"5258:30:54","nodeType":"YulFunctionCall","src":"5258:30:54"},"nativeSrc":"5255:56:54","nodeType":"YulIf","src":"5255:56:54"},{"nativeSrc":"5320:107:54","nodeType":"YulAssignment","src":"5320:107:54","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5340:6:54","nodeType":"YulIdentifier","src":"5340:6:54"},{"kind":"number","nativeSrc":"5348:2:54","nodeType":"YulLiteral","src":"5348:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5336:3:54","nodeType":"YulIdentifier","src":"5336:3:54"},"nativeSrc":"5336:15:54","nodeType":"YulFunctionCall","src":"5336:15:54"},{"kind":"number","nativeSrc":"5353:66:54","nodeType":"YulLiteral","src":"5353:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"5332:3:54","nodeType":"YulIdentifier","src":"5332:3:54"},"nativeSrc":"5332:88:54","nodeType":"YulFunctionCall","src":"5332:88:54"},{"kind":"number","nativeSrc":"5422:4:54","nodeType":"YulLiteral","src":"5422:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5328:3:54","nodeType":"YulIdentifier","src":"5328:3:54"},"nativeSrc":"5328:99:54","nodeType":"YulFunctionCall","src":"5328:99:54"},"variableNames":[{"name":"size","nativeSrc":"5320:4:54","nodeType":"YulIdentifier","src":"5320:4:54"}]}]},"name":"array_allocation_size_bytes","nativeSrc":"5188:245:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"5225:6:54","nodeType":"YulTypedName","src":"5225:6:54","type":""}],"returnVariables":[{"name":"size","nativeSrc":"5236:4:54","nodeType":"YulTypedName","src":"5236:4:54","type":""}],"src":"5188:245:54"},{"body":{"nativeSrc":"5549:704:54","nodeType":"YulBlock","src":"5549:704:54","statements":[{"body":{"nativeSrc":"5595:16:54","nodeType":"YulBlock","src":"5595:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5604:1:54","nodeType":"YulLiteral","src":"5604:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5607:1:54","nodeType":"YulLiteral","src":"5607:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5597:6:54","nodeType":"YulIdentifier","src":"5597:6:54"},"nativeSrc":"5597:12:54","nodeType":"YulFunctionCall","src":"5597:12:54"},"nativeSrc":"5597:12:54","nodeType":"YulExpressionStatement","src":"5597:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5570:7:54","nodeType":"YulIdentifier","src":"5570:7:54"},{"name":"headStart","nativeSrc":"5579:9:54","nodeType":"YulIdentifier","src":"5579:9:54"}],"functionName":{"name":"sub","nativeSrc":"5566:3:54","nodeType":"YulIdentifier","src":"5566:3:54"},"nativeSrc":"5566:23:54","nodeType":"YulFunctionCall","src":"5566:23:54"},{"kind":"number","nativeSrc":"5591:2:54","nodeType":"YulLiteral","src":"5591:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5562:3:54","nodeType":"YulIdentifier","src":"5562:3:54"},"nativeSrc":"5562:32:54","nodeType":"YulFunctionCall","src":"5562:32:54"},"nativeSrc":"5559:52:54","nodeType":"YulIf","src":"5559:52:54"},{"nativeSrc":"5620:38:54","nodeType":"YulAssignment","src":"5620:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5648:9:54","nodeType":"YulIdentifier","src":"5648:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"5630:17:54","nodeType":"YulIdentifier","src":"5630:17:54"},"nativeSrc":"5630:28:54","nodeType":"YulFunctionCall","src":"5630:28:54"},"variableNames":[{"name":"value0","nativeSrc":"5620:6:54","nodeType":"YulIdentifier","src":"5620:6:54"}]},{"nativeSrc":"5667:46:54","nodeType":"YulVariableDeclaration","src":"5667:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5698:9:54","nodeType":"YulIdentifier","src":"5698:9:54"},{"kind":"number","nativeSrc":"5709:2:54","nodeType":"YulLiteral","src":"5709:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5694:3:54","nodeType":"YulIdentifier","src":"5694:3:54"},"nativeSrc":"5694:18:54","nodeType":"YulFunctionCall","src":"5694:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"5681:12:54","nodeType":"YulIdentifier","src":"5681:12:54"},"nativeSrc":"5681:32:54","nodeType":"YulFunctionCall","src":"5681:32:54"},"variables":[{"name":"offset","nativeSrc":"5671:6:54","nodeType":"YulTypedName","src":"5671:6:54","type":""}]},{"body":{"nativeSrc":"5756:16:54","nodeType":"YulBlock","src":"5756:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5765:1:54","nodeType":"YulLiteral","src":"5765:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5768:1:54","nodeType":"YulLiteral","src":"5768:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5758:6:54","nodeType":"YulIdentifier","src":"5758:6:54"},"nativeSrc":"5758:12:54","nodeType":"YulFunctionCall","src":"5758:12:54"},"nativeSrc":"5758:12:54","nodeType":"YulExpressionStatement","src":"5758:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5728:6:54","nodeType":"YulIdentifier","src":"5728:6:54"},{"kind":"number","nativeSrc":"5736:18:54","nodeType":"YulLiteral","src":"5736:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5725:2:54","nodeType":"YulIdentifier","src":"5725:2:54"},"nativeSrc":"5725:30:54","nodeType":"YulFunctionCall","src":"5725:30:54"},"nativeSrc":"5722:50:54","nodeType":"YulIf","src":"5722:50:54"},{"nativeSrc":"5781:32:54","nodeType":"YulVariableDeclaration","src":"5781:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5795:9:54","nodeType":"YulIdentifier","src":"5795:9:54"},{"name":"offset","nativeSrc":"5806:6:54","nodeType":"YulIdentifier","src":"5806:6:54"}],"functionName":{"name":"add","nativeSrc":"5791:3:54","nodeType":"YulIdentifier","src":"5791:3:54"},"nativeSrc":"5791:22:54","nodeType":"YulFunctionCall","src":"5791:22:54"},"variables":[{"name":"_1","nativeSrc":"5785:2:54","nodeType":"YulTypedName","src":"5785:2:54","type":""}]},{"body":{"nativeSrc":"5861:16:54","nodeType":"YulBlock","src":"5861:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5870:1:54","nodeType":"YulLiteral","src":"5870:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5873:1:54","nodeType":"YulLiteral","src":"5873:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5863:6:54","nodeType":"YulIdentifier","src":"5863:6:54"},"nativeSrc":"5863:12:54","nodeType":"YulFunctionCall","src":"5863:12:54"},"nativeSrc":"5863:12:54","nodeType":"YulExpressionStatement","src":"5863:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5840:2:54","nodeType":"YulIdentifier","src":"5840:2:54"},{"kind":"number","nativeSrc":"5844:4:54","nodeType":"YulLiteral","src":"5844:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5836:3:54","nodeType":"YulIdentifier","src":"5836:3:54"},"nativeSrc":"5836:13:54","nodeType":"YulFunctionCall","src":"5836:13:54"},{"name":"dataEnd","nativeSrc":"5851:7:54","nodeType":"YulIdentifier","src":"5851:7:54"}],"functionName":{"name":"slt","nativeSrc":"5832:3:54","nodeType":"YulIdentifier","src":"5832:3:54"},"nativeSrc":"5832:27:54","nodeType":"YulFunctionCall","src":"5832:27:54"}],"functionName":{"name":"iszero","nativeSrc":"5825:6:54","nodeType":"YulIdentifier","src":"5825:6:54"},"nativeSrc":"5825:35:54","nodeType":"YulFunctionCall","src":"5825:35:54"},"nativeSrc":"5822:55:54","nodeType":"YulIf","src":"5822:55:54"},{"nativeSrc":"5886:26:54","nodeType":"YulVariableDeclaration","src":"5886:26:54","value":{"arguments":[{"name":"_1","nativeSrc":"5909:2:54","nodeType":"YulIdentifier","src":"5909:2:54"}],"functionName":{"name":"calldataload","nativeSrc":"5896:12:54","nodeType":"YulIdentifier","src":"5896:12:54"},"nativeSrc":"5896:16:54","nodeType":"YulFunctionCall","src":"5896:16:54"},"variables":[{"name":"_2","nativeSrc":"5890:2:54","nodeType":"YulTypedName","src":"5890:2:54","type":""}]},{"nativeSrc":"5921:61:54","nodeType":"YulVariableDeclaration","src":"5921:61:54","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"5978:2:54","nodeType":"YulIdentifier","src":"5978:2:54"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"5950:27:54","nodeType":"YulIdentifier","src":"5950:27:54"},"nativeSrc":"5950:31:54","nodeType":"YulFunctionCall","src":"5950:31:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"5934:15:54","nodeType":"YulIdentifier","src":"5934:15:54"},"nativeSrc":"5934:48:54","nodeType":"YulFunctionCall","src":"5934:48:54"},"variables":[{"name":"array","nativeSrc":"5925:5:54","nodeType":"YulTypedName","src":"5925:5:54","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"5998:5:54","nodeType":"YulIdentifier","src":"5998:5:54"},{"name":"_2","nativeSrc":"6005:2:54","nodeType":"YulIdentifier","src":"6005:2:54"}],"functionName":{"name":"mstore","nativeSrc":"5991:6:54","nodeType":"YulIdentifier","src":"5991:6:54"},"nativeSrc":"5991:17:54","nodeType":"YulFunctionCall","src":"5991:17:54"},"nativeSrc":"5991:17:54","nodeType":"YulExpressionStatement","src":"5991:17:54"},{"body":{"nativeSrc":"6054:16:54","nodeType":"YulBlock","src":"6054:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6063:1:54","nodeType":"YulLiteral","src":"6063:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6066:1:54","nodeType":"YulLiteral","src":"6066:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6056:6:54","nodeType":"YulIdentifier","src":"6056:6:54"},"nativeSrc":"6056:12:54","nodeType":"YulFunctionCall","src":"6056:12:54"},"nativeSrc":"6056:12:54","nodeType":"YulExpressionStatement","src":"6056:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"6031:2:54","nodeType":"YulIdentifier","src":"6031:2:54"},{"name":"_2","nativeSrc":"6035:2:54","nodeType":"YulIdentifier","src":"6035:2:54"}],"functionName":{"name":"add","nativeSrc":"6027:3:54","nodeType":"YulIdentifier","src":"6027:3:54"},"nativeSrc":"6027:11:54","nodeType":"YulFunctionCall","src":"6027:11:54"},{"kind":"number","nativeSrc":"6040:2:54","nodeType":"YulLiteral","src":"6040:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6023:3:54","nodeType":"YulIdentifier","src":"6023:3:54"},"nativeSrc":"6023:20:54","nodeType":"YulFunctionCall","src":"6023:20:54"},{"name":"dataEnd","nativeSrc":"6045:7:54","nodeType":"YulIdentifier","src":"6045:7:54"}],"functionName":{"name":"gt","nativeSrc":"6020:2:54","nodeType":"YulIdentifier","src":"6020:2:54"},"nativeSrc":"6020:33:54","nodeType":"YulFunctionCall","src":"6020:33:54"},"nativeSrc":"6017:53:54","nodeType":"YulIf","src":"6017:53:54"},{"expression":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"6096:5:54","nodeType":"YulIdentifier","src":"6096:5:54"},{"kind":"number","nativeSrc":"6103:2:54","nodeType":"YulLiteral","src":"6103:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6092:3:54","nodeType":"YulIdentifier","src":"6092:3:54"},"nativeSrc":"6092:14:54","nodeType":"YulFunctionCall","src":"6092:14:54"},{"arguments":[{"name":"_1","nativeSrc":"6112:2:54","nodeType":"YulIdentifier","src":"6112:2:54"},{"kind":"number","nativeSrc":"6116:2:54","nodeType":"YulLiteral","src":"6116:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6108:3:54","nodeType":"YulIdentifier","src":"6108:3:54"},"nativeSrc":"6108:11:54","nodeType":"YulFunctionCall","src":"6108:11:54"},{"name":"_2","nativeSrc":"6121:2:54","nodeType":"YulIdentifier","src":"6121:2:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"6079:12:54","nodeType":"YulIdentifier","src":"6079:12:54"},"nativeSrc":"6079:45:54","nodeType":"YulFunctionCall","src":"6079:45:54"},"nativeSrc":"6079:45:54","nodeType":"YulExpressionStatement","src":"6079:45:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nativeSrc":"6148:5:54","nodeType":"YulIdentifier","src":"6148:5:54"},{"name":"_2","nativeSrc":"6155:2:54","nodeType":"YulIdentifier","src":"6155:2:54"}],"functionName":{"name":"add","nativeSrc":"6144:3:54","nodeType":"YulIdentifier","src":"6144:3:54"},"nativeSrc":"6144:14:54","nodeType":"YulFunctionCall","src":"6144:14:54"},{"kind":"number","nativeSrc":"6160:2:54","nodeType":"YulLiteral","src":"6160:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6140:3:54","nodeType":"YulIdentifier","src":"6140:3:54"},"nativeSrc":"6140:23:54","nodeType":"YulFunctionCall","src":"6140:23:54"},{"kind":"number","nativeSrc":"6165:1:54","nodeType":"YulLiteral","src":"6165:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6133:6:54","nodeType":"YulIdentifier","src":"6133:6:54"},"nativeSrc":"6133:34:54","nodeType":"YulFunctionCall","src":"6133:34:54"},"nativeSrc":"6133:34:54","nodeType":"YulExpressionStatement","src":"6133:34:54"},{"nativeSrc":"6176:15:54","nodeType":"YulAssignment","src":"6176:15:54","value":{"name":"array","nativeSrc":"6186:5:54","nodeType":"YulIdentifier","src":"6186:5:54"},"variableNames":[{"name":"value1","nativeSrc":"6176:6:54","nodeType":"YulIdentifier","src":"6176:6:54"}]},{"nativeSrc":"6200:47:54","nodeType":"YulAssignment","src":"6200:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6232:9:54","nodeType":"YulIdentifier","src":"6232:9:54"},{"kind":"number","nativeSrc":"6243:2:54","nodeType":"YulLiteral","src":"6243:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6228:3:54","nodeType":"YulIdentifier","src":"6228:3:54"},"nativeSrc":"6228:18:54","nodeType":"YulFunctionCall","src":"6228:18:54"}],"functionName":{"name":"abi_decode_uint64","nativeSrc":"6210:17:54","nodeType":"YulIdentifier","src":"6210:17:54"},"nativeSrc":"6210:37:54","nodeType":"YulFunctionCall","src":"6210:37:54"},"variableNames":[{"name":"value2","nativeSrc":"6200:6:54","nodeType":"YulIdentifier","src":"6200:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nativeSrc":"5438:815:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5499:9:54","nodeType":"YulTypedName","src":"5499:9:54","type":""},{"name":"dataEnd","nativeSrc":"5510:7:54","nodeType":"YulTypedName","src":"5510:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5522:6:54","nodeType":"YulTypedName","src":"5522:6:54","type":""},{"name":"value1","nativeSrc":"5530:6:54","nodeType":"YulTypedName","src":"5530:6:54","type":""},{"name":"value2","nativeSrc":"5538:6:54","nodeType":"YulTypedName","src":"5538:6:54","type":""}],"src":"5438:815:54"},{"body":{"nativeSrc":"6359:76:54","nodeType":"YulBlock","src":"6359:76:54","statements":[{"nativeSrc":"6369:26:54","nodeType":"YulAssignment","src":"6369:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6381:9:54","nodeType":"YulIdentifier","src":"6381:9:54"},{"kind":"number","nativeSrc":"6392:2:54","nodeType":"YulLiteral","src":"6392:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6377:3:54","nodeType":"YulIdentifier","src":"6377:3:54"},"nativeSrc":"6377:18:54","nodeType":"YulFunctionCall","src":"6377:18:54"},"variableNames":[{"name":"tail","nativeSrc":"6369:4:54","nodeType":"YulIdentifier","src":"6369:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6411:9:54","nodeType":"YulIdentifier","src":"6411:9:54"},{"name":"value0","nativeSrc":"6422:6:54","nodeType":"YulIdentifier","src":"6422:6:54"}],"functionName":{"name":"mstore","nativeSrc":"6404:6:54","nodeType":"YulIdentifier","src":"6404:6:54"},"nativeSrc":"6404:25:54","nodeType":"YulFunctionCall","src":"6404:25:54"},"nativeSrc":"6404:25:54","nodeType":"YulExpressionStatement","src":"6404:25:54"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"6258:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6328:9:54","nodeType":"YulTypedName","src":"6328:9:54","type":""},{"name":"value0","nativeSrc":"6339:6:54","nodeType":"YulTypedName","src":"6339:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6350:4:54","nodeType":"YulTypedName","src":"6350:4:54","type":""}],"src":"6258:177:54"},{"body":{"nativeSrc":"6506:184:54","nodeType":"YulBlock","src":"6506:184:54","statements":[{"nativeSrc":"6516:10:54","nodeType":"YulVariableDeclaration","src":"6516:10:54","value":{"kind":"number","nativeSrc":"6525:1:54","nodeType":"YulLiteral","src":"6525:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"6520:1:54","nodeType":"YulTypedName","src":"6520:1:54","type":""}]},{"body":{"nativeSrc":"6585:63:54","nodeType":"YulBlock","src":"6585:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6610:3:54","nodeType":"YulIdentifier","src":"6610:3:54"},{"name":"i","nativeSrc":"6615:1:54","nodeType":"YulIdentifier","src":"6615:1:54"}],"functionName":{"name":"add","nativeSrc":"6606:3:54","nodeType":"YulIdentifier","src":"6606:3:54"},"nativeSrc":"6606:11:54","nodeType":"YulFunctionCall","src":"6606:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6629:3:54","nodeType":"YulIdentifier","src":"6629:3:54"},{"name":"i","nativeSrc":"6634:1:54","nodeType":"YulIdentifier","src":"6634:1:54"}],"functionName":{"name":"add","nativeSrc":"6625:3:54","nodeType":"YulIdentifier","src":"6625:3:54"},"nativeSrc":"6625:11:54","nodeType":"YulFunctionCall","src":"6625:11:54"}],"functionName":{"name":"mload","nativeSrc":"6619:5:54","nodeType":"YulIdentifier","src":"6619:5:54"},"nativeSrc":"6619:18:54","nodeType":"YulFunctionCall","src":"6619:18:54"}],"functionName":{"name":"mstore","nativeSrc":"6599:6:54","nodeType":"YulIdentifier","src":"6599:6:54"},"nativeSrc":"6599:39:54","nodeType":"YulFunctionCall","src":"6599:39:54"},"nativeSrc":"6599:39:54","nodeType":"YulExpressionStatement","src":"6599:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6546:1:54","nodeType":"YulIdentifier","src":"6546:1:54"},{"name":"length","nativeSrc":"6549:6:54","nodeType":"YulIdentifier","src":"6549:6:54"}],"functionName":{"name":"lt","nativeSrc":"6543:2:54","nodeType":"YulIdentifier","src":"6543:2:54"},"nativeSrc":"6543:13:54","nodeType":"YulFunctionCall","src":"6543:13:54"},"nativeSrc":"6535:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"6557:19:54","nodeType":"YulBlock","src":"6557:19:54","statements":[{"nativeSrc":"6559:15:54","nodeType":"YulAssignment","src":"6559:15:54","value":{"arguments":[{"name":"i","nativeSrc":"6568:1:54","nodeType":"YulIdentifier","src":"6568:1:54"},{"kind":"number","nativeSrc":"6571:2:54","nodeType":"YulLiteral","src":"6571:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6564:3:54","nodeType":"YulIdentifier","src":"6564:3:54"},"nativeSrc":"6564:10:54","nodeType":"YulFunctionCall","src":"6564:10:54"},"variableNames":[{"name":"i","nativeSrc":"6559:1:54","nodeType":"YulIdentifier","src":"6559:1:54"}]}]},"pre":{"nativeSrc":"6539:3:54","nodeType":"YulBlock","src":"6539:3:54","statements":[]},"src":"6535:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6668:3:54","nodeType":"YulIdentifier","src":"6668:3:54"},{"name":"length","nativeSrc":"6673:6:54","nodeType":"YulIdentifier","src":"6673:6:54"}],"functionName":{"name":"add","nativeSrc":"6664:3:54","nodeType":"YulIdentifier","src":"6664:3:54"},"nativeSrc":"6664:16:54","nodeType":"YulFunctionCall","src":"6664:16:54"},{"kind":"number","nativeSrc":"6682:1:54","nodeType":"YulLiteral","src":"6682:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6657:6:54","nodeType":"YulIdentifier","src":"6657:6:54"},"nativeSrc":"6657:27:54","nodeType":"YulFunctionCall","src":"6657:27:54"},"nativeSrc":"6657:27:54","nodeType":"YulExpressionStatement","src":"6657:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6440:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6484:3:54","nodeType":"YulTypedName","src":"6484:3:54","type":""},{"name":"dst","nativeSrc":"6489:3:54","nodeType":"YulTypedName","src":"6489:3:54","type":""},{"name":"length","nativeSrc":"6494:6:54","nodeType":"YulTypedName","src":"6494:6:54","type":""}],"src":"6440:250:54"},{"body":{"nativeSrc":"6744:280:54","nodeType":"YulBlock","src":"6744:280:54","statements":[{"nativeSrc":"6754:26:54","nodeType":"YulVariableDeclaration","src":"6754:26:54","value":{"arguments":[{"name":"value","nativeSrc":"6774:5:54","nodeType":"YulIdentifier","src":"6774:5:54"}],"functionName":{"name":"mload","nativeSrc":"6768:5:54","nodeType":"YulIdentifier","src":"6768:5:54"},"nativeSrc":"6768:12:54","nodeType":"YulFunctionCall","src":"6768:12:54"},"variables":[{"name":"length","nativeSrc":"6758:6:54","nodeType":"YulTypedName","src":"6758:6:54","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6796:3:54","nodeType":"YulIdentifier","src":"6796:3:54"},{"name":"length","nativeSrc":"6801:6:54","nodeType":"YulIdentifier","src":"6801:6:54"}],"functionName":{"name":"mstore","nativeSrc":"6789:6:54","nodeType":"YulIdentifier","src":"6789:6:54"},"nativeSrc":"6789:19:54","nodeType":"YulFunctionCall","src":"6789:19:54"},"nativeSrc":"6789:19:54","nodeType":"YulExpressionStatement","src":"6789:19:54"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6856:5:54","nodeType":"YulIdentifier","src":"6856:5:54"},{"kind":"number","nativeSrc":"6863:4:54","nodeType":"YulLiteral","src":"6863:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6852:3:54","nodeType":"YulIdentifier","src":"6852:3:54"},"nativeSrc":"6852:16:54","nodeType":"YulFunctionCall","src":"6852:16:54"},{"arguments":[{"name":"pos","nativeSrc":"6874:3:54","nodeType":"YulIdentifier","src":"6874:3:54"},{"kind":"number","nativeSrc":"6879:4:54","nodeType":"YulLiteral","src":"6879:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6870:3:54","nodeType":"YulIdentifier","src":"6870:3:54"},"nativeSrc":"6870:14:54","nodeType":"YulFunctionCall","src":"6870:14:54"},{"name":"length","nativeSrc":"6886:6:54","nodeType":"YulIdentifier","src":"6886:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6817:34:54","nodeType":"YulIdentifier","src":"6817:34:54"},"nativeSrc":"6817:76:54","nodeType":"YulFunctionCall","src":"6817:76:54"},"nativeSrc":"6817:76:54","nodeType":"YulExpressionStatement","src":"6817:76:54"},{"nativeSrc":"6902:116:54","nodeType":"YulAssignment","src":"6902:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6917:3:54","nodeType":"YulIdentifier","src":"6917:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6930:6:54","nodeType":"YulIdentifier","src":"6930:6:54"},{"kind":"number","nativeSrc":"6938:2:54","nodeType":"YulLiteral","src":"6938:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6926:3:54","nodeType":"YulIdentifier","src":"6926:3:54"},"nativeSrc":"6926:15:54","nodeType":"YulFunctionCall","src":"6926:15:54"},{"kind":"number","nativeSrc":"6943:66:54","nodeType":"YulLiteral","src":"6943:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"6922:3:54","nodeType":"YulIdentifier","src":"6922:3:54"},"nativeSrc":"6922:88:54","nodeType":"YulFunctionCall","src":"6922:88:54"}],"functionName":{"name":"add","nativeSrc":"6913:3:54","nodeType":"YulIdentifier","src":"6913:3:54"},"nativeSrc":"6913:98:54","nodeType":"YulFunctionCall","src":"6913:98:54"},{"kind":"number","nativeSrc":"7013:4:54","nodeType":"YulLiteral","src":"7013:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6909:3:54","nodeType":"YulIdentifier","src":"6909:3:54"},"nativeSrc":"6909:109:54","nodeType":"YulFunctionCall","src":"6909:109:54"},"variableNames":[{"name":"end","nativeSrc":"6902:3:54","nodeType":"YulIdentifier","src":"6902:3:54"}]}]},"name":"abi_encode_bytes","nativeSrc":"6695:329:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6721:5:54","nodeType":"YulTypedName","src":"6721:5:54","type":""},{"name":"pos","nativeSrc":"6728:3:54","nodeType":"YulTypedName","src":"6728:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6736:3:54","nodeType":"YulTypedName","src":"6736:3:54","type":""}],"src":"6695:329:54"},{"body":{"nativeSrc":"7148:98:54","nodeType":"YulBlock","src":"7148:98:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7165:9:54","nodeType":"YulIdentifier","src":"7165:9:54"},{"kind":"number","nativeSrc":"7176:2:54","nodeType":"YulLiteral","src":"7176:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7158:6:54","nodeType":"YulIdentifier","src":"7158:6:54"},"nativeSrc":"7158:21:54","nodeType":"YulFunctionCall","src":"7158:21:54"},"nativeSrc":"7158:21:54","nodeType":"YulExpressionStatement","src":"7158:21:54"},{"nativeSrc":"7188:52:54","nodeType":"YulAssignment","src":"7188:52:54","value":{"arguments":[{"name":"value0","nativeSrc":"7213:6:54","nodeType":"YulIdentifier","src":"7213:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"7225:9:54","nodeType":"YulIdentifier","src":"7225:9:54"},{"kind":"number","nativeSrc":"7236:2:54","nodeType":"YulLiteral","src":"7236:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7221:3:54","nodeType":"YulIdentifier","src":"7221:3:54"},"nativeSrc":"7221:18:54","nodeType":"YulFunctionCall","src":"7221:18:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"7196:16:54","nodeType":"YulIdentifier","src":"7196:16:54"},"nativeSrc":"7196:44:54","nodeType":"YulFunctionCall","src":"7196:44:54"},"variableNames":[{"name":"tail","nativeSrc":"7188:4:54","nodeType":"YulIdentifier","src":"7188:4:54"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7029:217:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7117:9:54","nodeType":"YulTypedName","src":"7117:9:54","type":""},{"name":"value0","nativeSrc":"7128:6:54","nodeType":"YulTypedName","src":"7128:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7139:4:54","nodeType":"YulTypedName","src":"7139:4:54","type":""}],"src":"7029:217:54"},{"body":{"nativeSrc":"7296:109:54","nodeType":"YulBlock","src":"7296:109:54","statements":[{"body":{"nativeSrc":"7383:16:54","nodeType":"YulBlock","src":"7383:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7392:1:54","nodeType":"YulLiteral","src":"7392:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7395:1:54","nodeType":"YulLiteral","src":"7395:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7385:6:54","nodeType":"YulIdentifier","src":"7385:6:54"},"nativeSrc":"7385:12:54","nodeType":"YulFunctionCall","src":"7385:12:54"},"nativeSrc":"7385:12:54","nodeType":"YulExpressionStatement","src":"7385:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7319:5:54","nodeType":"YulIdentifier","src":"7319:5:54"},{"arguments":[{"name":"value","nativeSrc":"7330:5:54","nodeType":"YulIdentifier","src":"7330:5:54"},{"kind":"number","nativeSrc":"7337:42:54","nodeType":"YulLiteral","src":"7337:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"7326:3:54","nodeType":"YulIdentifier","src":"7326:3:54"},"nativeSrc":"7326:54:54","nodeType":"YulFunctionCall","src":"7326:54:54"}],"functionName":{"name":"eq","nativeSrc":"7316:2:54","nodeType":"YulIdentifier","src":"7316:2:54"},"nativeSrc":"7316:65:54","nodeType":"YulFunctionCall","src":"7316:65:54"}],"functionName":{"name":"iszero","nativeSrc":"7309:6:54","nodeType":"YulIdentifier","src":"7309:6:54"},"nativeSrc":"7309:73:54","nodeType":"YulFunctionCall","src":"7309:73:54"},"nativeSrc":"7306:93:54","nodeType":"YulIf","src":"7306:93:54"}]},"name":"validator_revert_address","nativeSrc":"7251:154:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7285:5:54","nodeType":"YulTypedName","src":"7285:5:54","type":""}],"src":"7251:154:54"},{"body":{"nativeSrc":"7480:177:54","nodeType":"YulBlock","src":"7480:177:54","statements":[{"body":{"nativeSrc":"7526:16:54","nodeType":"YulBlock","src":"7526:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7535:1:54","nodeType":"YulLiteral","src":"7535:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7538:1:54","nodeType":"YulLiteral","src":"7538:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7528:6:54","nodeType":"YulIdentifier","src":"7528:6:54"},"nativeSrc":"7528:12:54","nodeType":"YulFunctionCall","src":"7528:12:54"},"nativeSrc":"7528:12:54","nodeType":"YulExpressionStatement","src":"7528:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7501:7:54","nodeType":"YulIdentifier","src":"7501:7:54"},{"name":"headStart","nativeSrc":"7510:9:54","nodeType":"YulIdentifier","src":"7510:9:54"}],"functionName":{"name":"sub","nativeSrc":"7497:3:54","nodeType":"YulIdentifier","src":"7497:3:54"},"nativeSrc":"7497:23:54","nodeType":"YulFunctionCall","src":"7497:23:54"},{"kind":"number","nativeSrc":"7522:2:54","nodeType":"YulLiteral","src":"7522:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7493:3:54","nodeType":"YulIdentifier","src":"7493:3:54"},"nativeSrc":"7493:32:54","nodeType":"YulFunctionCall","src":"7493:32:54"},"nativeSrc":"7490:52:54","nodeType":"YulIf","src":"7490:52:54"},{"nativeSrc":"7551:36:54","nodeType":"YulVariableDeclaration","src":"7551:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"7577:9:54","nodeType":"YulIdentifier","src":"7577:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"7564:12:54","nodeType":"YulIdentifier","src":"7564:12:54"},"nativeSrc":"7564:23:54","nodeType":"YulFunctionCall","src":"7564:23:54"},"variables":[{"name":"value","nativeSrc":"7555:5:54","nodeType":"YulTypedName","src":"7555:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7621:5:54","nodeType":"YulIdentifier","src":"7621:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"7596:24:54","nodeType":"YulIdentifier","src":"7596:24:54"},"nativeSrc":"7596:31:54","nodeType":"YulFunctionCall","src":"7596:31:54"},"nativeSrc":"7596:31:54","nodeType":"YulExpressionStatement","src":"7596:31:54"},{"nativeSrc":"7636:15:54","nodeType":"YulAssignment","src":"7636:15:54","value":{"name":"value","nativeSrc":"7646:5:54","nodeType":"YulIdentifier","src":"7646:5:54"},"variableNames":[{"name":"value0","nativeSrc":"7636:6:54","nodeType":"YulIdentifier","src":"7636:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7410:247:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7446:9:54","nodeType":"YulTypedName","src":"7446:9:54","type":""},{"name":"dataEnd","nativeSrc":"7457:7:54","nodeType":"YulTypedName","src":"7457:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7469:6:54","nodeType":"YulTypedName","src":"7469:6:54","type":""}],"src":"7410:247:54"},{"body":{"nativeSrc":"7747:171:54","nodeType":"YulBlock","src":"7747:171:54","statements":[{"body":{"nativeSrc":"7793:16:54","nodeType":"YulBlock","src":"7793:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7802:1:54","nodeType":"YulLiteral","src":"7802:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7805:1:54","nodeType":"YulLiteral","src":"7805:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7795:6:54","nodeType":"YulIdentifier","src":"7795:6:54"},"nativeSrc":"7795:12:54","nodeType":"YulFunctionCall","src":"7795:12:54"},"nativeSrc":"7795:12:54","nodeType":"YulExpressionStatement","src":"7795:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7768:7:54","nodeType":"YulIdentifier","src":"7768:7:54"},{"name":"headStart","nativeSrc":"7777:9:54","nodeType":"YulIdentifier","src":"7777:9:54"}],"functionName":{"name":"sub","nativeSrc":"7764:3:54","nodeType":"YulIdentifier","src":"7764:3:54"},"nativeSrc":"7764:23:54","nodeType":"YulFunctionCall","src":"7764:23:54"},{"kind":"number","nativeSrc":"7789:2:54","nodeType":"YulLiteral","src":"7789:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7760:3:54","nodeType":"YulIdentifier","src":"7760:3:54"},"nativeSrc":"7760:32:54","nodeType":"YulFunctionCall","src":"7760:32:54"},"nativeSrc":"7757:52:54","nodeType":"YulIf","src":"7757:52:54"},{"nativeSrc":"7818:38:54","nodeType":"YulAssignment","src":"7818:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"7846:9:54","nodeType":"YulIdentifier","src":"7846:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7828:17:54","nodeType":"YulIdentifier","src":"7828:17:54"},"nativeSrc":"7828:28:54","nodeType":"YulFunctionCall","src":"7828:28:54"},"variableNames":[{"name":"value0","nativeSrc":"7818:6:54","nodeType":"YulIdentifier","src":"7818:6:54"}]},{"nativeSrc":"7865:47:54","nodeType":"YulAssignment","src":"7865:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7897:9:54","nodeType":"YulIdentifier","src":"7897:9:54"},{"kind":"number","nativeSrc":"7908:2:54","nodeType":"YulLiteral","src":"7908:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7893:3:54","nodeType":"YulIdentifier","src":"7893:3:54"},"nativeSrc":"7893:18:54","nodeType":"YulFunctionCall","src":"7893:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7875:17:54","nodeType":"YulIdentifier","src":"7875:17:54"},"nativeSrc":"7875:37:54","nodeType":"YulFunctionCall","src":"7875:37:54"},"variableNames":[{"name":"value1","nativeSrc":"7865:6:54","nodeType":"YulIdentifier","src":"7865:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nativeSrc":"7662:256:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7705:9:54","nodeType":"YulTypedName","src":"7705:9:54","type":""},{"name":"dataEnd","nativeSrc":"7716:7:54","nodeType":"YulTypedName","src":"7716:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7728:6:54","nodeType":"YulTypedName","src":"7728:6:54","type":""},{"name":"value1","nativeSrc":"7736:6:54","nodeType":"YulTypedName","src":"7736:6:54","type":""}],"src":"7662:256:54"},{"body":{"nativeSrc":"8051:125:54","nodeType":"YulBlock","src":"8051:125:54","statements":[{"nativeSrc":"8061:26:54","nodeType":"YulAssignment","src":"8061:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8073:9:54","nodeType":"YulIdentifier","src":"8073:9:54"},{"kind":"number","nativeSrc":"8084:2:54","nodeType":"YulLiteral","src":"8084:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8069:3:54","nodeType":"YulIdentifier","src":"8069:3:54"},"nativeSrc":"8069:18:54","nodeType":"YulFunctionCall","src":"8069:18:54"},"variableNames":[{"name":"tail","nativeSrc":"8061:4:54","nodeType":"YulIdentifier","src":"8061:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8103:9:54","nodeType":"YulIdentifier","src":"8103:9:54"},{"arguments":[{"name":"value0","nativeSrc":"8118:6:54","nodeType":"YulIdentifier","src":"8118:6:54"},{"kind":"number","nativeSrc":"8126:42:54","nodeType":"YulLiteral","src":"8126:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8114:3:54","nodeType":"YulIdentifier","src":"8114:3:54"},"nativeSrc":"8114:55:54","nodeType":"YulFunctionCall","src":"8114:55:54"}],"functionName":{"name":"mstore","nativeSrc":"8096:6:54","nodeType":"YulIdentifier","src":"8096:6:54"},"nativeSrc":"8096:74:54","nodeType":"YulFunctionCall","src":"8096:74:54"},"nativeSrc":"8096:74:54","nodeType":"YulExpressionStatement","src":"8096:74:54"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed","nativeSrc":"7923:253:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8020:9:54","nodeType":"YulTypedName","src":"8020:9:54","type":""},{"name":"value0","nativeSrc":"8031:6:54","nodeType":"YulTypedName","src":"8031:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8042:4:54","nodeType":"YulTypedName","src":"8042:4:54","type":""}],"src":"7923:253:54"},{"body":{"nativeSrc":"8319:484:54","nodeType":"YulBlock","src":"8319:484:54","statements":[{"body":{"nativeSrc":"8366:16:54","nodeType":"YulBlock","src":"8366:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8375:1:54","nodeType":"YulLiteral","src":"8375:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8378:1:54","nodeType":"YulLiteral","src":"8378:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8368:6:54","nodeType":"YulIdentifier","src":"8368:6:54"},"nativeSrc":"8368:12:54","nodeType":"YulFunctionCall","src":"8368:12:54"},"nativeSrc":"8368:12:54","nodeType":"YulExpressionStatement","src":"8368:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8340:7:54","nodeType":"YulIdentifier","src":"8340:7:54"},{"name":"headStart","nativeSrc":"8349:9:54","nodeType":"YulIdentifier","src":"8349:9:54"}],"functionName":{"name":"sub","nativeSrc":"8336:3:54","nodeType":"YulIdentifier","src":"8336:3:54"},"nativeSrc":"8336:23:54","nodeType":"YulFunctionCall","src":"8336:23:54"},{"kind":"number","nativeSrc":"8361:3:54","nodeType":"YulLiteral","src":"8361:3:54","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"8332:3:54","nodeType":"YulIdentifier","src":"8332:3:54"},"nativeSrc":"8332:33:54","nodeType":"YulFunctionCall","src":"8332:33:54"},"nativeSrc":"8329:53:54","nodeType":"YulIf","src":"8329:53:54"},{"nativeSrc":"8391:38:54","nodeType":"YulAssignment","src":"8391:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8419:9:54","nodeType":"YulIdentifier","src":"8419:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8401:17:54","nodeType":"YulIdentifier","src":"8401:17:54"},"nativeSrc":"8401:28:54","nodeType":"YulFunctionCall","src":"8401:28:54"},"variableNames":[{"name":"value0","nativeSrc":"8391:6:54","nodeType":"YulIdentifier","src":"8391:6:54"}]},{"nativeSrc":"8438:47:54","nodeType":"YulAssignment","src":"8438:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8470:9:54","nodeType":"YulIdentifier","src":"8470:9:54"},{"kind":"number","nativeSrc":"8481:2:54","nodeType":"YulLiteral","src":"8481:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8466:3:54","nodeType":"YulIdentifier","src":"8466:3:54"},"nativeSrc":"8466:18:54","nodeType":"YulFunctionCall","src":"8466:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8448:17:54","nodeType":"YulIdentifier","src":"8448:17:54"},"nativeSrc":"8448:37:54","nodeType":"YulFunctionCall","src":"8448:37:54"},"variableNames":[{"name":"value1","nativeSrc":"8438:6:54","nodeType":"YulIdentifier","src":"8438:6:54"}]},{"nativeSrc":"8494:42:54","nodeType":"YulAssignment","src":"8494:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8521:9:54","nodeType":"YulIdentifier","src":"8521:9:54"},{"kind":"number","nativeSrc":"8532:2:54","nodeType":"YulLiteral","src":"8532:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8517:3:54","nodeType":"YulIdentifier","src":"8517:3:54"},"nativeSrc":"8517:18:54","nodeType":"YulFunctionCall","src":"8517:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"8504:12:54","nodeType":"YulIdentifier","src":"8504:12:54"},"nativeSrc":"8504:32:54","nodeType":"YulFunctionCall","src":"8504:32:54"},"variableNames":[{"name":"value2","nativeSrc":"8494:6:54","nodeType":"YulIdentifier","src":"8494:6:54"}]},{"nativeSrc":"8545:46:54","nodeType":"YulVariableDeclaration","src":"8545:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8576:9:54","nodeType":"YulIdentifier","src":"8576:9:54"},{"kind":"number","nativeSrc":"8587:2:54","nodeType":"YulLiteral","src":"8587:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8572:3:54","nodeType":"YulIdentifier","src":"8572:3:54"},"nativeSrc":"8572:18:54","nodeType":"YulFunctionCall","src":"8572:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"8559:12:54","nodeType":"YulIdentifier","src":"8559:12:54"},"nativeSrc":"8559:32:54","nodeType":"YulFunctionCall","src":"8559:32:54"},"variables":[{"name":"offset","nativeSrc":"8549:6:54","nodeType":"YulTypedName","src":"8549:6:54","type":""}]},{"body":{"nativeSrc":"8634:16:54","nodeType":"YulBlock","src":"8634:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8643:1:54","nodeType":"YulLiteral","src":"8643:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8646:1:54","nodeType":"YulLiteral","src":"8646:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8636:6:54","nodeType":"YulIdentifier","src":"8636:6:54"},"nativeSrc":"8636:12:54","nodeType":"YulFunctionCall","src":"8636:12:54"},"nativeSrc":"8636:12:54","nodeType":"YulExpressionStatement","src":"8636:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8606:6:54","nodeType":"YulIdentifier","src":"8606:6:54"},{"kind":"number","nativeSrc":"8614:18:54","nodeType":"YulLiteral","src":"8614:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8603:2:54","nodeType":"YulIdentifier","src":"8603:2:54"},"nativeSrc":"8603:30:54","nodeType":"YulFunctionCall","src":"8603:30:54"},"nativeSrc":"8600:50:54","nodeType":"YulIf","src":"8600:50:54"},{"nativeSrc":"8659:84:54","nodeType":"YulVariableDeclaration","src":"8659:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8715:9:54","nodeType":"YulIdentifier","src":"8715:9:54"},{"name":"offset","nativeSrc":"8726:6:54","nodeType":"YulIdentifier","src":"8726:6:54"}],"functionName":{"name":"add","nativeSrc":"8711:3:54","nodeType":"YulIdentifier","src":"8711:3:54"},"nativeSrc":"8711:22:54","nodeType":"YulFunctionCall","src":"8711:22:54"},{"name":"dataEnd","nativeSrc":"8735:7:54","nodeType":"YulIdentifier","src":"8735:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8685:25:54","nodeType":"YulIdentifier","src":"8685:25:54"},"nativeSrc":"8685:58:54","nodeType":"YulFunctionCall","src":"8685:58:54"},"variables":[{"name":"value3_1","nativeSrc":"8663:8:54","nodeType":"YulTypedName","src":"8663:8:54","type":""},{"name":"value4_1","nativeSrc":"8673:8:54","nodeType":"YulTypedName","src":"8673:8:54","type":""}]},{"nativeSrc":"8752:18:54","nodeType":"YulAssignment","src":"8752:18:54","value":{"name":"value3_1","nativeSrc":"8762:8:54","nodeType":"YulIdentifier","src":"8762:8:54"},"variableNames":[{"name":"value3","nativeSrc":"8752:6:54","nodeType":"YulIdentifier","src":"8752:6:54"}]},{"nativeSrc":"8779:18:54","nodeType":"YulAssignment","src":"8779:18:54","value":{"name":"value4_1","nativeSrc":"8789:8:54","nodeType":"YulIdentifier","src":"8789:8:54"},"variableNames":[{"name":"value4","nativeSrc":"8779:6:54","nodeType":"YulIdentifier","src":"8779:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nativeSrc":"8181:622:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8253:9:54","nodeType":"YulTypedName","src":"8253:9:54","type":""},{"name":"dataEnd","nativeSrc":"8264:7:54","nodeType":"YulTypedName","src":"8264:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8276:6:54","nodeType":"YulTypedName","src":"8276:6:54","type":""},{"name":"value1","nativeSrc":"8284:6:54","nodeType":"YulTypedName","src":"8284:6:54","type":""},{"name":"value2","nativeSrc":"8292:6:54","nodeType":"YulTypedName","src":"8292:6:54","type":""},{"name":"value3","nativeSrc":"8300:6:54","nodeType":"YulTypedName","src":"8300:6:54","type":""},{"name":"value4","nativeSrc":"8308:6:54","nodeType":"YulTypedName","src":"8308:6:54","type":""}],"src":"8181:622:54"},{"body":{"nativeSrc":"8910:222:54","nodeType":"YulBlock","src":"8910:222:54","statements":[{"body":{"nativeSrc":"8956:16:54","nodeType":"YulBlock","src":"8956:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8965:1:54","nodeType":"YulLiteral","src":"8965:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8968:1:54","nodeType":"YulLiteral","src":"8968:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8958:6:54","nodeType":"YulIdentifier","src":"8958:6:54"},"nativeSrc":"8958:12:54","nodeType":"YulFunctionCall","src":"8958:12:54"},"nativeSrc":"8958:12:54","nodeType":"YulExpressionStatement","src":"8958:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8931:7:54","nodeType":"YulIdentifier","src":"8931:7:54"},{"name":"headStart","nativeSrc":"8940:9:54","nodeType":"YulIdentifier","src":"8940:9:54"}],"functionName":{"name":"sub","nativeSrc":"8927:3:54","nodeType":"YulIdentifier","src":"8927:3:54"},"nativeSrc":"8927:23:54","nodeType":"YulFunctionCall","src":"8927:23:54"},{"kind":"number","nativeSrc":"8952:2:54","nodeType":"YulLiteral","src":"8952:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"8923:3:54","nodeType":"YulIdentifier","src":"8923:3:54"},"nativeSrc":"8923:32:54","nodeType":"YulFunctionCall","src":"8923:32:54"},"nativeSrc":"8920:52:54","nodeType":"YulIf","src":"8920:52:54"},{"nativeSrc":"8981:38:54","nodeType":"YulAssignment","src":"8981:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9009:9:54","nodeType":"YulIdentifier","src":"9009:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8991:17:54","nodeType":"YulIdentifier","src":"8991:17:54"},"nativeSrc":"8991:28:54","nodeType":"YulFunctionCall","src":"8991:28:54"},"variableNames":[{"name":"value0","nativeSrc":"8981:6:54","nodeType":"YulIdentifier","src":"8981:6:54"}]},{"nativeSrc":"9028:47:54","nodeType":"YulAssignment","src":"9028:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9060:9:54","nodeType":"YulIdentifier","src":"9060:9:54"},{"kind":"number","nativeSrc":"9071:2:54","nodeType":"YulLiteral","src":"9071:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9056:3:54","nodeType":"YulIdentifier","src":"9056:3:54"},"nativeSrc":"9056:18:54","nodeType":"YulFunctionCall","src":"9056:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"9038:17:54","nodeType":"YulIdentifier","src":"9038:17:54"},"nativeSrc":"9038:37:54","nodeType":"YulFunctionCall","src":"9038:37:54"},"variableNames":[{"name":"value1","nativeSrc":"9028:6:54","nodeType":"YulIdentifier","src":"9028:6:54"}]},{"nativeSrc":"9084:42:54","nodeType":"YulAssignment","src":"9084:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9111:9:54","nodeType":"YulIdentifier","src":"9111:9:54"},{"kind":"number","nativeSrc":"9122:2:54","nodeType":"YulLiteral","src":"9122:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9107:3:54","nodeType":"YulIdentifier","src":"9107:3:54"},"nativeSrc":"9107:18:54","nodeType":"YulFunctionCall","src":"9107:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"9094:12:54","nodeType":"YulIdentifier","src":"9094:12:54"},"nativeSrc":"9094:32:54","nodeType":"YulFunctionCall","src":"9094:32:54"},"variableNames":[{"name":"value2","nativeSrc":"9084:6:54","nodeType":"YulIdentifier","src":"9084:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nativeSrc":"8808:324:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8860:9:54","nodeType":"YulTypedName","src":"8860:9:54","type":""},{"name":"dataEnd","nativeSrc":"8871:7:54","nodeType":"YulTypedName","src":"8871:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8883:6:54","nodeType":"YulTypedName","src":"8883:6:54","type":""},{"name":"value1","nativeSrc":"8891:6:54","nodeType":"YulTypedName","src":"8891:6:54","type":""},{"name":"value2","nativeSrc":"8899:6:54","nodeType":"YulTypedName","src":"8899:6:54","type":""}],"src":"8808:324:54"},{"body":{"nativeSrc":"9217:114:54","nodeType":"YulBlock","src":"9217:114:54","statements":[{"body":{"nativeSrc":"9261:22:54","nodeType":"YulBlock","src":"9261:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9263:16:54","nodeType":"YulIdentifier","src":"9263:16:54"},"nativeSrc":"9263:18:54","nodeType":"YulFunctionCall","src":"9263:18:54"},"nativeSrc":"9263:18:54","nodeType":"YulExpressionStatement","src":"9263:18:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9233:6:54","nodeType":"YulIdentifier","src":"9233:6:54"},{"kind":"number","nativeSrc":"9241:18:54","nodeType":"YulLiteral","src":"9241:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9230:2:54","nodeType":"YulIdentifier","src":"9230:2:54"},"nativeSrc":"9230:30:54","nodeType":"YulFunctionCall","src":"9230:30:54"},"nativeSrc":"9227:56:54","nodeType":"YulIf","src":"9227:56:54"},{"nativeSrc":"9292:33:54","nodeType":"YulAssignment","src":"9292:33:54","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9308:1:54","nodeType":"YulLiteral","src":"9308:1:54","type":"","value":"5"},{"name":"length","nativeSrc":"9311:6:54","nodeType":"YulIdentifier","src":"9311:6:54"}],"functionName":{"name":"shl","nativeSrc":"9304:3:54","nodeType":"YulIdentifier","src":"9304:3:54"},"nativeSrc":"9304:14:54","nodeType":"YulFunctionCall","src":"9304:14:54"},{"kind":"number","nativeSrc":"9320:4:54","nodeType":"YulLiteral","src":"9320:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9300:3:54","nodeType":"YulIdentifier","src":"9300:3:54"},"nativeSrc":"9300:25:54","nodeType":"YulFunctionCall","src":"9300:25:54"},"variableNames":[{"name":"size","nativeSrc":"9292:4:54","nodeType":"YulIdentifier","src":"9292:4:54"}]}]},"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"9137:194:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"9197:6:54","nodeType":"YulTypedName","src":"9197:6:54","type":""}],"returnVariables":[{"name":"size","nativeSrc":"9208:4:54","nodeType":"YulTypedName","src":"9208:4:54","type":""}],"src":"9137:194:54"},{"body":{"nativeSrc":"9449:882:54","nodeType":"YulBlock","src":"9449:882:54","statements":[{"nativeSrc":"9459:12:54","nodeType":"YulVariableDeclaration","src":"9459:12:54","value":{"kind":"number","nativeSrc":"9469:2:54","nodeType":"YulLiteral","src":"9469:2:54","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"9463:2:54","nodeType":"YulTypedName","src":"9463:2:54","type":""}]},{"body":{"nativeSrc":"9516:16:54","nodeType":"YulBlock","src":"9516:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9525:1:54","nodeType":"YulLiteral","src":"9525:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"9528:1:54","nodeType":"YulLiteral","src":"9528:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9518:6:54","nodeType":"YulIdentifier","src":"9518:6:54"},"nativeSrc":"9518:12:54","nodeType":"YulFunctionCall","src":"9518:12:54"},"nativeSrc":"9518:12:54","nodeType":"YulExpressionStatement","src":"9518:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9491:7:54","nodeType":"YulIdentifier","src":"9491:7:54"},{"name":"headStart","nativeSrc":"9500:9:54","nodeType":"YulIdentifier","src":"9500:9:54"}],"functionName":{"name":"sub","nativeSrc":"9487:3:54","nodeType":"YulIdentifier","src":"9487:3:54"},"nativeSrc":"9487:23:54","nodeType":"YulFunctionCall","src":"9487:23:54"},{"name":"_1","nativeSrc":"9512:2:54","nodeType":"YulIdentifier","src":"9512:2:54"}],"functionName":{"name":"slt","nativeSrc":"9483:3:54","nodeType":"YulIdentifier","src":"9483:3:54"},"nativeSrc":"9483:32:54","nodeType":"YulFunctionCall","src":"9483:32:54"},"nativeSrc":"9480:52:54","nodeType":"YulIf","src":"9480:52:54"},{"nativeSrc":"9541:37:54","nodeType":"YulVariableDeclaration","src":"9541:37:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9568:9:54","nodeType":"YulIdentifier","src":"9568:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"9555:12:54","nodeType":"YulIdentifier","src":"9555:12:54"},"nativeSrc":"9555:23:54","nodeType":"YulFunctionCall","src":"9555:23:54"},"variables":[{"name":"offset","nativeSrc":"9545:6:54","nodeType":"YulTypedName","src":"9545:6:54","type":""}]},{"body":{"nativeSrc":"9621:16:54","nodeType":"YulBlock","src":"9621:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9630:1:54","nodeType":"YulLiteral","src":"9630:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"9633:1:54","nodeType":"YulLiteral","src":"9633:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9623:6:54","nodeType":"YulIdentifier","src":"9623:6:54"},"nativeSrc":"9623:12:54","nodeType":"YulFunctionCall","src":"9623:12:54"},"nativeSrc":"9623:12:54","nodeType":"YulExpressionStatement","src":"9623:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9593:6:54","nodeType":"YulIdentifier","src":"9593:6:54"},{"kind":"number","nativeSrc":"9601:18:54","nodeType":"YulLiteral","src":"9601:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9590:2:54","nodeType":"YulIdentifier","src":"9590:2:54"},"nativeSrc":"9590:30:54","nodeType":"YulFunctionCall","src":"9590:30:54"},"nativeSrc":"9587:50:54","nodeType":"YulIf","src":"9587:50:54"},{"nativeSrc":"9646:32:54","nodeType":"YulVariableDeclaration","src":"9646:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9660:9:54","nodeType":"YulIdentifier","src":"9660:9:54"},{"name":"offset","nativeSrc":"9671:6:54","nodeType":"YulIdentifier","src":"9671:6:54"}],"functionName":{"name":"add","nativeSrc":"9656:3:54","nodeType":"YulIdentifier","src":"9656:3:54"},"nativeSrc":"9656:22:54","nodeType":"YulFunctionCall","src":"9656:22:54"},"variables":[{"name":"_2","nativeSrc":"9650:2:54","nodeType":"YulTypedName","src":"9650:2:54","type":""}]},{"body":{"nativeSrc":"9726:16:54","nodeType":"YulBlock","src":"9726:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9735:1:54","nodeType":"YulLiteral","src":"9735:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"9738:1:54","nodeType":"YulLiteral","src":"9738:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9728:6:54","nodeType":"YulIdentifier","src":"9728:6:54"},"nativeSrc":"9728:12:54","nodeType":"YulFunctionCall","src":"9728:12:54"},"nativeSrc":"9728:12:54","nodeType":"YulExpressionStatement","src":"9728:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"9705:2:54","nodeType":"YulIdentifier","src":"9705:2:54"},{"kind":"number","nativeSrc":"9709:4:54","nodeType":"YulLiteral","src":"9709:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9701:3:54","nodeType":"YulIdentifier","src":"9701:3:54"},"nativeSrc":"9701:13:54","nodeType":"YulFunctionCall","src":"9701:13:54"},{"name":"dataEnd","nativeSrc":"9716:7:54","nodeType":"YulIdentifier","src":"9716:7:54"}],"functionName":{"name":"slt","nativeSrc":"9697:3:54","nodeType":"YulIdentifier","src":"9697:3:54"},"nativeSrc":"9697:27:54","nodeType":"YulFunctionCall","src":"9697:27:54"}],"functionName":{"name":"iszero","nativeSrc":"9690:6:54","nodeType":"YulIdentifier","src":"9690:6:54"},"nativeSrc":"9690:35:54","nodeType":"YulFunctionCall","src":"9690:35:54"},"nativeSrc":"9687:55:54","nodeType":"YulIf","src":"9687:55:54"},{"nativeSrc":"9751:26:54","nodeType":"YulVariableDeclaration","src":"9751:26:54","value":{"arguments":[{"name":"_2","nativeSrc":"9774:2:54","nodeType":"YulIdentifier","src":"9774:2:54"}],"functionName":{"name":"calldataload","nativeSrc":"9761:12:54","nodeType":"YulIdentifier","src":"9761:12:54"},"nativeSrc":"9761:16:54","nodeType":"YulFunctionCall","src":"9761:16:54"},"variables":[{"name":"_3","nativeSrc":"9755:2:54","nodeType":"YulTypedName","src":"9755:2:54","type":""}]},{"nativeSrc":"9786:82:54","nodeType":"YulVariableDeclaration","src":"9786:82:54","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"9864:2:54","nodeType":"YulIdentifier","src":"9864:2:54"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"9813:50:54","nodeType":"YulIdentifier","src":"9813:50:54"},"nativeSrc":"9813:54:54","nodeType":"YulFunctionCall","src":"9813:54:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"9797:15:54","nodeType":"YulIdentifier","src":"9797:15:54"},"nativeSrc":"9797:71:54","nodeType":"YulFunctionCall","src":"9797:71:54"},"variables":[{"name":"dst","nativeSrc":"9790:3:54","nodeType":"YulTypedName","src":"9790:3:54","type":""}]},{"nativeSrc":"9877:16:54","nodeType":"YulVariableDeclaration","src":"9877:16:54","value":{"name":"dst","nativeSrc":"9890:3:54","nodeType":"YulIdentifier","src":"9890:3:54"},"variables":[{"name":"dst_1","nativeSrc":"9881:5:54","nodeType":"YulTypedName","src":"9881:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"9909:3:54","nodeType":"YulIdentifier","src":"9909:3:54"},{"name":"_3","nativeSrc":"9914:2:54","nodeType":"YulIdentifier","src":"9914:2:54"}],"functionName":{"name":"mstore","nativeSrc":"9902:6:54","nodeType":"YulIdentifier","src":"9902:6:54"},"nativeSrc":"9902:15:54","nodeType":"YulFunctionCall","src":"9902:15:54"},"nativeSrc":"9902:15:54","nodeType":"YulExpressionStatement","src":"9902:15:54"},{"nativeSrc":"9926:19:54","nodeType":"YulAssignment","src":"9926:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"9937:3:54","nodeType":"YulIdentifier","src":"9937:3:54"},{"name":"_1","nativeSrc":"9942:2:54","nodeType":"YulIdentifier","src":"9942:2:54"}],"functionName":{"name":"add","nativeSrc":"9933:3:54","nodeType":"YulIdentifier","src":"9933:3:54"},"nativeSrc":"9933:12:54","nodeType":"YulFunctionCall","src":"9933:12:54"},"variableNames":[{"name":"dst","nativeSrc":"9926:3:54","nodeType":"YulIdentifier","src":"9926:3:54"}]},{"nativeSrc":"9954:42:54","nodeType":"YulVariableDeclaration","src":"9954:42:54","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"9976:2:54","nodeType":"YulIdentifier","src":"9976:2:54"},{"arguments":[{"kind":"number","nativeSrc":"9984:1:54","nodeType":"YulLiteral","src":"9984:1:54","type":"","value":"5"},{"name":"_3","nativeSrc":"9987:2:54","nodeType":"YulIdentifier","src":"9987:2:54"}],"functionName":{"name":"shl","nativeSrc":"9980:3:54","nodeType":"YulIdentifier","src":"9980:3:54"},"nativeSrc":"9980:10:54","nodeType":"YulFunctionCall","src":"9980:10:54"}],"functionName":{"name":"add","nativeSrc":"9972:3:54","nodeType":"YulIdentifier","src":"9972:3:54"},"nativeSrc":"9972:19:54","nodeType":"YulFunctionCall","src":"9972:19:54"},{"name":"_1","nativeSrc":"9993:2:54","nodeType":"YulIdentifier","src":"9993:2:54"}],"functionName":{"name":"add","nativeSrc":"9968:3:54","nodeType":"YulIdentifier","src":"9968:3:54"},"nativeSrc":"9968:28:54","nodeType":"YulFunctionCall","src":"9968:28:54"},"variables":[{"name":"srcEnd","nativeSrc":"9958:6:54","nodeType":"YulTypedName","src":"9958:6:54","type":""}]},{"body":{"nativeSrc":"10028:16:54","nodeType":"YulBlock","src":"10028:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10037:1:54","nodeType":"YulLiteral","src":"10037:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"10040:1:54","nodeType":"YulLiteral","src":"10040:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10030:6:54","nodeType":"YulIdentifier","src":"10030:6:54"},"nativeSrc":"10030:12:54","nodeType":"YulFunctionCall","src":"10030:12:54"},"nativeSrc":"10030:12:54","nodeType":"YulExpressionStatement","src":"10030:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"10011:6:54","nodeType":"YulIdentifier","src":"10011:6:54"},{"name":"dataEnd","nativeSrc":"10019:7:54","nodeType":"YulIdentifier","src":"10019:7:54"}],"functionName":{"name":"gt","nativeSrc":"10008:2:54","nodeType":"YulIdentifier","src":"10008:2:54"},"nativeSrc":"10008:19:54","nodeType":"YulFunctionCall","src":"10008:19:54"},"nativeSrc":"10005:39:54","nodeType":"YulIf","src":"10005:39:54"},{"nativeSrc":"10053:22:54","nodeType":"YulVariableDeclaration","src":"10053:22:54","value":{"arguments":[{"name":"_2","nativeSrc":"10068:2:54","nodeType":"YulIdentifier","src":"10068:2:54"},{"name":"_1","nativeSrc":"10072:2:54","nodeType":"YulIdentifier","src":"10072:2:54"}],"functionName":{"name":"add","nativeSrc":"10064:3:54","nodeType":"YulIdentifier","src":"10064:3:54"},"nativeSrc":"10064:11:54","nodeType":"YulFunctionCall","src":"10064:11:54"},"variables":[{"name":"src","nativeSrc":"10057:3:54","nodeType":"YulTypedName","src":"10057:3:54","type":""}]},{"body":{"nativeSrc":"10140:161:54","nodeType":"YulBlock","src":"10140:161:54","statements":[{"nativeSrc":"10154:30:54","nodeType":"YulVariableDeclaration","src":"10154:30:54","value":{"arguments":[{"name":"src","nativeSrc":"10180:3:54","nodeType":"YulIdentifier","src":"10180:3:54"}],"functionName":{"name":"calldataload","nativeSrc":"10167:12:54","nodeType":"YulIdentifier","src":"10167:12:54"},"nativeSrc":"10167:17:54","nodeType":"YulFunctionCall","src":"10167:17:54"},"variables":[{"name":"value","nativeSrc":"10158:5:54","nodeType":"YulTypedName","src":"10158:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10222:5:54","nodeType":"YulIdentifier","src":"10222:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10197:24:54","nodeType":"YulIdentifier","src":"10197:24:54"},"nativeSrc":"10197:31:54","nodeType":"YulFunctionCall","src":"10197:31:54"},"nativeSrc":"10197:31:54","nodeType":"YulExpressionStatement","src":"10197:31:54"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"10248:3:54","nodeType":"YulIdentifier","src":"10248:3:54"},{"name":"value","nativeSrc":"10253:5:54","nodeType":"YulIdentifier","src":"10253:5:54"}],"functionName":{"name":"mstore","nativeSrc":"10241:6:54","nodeType":"YulIdentifier","src":"10241:6:54"},"nativeSrc":"10241:18:54","nodeType":"YulFunctionCall","src":"10241:18:54"},"nativeSrc":"10241:18:54","nodeType":"YulExpressionStatement","src":"10241:18:54"},{"nativeSrc":"10272:19:54","nodeType":"YulAssignment","src":"10272:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"10283:3:54","nodeType":"YulIdentifier","src":"10283:3:54"},{"name":"_1","nativeSrc":"10288:2:54","nodeType":"YulIdentifier","src":"10288:2:54"}],"functionName":{"name":"add","nativeSrc":"10279:3:54","nodeType":"YulIdentifier","src":"10279:3:54"},"nativeSrc":"10279:12:54","nodeType":"YulFunctionCall","src":"10279:12:54"},"variableNames":[{"name":"dst","nativeSrc":"10272:3:54","nodeType":"YulIdentifier","src":"10272:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"10095:3:54","nodeType":"YulIdentifier","src":"10095:3:54"},{"name":"srcEnd","nativeSrc":"10100:6:54","nodeType":"YulIdentifier","src":"10100:6:54"}],"functionName":{"name":"lt","nativeSrc":"10092:2:54","nodeType":"YulIdentifier","src":"10092:2:54"},"nativeSrc":"10092:15:54","nodeType":"YulFunctionCall","src":"10092:15:54"},"nativeSrc":"10084:217:54","nodeType":"YulForLoop","post":{"nativeSrc":"10108:23:54","nodeType":"YulBlock","src":"10108:23:54","statements":[{"nativeSrc":"10110:19:54","nodeType":"YulAssignment","src":"10110:19:54","value":{"arguments":[{"name":"src","nativeSrc":"10121:3:54","nodeType":"YulIdentifier","src":"10121:3:54"},{"name":"_1","nativeSrc":"10126:2:54","nodeType":"YulIdentifier","src":"10126:2:54"}],"functionName":{"name":"add","nativeSrc":"10117:3:54","nodeType":"YulIdentifier","src":"10117:3:54"},"nativeSrc":"10117:12:54","nodeType":"YulFunctionCall","src":"10117:12:54"},"variableNames":[{"name":"src","nativeSrc":"10110:3:54","nodeType":"YulIdentifier","src":"10110:3:54"}]}]},"pre":{"nativeSrc":"10088:3:54","nodeType":"YulBlock","src":"10088:3:54","statements":[]},"src":"10084:217:54"},{"nativeSrc":"10310:15:54","nodeType":"YulAssignment","src":"10310:15:54","value":{"name":"dst_1","nativeSrc":"10320:5:54","nodeType":"YulIdentifier","src":"10320:5:54"},"variableNames":[{"name":"value0","nativeSrc":"10310:6:54","nodeType":"YulIdentifier","src":"10310:6:54"}]}]},"name":"abi_decode_tuple_t_array$_t_contract$_ITimelock_$8011_$dyn_memory_ptr","nativeSrc":"9336:995:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9415:9:54","nodeType":"YulTypedName","src":"9415:9:54","type":""},{"name":"dataEnd","nativeSrc":"9426:7:54","nodeType":"YulTypedName","src":"9426:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9438:6:54","nodeType":"YulTypedName","src":"9438:6:54","type":""}],"src":"9336:995:54"},{"body":{"nativeSrc":"10455:125:54","nodeType":"YulBlock","src":"10455:125:54","statements":[{"nativeSrc":"10465:26:54","nodeType":"YulAssignment","src":"10465:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10477:9:54","nodeType":"YulIdentifier","src":"10477:9:54"},{"kind":"number","nativeSrc":"10488:2:54","nodeType":"YulLiteral","src":"10488:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10473:3:54","nodeType":"YulIdentifier","src":"10473:3:54"},"nativeSrc":"10473:18:54","nodeType":"YulFunctionCall","src":"10473:18:54"},"variableNames":[{"name":"tail","nativeSrc":"10465:4:54","nodeType":"YulIdentifier","src":"10465:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10507:9:54","nodeType":"YulIdentifier","src":"10507:9:54"},{"arguments":[{"name":"value0","nativeSrc":"10522:6:54","nodeType":"YulIdentifier","src":"10522:6:54"},{"kind":"number","nativeSrc":"10530:42:54","nodeType":"YulLiteral","src":"10530:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10518:3:54","nodeType":"YulIdentifier","src":"10518:3:54"},"nativeSrc":"10518:55:54","nodeType":"YulFunctionCall","src":"10518:55:54"}],"functionName":{"name":"mstore","nativeSrc":"10500:6:54","nodeType":"YulIdentifier","src":"10500:6:54"},"nativeSrc":"10500:74:54","nodeType":"YulFunctionCall","src":"10500:74:54"},"nativeSrc":"10500:74:54","nodeType":"YulExpressionStatement","src":"10500:74:54"}]},"name":"abi_encode_tuple_t_contract$_ITimelock_$8011__to_t_address__fromStack_reversed","nativeSrc":"10336:244:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10424:9:54","nodeType":"YulTypedName","src":"10424:9:54","type":""},{"name":"value0","nativeSrc":"10435:6:54","nodeType":"YulTypedName","src":"10435:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10446:4:54","nodeType":"YulTypedName","src":"10446:4:54","type":""}],"src":"10336:244:54"},{"body":{"nativeSrc":"10628:71:54","nodeType":"YulBlock","src":"10628:71:54","statements":[{"body":{"nativeSrc":"10677:16:54","nodeType":"YulBlock","src":"10677:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10686:1:54","nodeType":"YulLiteral","src":"10686:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"10689:1:54","nodeType":"YulLiteral","src":"10689:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10679:6:54","nodeType":"YulIdentifier","src":"10679:6:54"},"nativeSrc":"10679:12:54","nodeType":"YulFunctionCall","src":"10679:12:54"},"nativeSrc":"10679:12:54","nodeType":"YulExpressionStatement","src":"10679:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10651:5:54","nodeType":"YulIdentifier","src":"10651:5:54"},{"arguments":[{"name":"value","nativeSrc":"10662:5:54","nodeType":"YulIdentifier","src":"10662:5:54"},{"kind":"number","nativeSrc":"10669:4:54","nodeType":"YulLiteral","src":"10669:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"10658:3:54","nodeType":"YulIdentifier","src":"10658:3:54"},"nativeSrc":"10658:16:54","nodeType":"YulFunctionCall","src":"10658:16:54"}],"functionName":{"name":"eq","nativeSrc":"10648:2:54","nodeType":"YulIdentifier","src":"10648:2:54"},"nativeSrc":"10648:27:54","nodeType":"YulFunctionCall","src":"10648:27:54"}],"functionName":{"name":"iszero","nativeSrc":"10641:6:54","nodeType":"YulIdentifier","src":"10641:6:54"},"nativeSrc":"10641:35:54","nodeType":"YulFunctionCall","src":"10641:35:54"},"nativeSrc":"10638:55:54","nodeType":"YulIf","src":"10638:55:54"}]},"name":"validator_revert_uint8","nativeSrc":"10585:114:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10617:5:54","nodeType":"YulTypedName","src":"10617:5:54","type":""}],"src":"10585:114:54"},{"body":{"nativeSrc":"10789:299:54","nodeType":"YulBlock","src":"10789:299:54","statements":[{"body":{"nativeSrc":"10835:16:54","nodeType":"YulBlock","src":"10835:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10844:1:54","nodeType":"YulLiteral","src":"10844:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"10847:1:54","nodeType":"YulLiteral","src":"10847:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10837:6:54","nodeType":"YulIdentifier","src":"10837:6:54"},"nativeSrc":"10837:12:54","nodeType":"YulFunctionCall","src":"10837:12:54"},"nativeSrc":"10837:12:54","nodeType":"YulExpressionStatement","src":"10837:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10810:7:54","nodeType":"YulIdentifier","src":"10810:7:54"},{"name":"headStart","nativeSrc":"10819:9:54","nodeType":"YulIdentifier","src":"10819:9:54"}],"functionName":{"name":"sub","nativeSrc":"10806:3:54","nodeType":"YulIdentifier","src":"10806:3:54"},"nativeSrc":"10806:23:54","nodeType":"YulFunctionCall","src":"10806:23:54"},{"kind":"number","nativeSrc":"10831:2:54","nodeType":"YulLiteral","src":"10831:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10802:3:54","nodeType":"YulIdentifier","src":"10802:3:54"},"nativeSrc":"10802:32:54","nodeType":"YulFunctionCall","src":"10802:32:54"},"nativeSrc":"10799:52:54","nodeType":"YulIf","src":"10799:52:54"},{"nativeSrc":"10860:36:54","nodeType":"YulVariableDeclaration","src":"10860:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10886:9:54","nodeType":"YulIdentifier","src":"10886:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"10873:12:54","nodeType":"YulIdentifier","src":"10873:12:54"},"nativeSrc":"10873:23:54","nodeType":"YulFunctionCall","src":"10873:23:54"},"variables":[{"name":"value","nativeSrc":"10864:5:54","nodeType":"YulTypedName","src":"10864:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10930:5:54","nodeType":"YulIdentifier","src":"10930:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"10905:24:54","nodeType":"YulIdentifier","src":"10905:24:54"},"nativeSrc":"10905:31:54","nodeType":"YulFunctionCall","src":"10905:31:54"},"nativeSrc":"10905:31:54","nodeType":"YulExpressionStatement","src":"10905:31:54"},{"nativeSrc":"10945:15:54","nodeType":"YulAssignment","src":"10945:15:54","value":{"name":"value","nativeSrc":"10955:5:54","nodeType":"YulIdentifier","src":"10955:5:54"},"variableNames":[{"name":"value0","nativeSrc":"10945:6:54","nodeType":"YulIdentifier","src":"10945:6:54"}]},{"nativeSrc":"10969:47:54","nodeType":"YulVariableDeclaration","src":"10969:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11001:9:54","nodeType":"YulIdentifier","src":"11001:9:54"},{"kind":"number","nativeSrc":"11012:2:54","nodeType":"YulLiteral","src":"11012:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10997:3:54","nodeType":"YulIdentifier","src":"10997:3:54"},"nativeSrc":"10997:18:54","nodeType":"YulFunctionCall","src":"10997:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"10984:12:54","nodeType":"YulIdentifier","src":"10984:12:54"},"nativeSrc":"10984:32:54","nodeType":"YulFunctionCall","src":"10984:32:54"},"variables":[{"name":"value_1","nativeSrc":"10973:7:54","nodeType":"YulTypedName","src":"10973:7:54","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"11048:7:54","nodeType":"YulIdentifier","src":"11048:7:54"}],"functionName":{"name":"validator_revert_uint8","nativeSrc":"11025:22:54","nodeType":"YulIdentifier","src":"11025:22:54"},"nativeSrc":"11025:31:54","nodeType":"YulFunctionCall","src":"11025:31:54"},"nativeSrc":"11025:31:54","nodeType":"YulExpressionStatement","src":"11025:31:54"},{"nativeSrc":"11065:17:54","nodeType":"YulAssignment","src":"11065:17:54","value":{"name":"value_1","nativeSrc":"11075:7:54","nodeType":"YulIdentifier","src":"11075:7:54"},"variableNames":[{"name":"value1","nativeSrc":"11065:6:54","nodeType":"YulIdentifier","src":"11065:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_uint8","nativeSrc":"10704:384:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10747:9:54","nodeType":"YulTypedName","src":"10747:9:54","type":""},{"name":"dataEnd","nativeSrc":"10758:7:54","nodeType":"YulTypedName","src":"10758:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10770:6:54","nodeType":"YulTypedName","src":"10770:6:54","type":""},{"name":"value1","nativeSrc":"10778:6:54","nodeType":"YulTypedName","src":"10778:6:54","type":""}],"src":"10704:384:54"},{"body":{"nativeSrc":"11212:341:54","nodeType":"YulBlock","src":"11212:341:54","statements":[{"body":{"nativeSrc":"11259:16:54","nodeType":"YulBlock","src":"11259:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11268:1:54","nodeType":"YulLiteral","src":"11268:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"11271:1:54","nodeType":"YulLiteral","src":"11271:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11261:6:54","nodeType":"YulIdentifier","src":"11261:6:54"},"nativeSrc":"11261:12:54","nodeType":"YulFunctionCall","src":"11261:12:54"},"nativeSrc":"11261:12:54","nodeType":"YulExpressionStatement","src":"11261:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11233:7:54","nodeType":"YulIdentifier","src":"11233:7:54"},{"name":"headStart","nativeSrc":"11242:9:54","nodeType":"YulIdentifier","src":"11242:9:54"}],"functionName":{"name":"sub","nativeSrc":"11229:3:54","nodeType":"YulIdentifier","src":"11229:3:54"},"nativeSrc":"11229:23:54","nodeType":"YulFunctionCall","src":"11229:23:54"},{"kind":"number","nativeSrc":"11254:3:54","nodeType":"YulLiteral","src":"11254:3:54","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11225:3:54","nodeType":"YulIdentifier","src":"11225:3:54"},"nativeSrc":"11225:33:54","nodeType":"YulFunctionCall","src":"11225:33:54"},"nativeSrc":"11222:53:54","nodeType":"YulIf","src":"11222:53:54"},{"nativeSrc":"11284:38:54","nodeType":"YulAssignment","src":"11284:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11312:9:54","nodeType":"YulIdentifier","src":"11312:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"11294:17:54","nodeType":"YulIdentifier","src":"11294:17:54"},"nativeSrc":"11294:28:54","nodeType":"YulFunctionCall","src":"11294:28:54"},"variableNames":[{"name":"value0","nativeSrc":"11284:6:54","nodeType":"YulIdentifier","src":"11284:6:54"}]},{"nativeSrc":"11331:47:54","nodeType":"YulAssignment","src":"11331:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11363:9:54","nodeType":"YulIdentifier","src":"11363:9:54"},{"kind":"number","nativeSrc":"11374:2:54","nodeType":"YulLiteral","src":"11374:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11359:3:54","nodeType":"YulIdentifier","src":"11359:3:54"},"nativeSrc":"11359:18:54","nodeType":"YulFunctionCall","src":"11359:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"11341:17:54","nodeType":"YulIdentifier","src":"11341:17:54"},"nativeSrc":"11341:37:54","nodeType":"YulFunctionCall","src":"11341:37:54"},"variableNames":[{"name":"value1","nativeSrc":"11331:6:54","nodeType":"YulIdentifier","src":"11331:6:54"}]},{"nativeSrc":"11387:45:54","nodeType":"YulVariableDeclaration","src":"11387:45:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11417:9:54","nodeType":"YulIdentifier","src":"11417:9:54"},{"kind":"number","nativeSrc":"11428:2:54","nodeType":"YulLiteral","src":"11428:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11413:3:54","nodeType":"YulIdentifier","src":"11413:3:54"},"nativeSrc":"11413:18:54","nodeType":"YulFunctionCall","src":"11413:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"11400:12:54","nodeType":"YulIdentifier","src":"11400:12:54"},"nativeSrc":"11400:32:54","nodeType":"YulFunctionCall","src":"11400:32:54"},"variables":[{"name":"value","nativeSrc":"11391:5:54","nodeType":"YulTypedName","src":"11391:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11466:5:54","nodeType":"YulIdentifier","src":"11466:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11441:24:54","nodeType":"YulIdentifier","src":"11441:24:54"},"nativeSrc":"11441:31:54","nodeType":"YulFunctionCall","src":"11441:31:54"},"nativeSrc":"11441:31:54","nodeType":"YulExpressionStatement","src":"11441:31:54"},{"nativeSrc":"11481:15:54","nodeType":"YulAssignment","src":"11481:15:54","value":{"name":"value","nativeSrc":"11491:5:54","nodeType":"YulIdentifier","src":"11491:5:54"},"variableNames":[{"name":"value2","nativeSrc":"11481:6:54","nodeType":"YulIdentifier","src":"11481:6:54"}]},{"nativeSrc":"11505:42:54","nodeType":"YulAssignment","src":"11505:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11532:9:54","nodeType":"YulIdentifier","src":"11532:9:54"},{"kind":"number","nativeSrc":"11543:2:54","nodeType":"YulLiteral","src":"11543:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11528:3:54","nodeType":"YulIdentifier","src":"11528:3:54"},"nativeSrc":"11528:18:54","nodeType":"YulFunctionCall","src":"11528:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"11515:12:54","nodeType":"YulIdentifier","src":"11515:12:54"},"nativeSrc":"11515:32:54","nodeType":"YulFunctionCall","src":"11515:32:54"},"variableNames":[{"name":"value3","nativeSrc":"11505:6:54","nodeType":"YulIdentifier","src":"11505:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nativeSrc":"11093:460:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11154:9:54","nodeType":"YulTypedName","src":"11154:9:54","type":""},{"name":"dataEnd","nativeSrc":"11165:7:54","nodeType":"YulTypedName","src":"11165:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11177:6:54","nodeType":"YulTypedName","src":"11177:6:54","type":""},{"name":"value1","nativeSrc":"11185:6:54","nodeType":"YulTypedName","src":"11185:6:54","type":""},{"name":"value2","nativeSrc":"11193:6:54","nodeType":"YulTypedName","src":"11193:6:54","type":""},{"name":"value3","nativeSrc":"11201:6:54","nodeType":"YulTypedName","src":"11201:6:54","type":""}],"src":"11093:460:54"},{"body":{"nativeSrc":"11732:180:54","nodeType":"YulBlock","src":"11732:180:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11749:9:54","nodeType":"YulIdentifier","src":"11749:9:54"},{"kind":"number","nativeSrc":"11760:2:54","nodeType":"YulLiteral","src":"11760:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11742:6:54","nodeType":"YulIdentifier","src":"11742:6:54"},"nativeSrc":"11742:21:54","nodeType":"YulFunctionCall","src":"11742:21:54"},"nativeSrc":"11742:21:54","nodeType":"YulExpressionStatement","src":"11742:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11783:9:54","nodeType":"YulIdentifier","src":"11783:9:54"},{"kind":"number","nativeSrc":"11794:2:54","nodeType":"YulLiteral","src":"11794:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11779:3:54","nodeType":"YulIdentifier","src":"11779:3:54"},"nativeSrc":"11779:18:54","nodeType":"YulFunctionCall","src":"11779:18:54"},{"kind":"number","nativeSrc":"11799:2:54","nodeType":"YulLiteral","src":"11799:2:54","type":"","value":"30"}],"functionName":{"name":"mstore","nativeSrc":"11772:6:54","nodeType":"YulIdentifier","src":"11772:6:54"},"nativeSrc":"11772:30:54","nodeType":"YulFunctionCall","src":"11772:30:54"},"nativeSrc":"11772:30:54","nodeType":"YulExpressionStatement","src":"11772:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11822:9:54","nodeType":"YulIdentifier","src":"11822:9:54"},{"kind":"number","nativeSrc":"11833:2:54","nodeType":"YulLiteral","src":"11833:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11818:3:54","nodeType":"YulIdentifier","src":"11818:3:54"},"nativeSrc":"11818:18:54","nodeType":"YulFunctionCall","src":"11818:18:54"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nativeSrc":"11838:32:54","nodeType":"YulLiteral","src":"11838:32:54","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nativeSrc":"11811:6:54","nodeType":"YulIdentifier","src":"11811:6:54"},"nativeSrc":"11811:60:54","nodeType":"YulFunctionCall","src":"11811:60:54"},"nativeSrc":"11811:60:54","nodeType":"YulExpressionStatement","src":"11811:60:54"},{"nativeSrc":"11880:26:54","nodeType":"YulAssignment","src":"11880:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11892:9:54","nodeType":"YulIdentifier","src":"11892:9:54"},{"kind":"number","nativeSrc":"11903:2:54","nodeType":"YulLiteral","src":"11903:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11888:3:54","nodeType":"YulIdentifier","src":"11888:3:54"},"nativeSrc":"11888:18:54","nodeType":"YulFunctionCall","src":"11888:18:54"},"variableNames":[{"name":"tail","nativeSrc":"11880:4:54","nodeType":"YulIdentifier","src":"11880:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11558:354:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11709:9:54","nodeType":"YulTypedName","src":"11709:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11723:4:54","nodeType":"YulTypedName","src":"11723:4:54","type":""}],"src":"11558:354:54"},{"body":{"nativeSrc":"11972:382:54","nodeType":"YulBlock","src":"11972:382:54","statements":[{"nativeSrc":"11982:22:54","nodeType":"YulAssignment","src":"11982:22:54","value":{"arguments":[{"kind":"number","nativeSrc":"11996:1:54","nodeType":"YulLiteral","src":"11996:1:54","type":"","value":"1"},{"name":"data","nativeSrc":"11999:4:54","nodeType":"YulIdentifier","src":"11999:4:54"}],"functionName":{"name":"shr","nativeSrc":"11992:3:54","nodeType":"YulIdentifier","src":"11992:3:54"},"nativeSrc":"11992:12:54","nodeType":"YulFunctionCall","src":"11992:12:54"},"variableNames":[{"name":"length","nativeSrc":"11982:6:54","nodeType":"YulIdentifier","src":"11982:6:54"}]},{"nativeSrc":"12013:38:54","nodeType":"YulVariableDeclaration","src":"12013:38:54","value":{"arguments":[{"name":"data","nativeSrc":"12043:4:54","nodeType":"YulIdentifier","src":"12043:4:54"},{"kind":"number","nativeSrc":"12049:1:54","nodeType":"YulLiteral","src":"12049:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"12039:3:54","nodeType":"YulIdentifier","src":"12039:3:54"},"nativeSrc":"12039:12:54","nodeType":"YulFunctionCall","src":"12039:12:54"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"12017:18:54","nodeType":"YulTypedName","src":"12017:18:54","type":""}]},{"body":{"nativeSrc":"12090:31:54","nodeType":"YulBlock","src":"12090:31:54","statements":[{"nativeSrc":"12092:27:54","nodeType":"YulAssignment","src":"12092:27:54","value":{"arguments":[{"name":"length","nativeSrc":"12106:6:54","nodeType":"YulIdentifier","src":"12106:6:54"},{"kind":"number","nativeSrc":"12114:4:54","nodeType":"YulLiteral","src":"12114:4:54","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"12102:3:54","nodeType":"YulIdentifier","src":"12102:3:54"},"nativeSrc":"12102:17:54","nodeType":"YulFunctionCall","src":"12102:17:54"},"variableNames":[{"name":"length","nativeSrc":"12092:6:54","nodeType":"YulIdentifier","src":"12092:6:54"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"12070:18:54","nodeType":"YulIdentifier","src":"12070:18:54"}],"functionName":{"name":"iszero","nativeSrc":"12063:6:54","nodeType":"YulIdentifier","src":"12063:6:54"},"nativeSrc":"12063:26:54","nodeType":"YulFunctionCall","src":"12063:26:54"},"nativeSrc":"12060:61:54","nodeType":"YulIf","src":"12060:61:54"},{"body":{"nativeSrc":"12180:168:54","nodeType":"YulBlock","src":"12180:168:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12201:1:54","nodeType":"YulLiteral","src":"12201:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"12204:77:54","nodeType":"YulLiteral","src":"12204:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12194:6:54","nodeType":"YulIdentifier","src":"12194:6:54"},"nativeSrc":"12194:88:54","nodeType":"YulFunctionCall","src":"12194:88:54"},"nativeSrc":"12194:88:54","nodeType":"YulExpressionStatement","src":"12194:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12302:1:54","nodeType":"YulLiteral","src":"12302:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"12305:4:54","nodeType":"YulLiteral","src":"12305:4:54","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"12295:6:54","nodeType":"YulIdentifier","src":"12295:6:54"},"nativeSrc":"12295:15:54","nodeType":"YulFunctionCall","src":"12295:15:54"},"nativeSrc":"12295:15:54","nodeType":"YulExpressionStatement","src":"12295:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12330:1:54","nodeType":"YulLiteral","src":"12330:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"12333:4:54","nodeType":"YulLiteral","src":"12333:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12323:6:54","nodeType":"YulIdentifier","src":"12323:6:54"},"nativeSrc":"12323:15:54","nodeType":"YulFunctionCall","src":"12323:15:54"},"nativeSrc":"12323:15:54","nodeType":"YulExpressionStatement","src":"12323:15:54"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"12136:18:54","nodeType":"YulIdentifier","src":"12136:18:54"},{"arguments":[{"name":"length","nativeSrc":"12159:6:54","nodeType":"YulIdentifier","src":"12159:6:54"},{"kind":"number","nativeSrc":"12167:2:54","nodeType":"YulLiteral","src":"12167:2:54","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"12156:2:54","nodeType":"YulIdentifier","src":"12156:2:54"},"nativeSrc":"12156:14:54","nodeType":"YulFunctionCall","src":"12156:14:54"}],"functionName":{"name":"eq","nativeSrc":"12133:2:54","nodeType":"YulIdentifier","src":"12133:2:54"},"nativeSrc":"12133:38:54","nodeType":"YulFunctionCall","src":"12133:38:54"},"nativeSrc":"12130:218:54","nodeType":"YulIf","src":"12130:218:54"}]},"name":"extract_byte_array_length","nativeSrc":"11917:437:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"11952:4:54","nodeType":"YulTypedName","src":"11952:4:54","type":""}],"returnVariables":[{"name":"length","nativeSrc":"11961:6:54","nodeType":"YulTypedName","src":"11961:6:54","type":""}],"src":"11917:437:54"},{"body":{"nativeSrc":"12506:124:54","nodeType":"YulBlock","src":"12506:124:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12529:3:54","nodeType":"YulIdentifier","src":"12529:3:54"},{"name":"value0","nativeSrc":"12534:6:54","nodeType":"YulIdentifier","src":"12534:6:54"},{"name":"value1","nativeSrc":"12542:6:54","nodeType":"YulIdentifier","src":"12542:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"12516:12:54","nodeType":"YulIdentifier","src":"12516:12:54"},"nativeSrc":"12516:33:54","nodeType":"YulFunctionCall","src":"12516:33:54"},"nativeSrc":"12516:33:54","nodeType":"YulExpressionStatement","src":"12516:33:54"},{"nativeSrc":"12558:26:54","nodeType":"YulVariableDeclaration","src":"12558:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"12572:3:54","nodeType":"YulIdentifier","src":"12572:3:54"},{"name":"value1","nativeSrc":"12577:6:54","nodeType":"YulIdentifier","src":"12577:6:54"}],"functionName":{"name":"add","nativeSrc":"12568:3:54","nodeType":"YulIdentifier","src":"12568:3:54"},"nativeSrc":"12568:16:54","nodeType":"YulFunctionCall","src":"12568:16:54"},"variables":[{"name":"_1","nativeSrc":"12562:2:54","nodeType":"YulTypedName","src":"12562:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"12600:2:54","nodeType":"YulIdentifier","src":"12600:2:54"},{"kind":"number","nativeSrc":"12604:1:54","nodeType":"YulLiteral","src":"12604:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12593:6:54","nodeType":"YulIdentifier","src":"12593:6:54"},"nativeSrc":"12593:13:54","nodeType":"YulFunctionCall","src":"12593:13:54"},"nativeSrc":"12593:13:54","nodeType":"YulExpressionStatement","src":"12593:13:54"},{"nativeSrc":"12615:9:54","nodeType":"YulAssignment","src":"12615:9:54","value":{"name":"_1","nativeSrc":"12622:2:54","nodeType":"YulIdentifier","src":"12622:2:54"},"variableNames":[{"name":"end","nativeSrc":"12615:3:54","nodeType":"YulIdentifier","src":"12615:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12359:271:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12474:3:54","nodeType":"YulTypedName","src":"12474:3:54","type":""},{"name":"value1","nativeSrc":"12479:6:54","nodeType":"YulTypedName","src":"12479:6:54","type":""},{"name":"value0","nativeSrc":"12487:6:54","nodeType":"YulTypedName","src":"12487:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12498:3:54","nodeType":"YulTypedName","src":"12498:3:54","type":""}],"src":"12359:271:54"},{"body":{"nativeSrc":"12809:228:54","nodeType":"YulBlock","src":"12809:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12826:9:54","nodeType":"YulIdentifier","src":"12826:9:54"},{"kind":"number","nativeSrc":"12837:2:54","nodeType":"YulLiteral","src":"12837:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12819:6:54","nodeType":"YulIdentifier","src":"12819:6:54"},"nativeSrc":"12819:21:54","nodeType":"YulFunctionCall","src":"12819:21:54"},"nativeSrc":"12819:21:54","nodeType":"YulExpressionStatement","src":"12819:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12860:9:54","nodeType":"YulIdentifier","src":"12860:9:54"},{"kind":"number","nativeSrc":"12871:2:54","nodeType":"YulLiteral","src":"12871:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12856:3:54","nodeType":"YulIdentifier","src":"12856:3:54"},"nativeSrc":"12856:18:54","nodeType":"YulFunctionCall","src":"12856:18:54"},{"kind":"number","nativeSrc":"12876:2:54","nodeType":"YulLiteral","src":"12876:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"12849:6:54","nodeType":"YulIdentifier","src":"12849:6:54"},"nativeSrc":"12849:30:54","nodeType":"YulFunctionCall","src":"12849:30:54"},"nativeSrc":"12849:30:54","nodeType":"YulExpressionStatement","src":"12849:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12899:9:54","nodeType":"YulIdentifier","src":"12899:9:54"},{"kind":"number","nativeSrc":"12910:2:54","nodeType":"YulLiteral","src":"12910:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12895:3:54","nodeType":"YulIdentifier","src":"12895:3:54"},"nativeSrc":"12895:18:54","nodeType":"YulFunctionCall","src":"12895:18:54"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nativeSrc":"12915:34:54","nodeType":"YulLiteral","src":"12915:34:54","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nativeSrc":"12888:6:54","nodeType":"YulIdentifier","src":"12888:6:54"},"nativeSrc":"12888:62:54","nodeType":"YulFunctionCall","src":"12888:62:54"},"nativeSrc":"12888:62:54","nodeType":"YulExpressionStatement","src":"12888:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12970:9:54","nodeType":"YulIdentifier","src":"12970:9:54"},{"kind":"number","nativeSrc":"12981:2:54","nodeType":"YulLiteral","src":"12981:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12966:3:54","nodeType":"YulIdentifier","src":"12966:3:54"},"nativeSrc":"12966:18:54","nodeType":"YulFunctionCall","src":"12966:18:54"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"12986:8:54","nodeType":"YulLiteral","src":"12986:8:54","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"12959:6:54","nodeType":"YulIdentifier","src":"12959:6:54"},"nativeSrc":"12959:36:54","nodeType":"YulFunctionCall","src":"12959:36:54"},"nativeSrc":"12959:36:54","nodeType":"YulExpressionStatement","src":"12959:36:54"},{"nativeSrc":"13004:27:54","nodeType":"YulAssignment","src":"13004:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"13016:9:54","nodeType":"YulIdentifier","src":"13016:9:54"},{"kind":"number","nativeSrc":"13027:3:54","nodeType":"YulLiteral","src":"13027:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13012:3:54","nodeType":"YulIdentifier","src":"13012:3:54"},"nativeSrc":"13012:19:54","nodeType":"YulFunctionCall","src":"13012:19:54"},"variableNames":[{"name":"tail","nativeSrc":"13004:4:54","nodeType":"YulIdentifier","src":"13004:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12635:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12786:9:54","nodeType":"YulTypedName","src":"12786:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12800:4:54","nodeType":"YulTypedName","src":"12800:4:54","type":""}],"src":"12635:402:54"},{"body":{"nativeSrc":"13216:309:54","nodeType":"YulBlock","src":"13216:309:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13233:9:54","nodeType":"YulIdentifier","src":"13233:9:54"},{"kind":"number","nativeSrc":"13244:2:54","nodeType":"YulLiteral","src":"13244:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13226:6:54","nodeType":"YulIdentifier","src":"13226:6:54"},"nativeSrc":"13226:21:54","nodeType":"YulFunctionCall","src":"13226:21:54"},"nativeSrc":"13226:21:54","nodeType":"YulExpressionStatement","src":"13226:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13267:9:54","nodeType":"YulIdentifier","src":"13267:9:54"},{"kind":"number","nativeSrc":"13278:2:54","nodeType":"YulLiteral","src":"13278:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13263:3:54","nodeType":"YulIdentifier","src":"13263:3:54"},"nativeSrc":"13263:18:54","nodeType":"YulFunctionCall","src":"13263:18:54"},{"kind":"number","nativeSrc":"13283:2:54","nodeType":"YulLiteral","src":"13283:2:54","type":"","value":"79"}],"functionName":{"name":"mstore","nativeSrc":"13256:6:54","nodeType":"YulIdentifier","src":"13256:6:54"},"nativeSrc":"13256:30:54","nodeType":"YulFunctionCall","src":"13256:30:54"},"nativeSrc":"13256:30:54","nodeType":"YulExpressionStatement","src":"13256:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13306:9:54","nodeType":"YulIdentifier","src":"13306:9:54"},{"kind":"number","nativeSrc":"13317:2:54","nodeType":"YulLiteral","src":"13317:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13302:3:54","nodeType":"YulIdentifier","src":"13302:3:54"},"nativeSrc":"13302:18:54","nodeType":"YulFunctionCall","src":"13302:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e","kind":"string","nativeSrc":"13322:34:54","nodeType":"YulLiteral","src":"13322:34:54","type":"","value":"OmnichainGovernanceExecutor::can"}],"functionName":{"name":"mstore","nativeSrc":"13295:6:54","nodeType":"YulIdentifier","src":"13295:6:54"},"nativeSrc":"13295:62:54","nodeType":"YulFunctionCall","src":"13295:62:54"},"nativeSrc":"13295:62:54","nodeType":"YulExpressionStatement","src":"13295:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13377:9:54","nodeType":"YulIdentifier","src":"13377:9:54"},{"kind":"number","nativeSrc":"13388:2:54","nodeType":"YulLiteral","src":"13388:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13373:3:54","nodeType":"YulIdentifier","src":"13373:3:54"},"nativeSrc":"13373:18:54","nodeType":"YulFunctionCall","src":"13373:18:54"},{"hexValue":"63656c3a2070726f706f73616c2073686f756c64206265207175657565642061","kind":"string","nativeSrc":"13393:34:54","nodeType":"YulLiteral","src":"13393:34:54","type":"","value":"cel: proposal should be queued a"}],"functionName":{"name":"mstore","nativeSrc":"13366:6:54","nodeType":"YulIdentifier","src":"13366:6:54"},"nativeSrc":"13366:62:54","nodeType":"YulFunctionCall","src":"13366:62:54"},"nativeSrc":"13366:62:54","nodeType":"YulExpressionStatement","src":"13366:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13448:9:54","nodeType":"YulIdentifier","src":"13448:9:54"},{"kind":"number","nativeSrc":"13459:3:54","nodeType":"YulLiteral","src":"13459:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13444:3:54","nodeType":"YulIdentifier","src":"13444:3:54"},"nativeSrc":"13444:19:54","nodeType":"YulFunctionCall","src":"13444:19:54"},{"hexValue":"6e64206e6f74206578656375746564","kind":"string","nativeSrc":"13465:17:54","nodeType":"YulLiteral","src":"13465:17:54","type":"","value":"nd not executed"}],"functionName":{"name":"mstore","nativeSrc":"13437:6:54","nodeType":"YulIdentifier","src":"13437:6:54"},"nativeSrc":"13437:46:54","nodeType":"YulFunctionCall","src":"13437:46:54"},"nativeSrc":"13437:46:54","nodeType":"YulExpressionStatement","src":"13437:46:54"},{"nativeSrc":"13492:27:54","nodeType":"YulAssignment","src":"13492:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"13504:9:54","nodeType":"YulIdentifier","src":"13504:9:54"},{"kind":"number","nativeSrc":"13515:3:54","nodeType":"YulLiteral","src":"13515:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"13500:3:54","nodeType":"YulIdentifier","src":"13500:3:54"},"nativeSrc":"13500:19:54","nodeType":"YulFunctionCall","src":"13500:19:54"},"variableNames":[{"name":"tail","nativeSrc":"13492:4:54","nodeType":"YulIdentifier","src":"13492:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13042:483:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13193:9:54","nodeType":"YulTypedName","src":"13193:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13207:4:54","nodeType":"YulTypedName","src":"13207:4:54","type":""}],"src":"13042:483:54"},{"body":{"nativeSrc":"13704:250:54","nodeType":"YulBlock","src":"13704:250:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13721:9:54","nodeType":"YulIdentifier","src":"13721:9:54"},{"kind":"number","nativeSrc":"13732:2:54","nodeType":"YulLiteral","src":"13732:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13714:6:54","nodeType":"YulIdentifier","src":"13714:6:54"},"nativeSrc":"13714:21:54","nodeType":"YulFunctionCall","src":"13714:21:54"},"nativeSrc":"13714:21:54","nodeType":"YulExpressionStatement","src":"13714:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13755:9:54","nodeType":"YulIdentifier","src":"13755:9:54"},{"kind":"number","nativeSrc":"13766:2:54","nodeType":"YulLiteral","src":"13766:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13751:3:54","nodeType":"YulIdentifier","src":"13751:3:54"},"nativeSrc":"13751:18:54","nodeType":"YulFunctionCall","src":"13751:18:54"},{"kind":"number","nativeSrc":"13771:2:54","nodeType":"YulLiteral","src":"13771:2:54","type":"","value":"60"}],"functionName":{"name":"mstore","nativeSrc":"13744:6:54","nodeType":"YulIdentifier","src":"13744:6:54"},"nativeSrc":"13744:30:54","nodeType":"YulFunctionCall","src":"13744:30:54"},"nativeSrc":"13744:30:54","nodeType":"YulExpressionStatement","src":"13744:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13794:9:54","nodeType":"YulIdentifier","src":"13794:9:54"},{"kind":"number","nativeSrc":"13805:2:54","nodeType":"YulLiteral","src":"13805:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13790:3:54","nodeType":"YulIdentifier","src":"13790:3:54"},"nativeSrc":"13790:18:54","nodeType":"YulFunctionCall","src":"13790:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e","kind":"string","nativeSrc":"13810:34:54","nodeType":"YulLiteral","src":"13810:34:54","type":"","value":"OmnichainGovernanceExecutor::can"}],"functionName":{"name":"mstore","nativeSrc":"13783:6:54","nodeType":"YulIdentifier","src":"13783:6:54"},"nativeSrc":"13783:62:54","nodeType":"YulFunctionCall","src":"13783:62:54"},"nativeSrc":"13783:62:54","nodeType":"YulExpressionStatement","src":"13783:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13865:9:54","nodeType":"YulIdentifier","src":"13865:9:54"},{"kind":"number","nativeSrc":"13876:2:54","nodeType":"YulLiteral","src":"13876:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13861:3:54","nodeType":"YulIdentifier","src":"13861:3:54"},"nativeSrc":"13861:18:54","nodeType":"YulFunctionCall","src":"13861:18:54"},{"hexValue":"63656c3a2073656e646572206d75737420626520677561726469616e","kind":"string","nativeSrc":"13881:30:54","nodeType":"YulLiteral","src":"13881:30:54","type":"","value":"cel: sender must be guardian"}],"functionName":{"name":"mstore","nativeSrc":"13854:6:54","nodeType":"YulIdentifier","src":"13854:6:54"},"nativeSrc":"13854:58:54","nodeType":"YulFunctionCall","src":"13854:58:54"},"nativeSrc":"13854:58:54","nodeType":"YulExpressionStatement","src":"13854:58:54"},{"nativeSrc":"13921:27:54","nodeType":"YulAssignment","src":"13921:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"13933:9:54","nodeType":"YulIdentifier","src":"13933:9:54"},{"kind":"number","nativeSrc":"13944:3:54","nodeType":"YulLiteral","src":"13944:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13929:3:54","nodeType":"YulIdentifier","src":"13929:3:54"},"nativeSrc":"13929:19:54","nodeType":"YulFunctionCall","src":"13929:19:54"},"variableNames":[{"name":"tail","nativeSrc":"13921:4:54","nodeType":"YulIdentifier","src":"13921:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13530:424:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13681:9:54","nodeType":"YulTypedName","src":"13681:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13695:4:54","nodeType":"YulTypedName","src":"13695:4:54","type":""}],"src":"13530:424:54"},{"body":{"nativeSrc":"13991:152:54","nodeType":"YulBlock","src":"13991:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14008:1:54","nodeType":"YulLiteral","src":"14008:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"14011:77:54","nodeType":"YulLiteral","src":"14011:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"14001:6:54","nodeType":"YulIdentifier","src":"14001:6:54"},"nativeSrc":"14001:88:54","nodeType":"YulFunctionCall","src":"14001:88:54"},"nativeSrc":"14001:88:54","nodeType":"YulExpressionStatement","src":"14001:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14105:1:54","nodeType":"YulLiteral","src":"14105:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"14108:4:54","nodeType":"YulLiteral","src":"14108:4:54","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"14098:6:54","nodeType":"YulIdentifier","src":"14098:6:54"},"nativeSrc":"14098:15:54","nodeType":"YulFunctionCall","src":"14098:15:54"},"nativeSrc":"14098:15:54","nodeType":"YulExpressionStatement","src":"14098:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14129:1:54","nodeType":"YulLiteral","src":"14129:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"14132:4:54","nodeType":"YulLiteral","src":"14132:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14122:6:54","nodeType":"YulIdentifier","src":"14122:6:54"},"nativeSrc":"14122:15:54","nodeType":"YulFunctionCall","src":"14122:15:54"},"nativeSrc":"14122:15:54","nodeType":"YulExpressionStatement","src":"14122:15:54"}]},"name":"panic_error_0x32","nativeSrc":"13959:184:54","nodeType":"YulFunctionDefinition","src":"13959:184:54"},{"body":{"nativeSrc":"14204:65:54","nodeType":"YulBlock","src":"14204:65:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14221:1:54","nodeType":"YulLiteral","src":"14221:1:54","type":"","value":"0"},{"name":"ptr","nativeSrc":"14224:3:54","nodeType":"YulIdentifier","src":"14224:3:54"}],"functionName":{"name":"mstore","nativeSrc":"14214:6:54","nodeType":"YulIdentifier","src":"14214:6:54"},"nativeSrc":"14214:14:54","nodeType":"YulFunctionCall","src":"14214:14:54"},"nativeSrc":"14214:14:54","nodeType":"YulExpressionStatement","src":"14214:14:54"},{"nativeSrc":"14237:26:54","nodeType":"YulAssignment","src":"14237:26:54","value":{"arguments":[{"kind":"number","nativeSrc":"14255:1:54","nodeType":"YulLiteral","src":"14255:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"14258:4:54","nodeType":"YulLiteral","src":"14258:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"14245:9:54","nodeType":"YulIdentifier","src":"14245:9:54"},"nativeSrc":"14245:18:54","nodeType":"YulFunctionCall","src":"14245:18:54"},"variableNames":[{"name":"data","nativeSrc":"14237:4:54","nodeType":"YulIdentifier","src":"14237:4:54"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"14148:121:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"14187:3:54","nodeType":"YulTypedName","src":"14187:3:54","type":""}],"returnVariables":[{"name":"data","nativeSrc":"14195:4:54","nodeType":"YulTypedName","src":"14195:4:54","type":""}],"src":"14148:121:54"},{"body":{"nativeSrc":"14332:771:54","nodeType":"YulBlock","src":"14332:771:54","statements":[{"nativeSrc":"14342:29:54","nodeType":"YulVariableDeclaration","src":"14342:29:54","value":{"arguments":[{"name":"value","nativeSrc":"14365:5:54","nodeType":"YulIdentifier","src":"14365:5:54"}],"functionName":{"name":"sload","nativeSrc":"14359:5:54","nodeType":"YulIdentifier","src":"14359:5:54"},"nativeSrc":"14359:12:54","nodeType":"YulFunctionCall","src":"14359:12:54"},"variables":[{"name":"slotValue","nativeSrc":"14346:9:54","nodeType":"YulTypedName","src":"14346:9:54","type":""}]},{"nativeSrc":"14380:50:54","nodeType":"YulVariableDeclaration","src":"14380:50:54","value":{"arguments":[{"name":"slotValue","nativeSrc":"14420:9:54","nodeType":"YulIdentifier","src":"14420:9:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"14394:25:54","nodeType":"YulIdentifier","src":"14394:25:54"},"nativeSrc":"14394:36:54","nodeType":"YulFunctionCall","src":"14394:36:54"},"variables":[{"name":"length","nativeSrc":"14384:6:54","nodeType":"YulTypedName","src":"14384:6:54","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14446:3:54","nodeType":"YulIdentifier","src":"14446:3:54"},{"name":"length","nativeSrc":"14451:6:54","nodeType":"YulIdentifier","src":"14451:6:54"}],"functionName":{"name":"mstore","nativeSrc":"14439:6:54","nodeType":"YulIdentifier","src":"14439:6:54"},"nativeSrc":"14439:19:54","nodeType":"YulFunctionCall","src":"14439:19:54"},"nativeSrc":"14439:19:54","nodeType":"YulExpressionStatement","src":"14439:19:54"},{"nativeSrc":"14467:14:54","nodeType":"YulVariableDeclaration","src":"14467:14:54","value":{"kind":"number","nativeSrc":"14477:4:54","nodeType":"YulLiteral","src":"14477:4:54","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"14471:2:54","nodeType":"YulTypedName","src":"14471:2:54","type":""}]},{"nativeSrc":"14490:11:54","nodeType":"YulVariableDeclaration","src":"14490:11:54","value":{"kind":"number","nativeSrc":"14500:1:54","nodeType":"YulLiteral","src":"14500:1:54","type":"","value":"1"},"variables":[{"name":"_2","nativeSrc":"14494:2:54","nodeType":"YulTypedName","src":"14494:2:54","type":""}]},{"cases":[{"body":{"nativeSrc":"14550:197:54","nodeType":"YulBlock","src":"14550:197:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14575:3:54","nodeType":"YulIdentifier","src":"14575:3:54"},{"name":"_1","nativeSrc":"14580:2:54","nodeType":"YulIdentifier","src":"14580:2:54"}],"functionName":{"name":"add","nativeSrc":"14571:3:54","nodeType":"YulIdentifier","src":"14571:3:54"},"nativeSrc":"14571:12:54","nodeType":"YulFunctionCall","src":"14571:12:54"},{"arguments":[{"name":"slotValue","nativeSrc":"14589:9:54","nodeType":"YulIdentifier","src":"14589:9:54"},{"kind":"number","nativeSrc":"14600:66:54","nodeType":"YulLiteral","src":"14600:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"14585:3:54","nodeType":"YulIdentifier","src":"14585:3:54"},"nativeSrc":"14585:82:54","nodeType":"YulFunctionCall","src":"14585:82:54"}],"functionName":{"name":"mstore","nativeSrc":"14564:6:54","nodeType":"YulIdentifier","src":"14564:6:54"},"nativeSrc":"14564:104:54","nodeType":"YulFunctionCall","src":"14564:104:54"},"nativeSrc":"14564:104:54","nodeType":"YulExpressionStatement","src":"14564:104:54"},{"nativeSrc":"14681:56:54","nodeType":"YulAssignment","src":"14681:56:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14696:3:54","nodeType":"YulIdentifier","src":"14696:3:54"},{"arguments":[{"kind":"number","nativeSrc":"14705:1:54","nodeType":"YulLiteral","src":"14705:1:54","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14722:6:54","nodeType":"YulIdentifier","src":"14722:6:54"}],"functionName":{"name":"iszero","nativeSrc":"14715:6:54","nodeType":"YulIdentifier","src":"14715:6:54"},"nativeSrc":"14715:14:54","nodeType":"YulFunctionCall","src":"14715:14:54"}],"functionName":{"name":"iszero","nativeSrc":"14708:6:54","nodeType":"YulIdentifier","src":"14708:6:54"},"nativeSrc":"14708:22:54","nodeType":"YulFunctionCall","src":"14708:22:54"}],"functionName":{"name":"shl","nativeSrc":"14701:3:54","nodeType":"YulIdentifier","src":"14701:3:54"},"nativeSrc":"14701:30:54","nodeType":"YulFunctionCall","src":"14701:30:54"}],"functionName":{"name":"add","nativeSrc":"14692:3:54","nodeType":"YulIdentifier","src":"14692:3:54"},"nativeSrc":"14692:40:54","nodeType":"YulFunctionCall","src":"14692:40:54"},{"name":"_1","nativeSrc":"14734:2:54","nodeType":"YulIdentifier","src":"14734:2:54"}],"functionName":{"name":"add","nativeSrc":"14688:3:54","nodeType":"YulIdentifier","src":"14688:3:54"},"nativeSrc":"14688:49:54","nodeType":"YulFunctionCall","src":"14688:49:54"},"variableNames":[{"name":"ret","nativeSrc":"14681:3:54","nodeType":"YulIdentifier","src":"14681:3:54"}]}]},"nativeSrc":"14543:204:54","nodeType":"YulCase","src":"14543:204:54","value":{"kind":"number","nativeSrc":"14548:1:54","nodeType":"YulLiteral","src":"14548:1:54","type":"","value":"0"}},{"body":{"nativeSrc":"14763:334:54","nodeType":"YulBlock","src":"14763:334:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14784:1:54","nodeType":"YulLiteral","src":"14784:1:54","type":"","value":"0"},{"name":"value","nativeSrc":"14787:5:54","nodeType":"YulIdentifier","src":"14787:5:54"}],"functionName":{"name":"mstore","nativeSrc":"14777:6:54","nodeType":"YulIdentifier","src":"14777:6:54"},"nativeSrc":"14777:16:54","nodeType":"YulFunctionCall","src":"14777:16:54"},"nativeSrc":"14777:16:54","nodeType":"YulExpressionStatement","src":"14777:16:54"},{"nativeSrc":"14806:31:54","nodeType":"YulVariableDeclaration","src":"14806:31:54","value":{"arguments":[{"kind":"number","nativeSrc":"14831:1:54","nodeType":"YulLiteral","src":"14831:1:54","type":"","value":"0"},{"name":"_1","nativeSrc":"14834:2:54","nodeType":"YulIdentifier","src":"14834:2:54"}],"functionName":{"name":"keccak256","nativeSrc":"14821:9:54","nodeType":"YulIdentifier","src":"14821:9:54"},"nativeSrc":"14821:16:54","nodeType":"YulFunctionCall","src":"14821:16:54"},"variables":[{"name":"dataPos","nativeSrc":"14810:7:54","nodeType":"YulTypedName","src":"14810:7:54","type":""}]},{"nativeSrc":"14850:10:54","nodeType":"YulVariableDeclaration","src":"14850:10:54","value":{"kind":"number","nativeSrc":"14859:1:54","nodeType":"YulLiteral","src":"14859:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14854:1:54","nodeType":"YulTypedName","src":"14854:1:54","type":""}]},{"body":{"nativeSrc":"14927:120:54","nodeType":"YulBlock","src":"14927:120:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14960:3:54","nodeType":"YulIdentifier","src":"14960:3:54"},{"name":"i","nativeSrc":"14965:1:54","nodeType":"YulIdentifier","src":"14965:1:54"}],"functionName":{"name":"add","nativeSrc":"14956:3:54","nodeType":"YulIdentifier","src":"14956:3:54"},"nativeSrc":"14956:11:54","nodeType":"YulFunctionCall","src":"14956:11:54"},{"name":"_1","nativeSrc":"14969:2:54","nodeType":"YulIdentifier","src":"14969:2:54"}],"functionName":{"name":"add","nativeSrc":"14952:3:54","nodeType":"YulIdentifier","src":"14952:3:54"},"nativeSrc":"14952:20:54","nodeType":"YulFunctionCall","src":"14952:20:54"},{"arguments":[{"name":"dataPos","nativeSrc":"14980:7:54","nodeType":"YulIdentifier","src":"14980:7:54"}],"functionName":{"name":"sload","nativeSrc":"14974:5:54","nodeType":"YulIdentifier","src":"14974:5:54"},"nativeSrc":"14974:14:54","nodeType":"YulFunctionCall","src":"14974:14:54"}],"functionName":{"name":"mstore","nativeSrc":"14945:6:54","nodeType":"YulIdentifier","src":"14945:6:54"},"nativeSrc":"14945:44:54","nodeType":"YulFunctionCall","src":"14945:44:54"},"nativeSrc":"14945:44:54","nodeType":"YulExpressionStatement","src":"14945:44:54"},{"nativeSrc":"15006:27:54","nodeType":"YulAssignment","src":"15006:27:54","value":{"arguments":[{"name":"dataPos","nativeSrc":"15021:7:54","nodeType":"YulIdentifier","src":"15021:7:54"},{"name":"_2","nativeSrc":"15030:2:54","nodeType":"YulIdentifier","src":"15030:2:54"}],"functionName":{"name":"add","nativeSrc":"15017:3:54","nodeType":"YulIdentifier","src":"15017:3:54"},"nativeSrc":"15017:16:54","nodeType":"YulFunctionCall","src":"15017:16:54"},"variableNames":[{"name":"dataPos","nativeSrc":"15006:7:54","nodeType":"YulIdentifier","src":"15006:7:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14884:1:54","nodeType":"YulIdentifier","src":"14884:1:54"},{"name":"length","nativeSrc":"14887:6:54","nodeType":"YulIdentifier","src":"14887:6:54"}],"functionName":{"name":"lt","nativeSrc":"14881:2:54","nodeType":"YulIdentifier","src":"14881:2:54"},"nativeSrc":"14881:13:54","nodeType":"YulFunctionCall","src":"14881:13:54"},"nativeSrc":"14873:174:54","nodeType":"YulForLoop","post":{"nativeSrc":"14895:19:54","nodeType":"YulBlock","src":"14895:19:54","statements":[{"nativeSrc":"14897:15:54","nodeType":"YulAssignment","src":"14897:15:54","value":{"arguments":[{"name":"i","nativeSrc":"14906:1:54","nodeType":"YulIdentifier","src":"14906:1:54"},{"name":"_1","nativeSrc":"14909:2:54","nodeType":"YulIdentifier","src":"14909:2:54"}],"functionName":{"name":"add","nativeSrc":"14902:3:54","nodeType":"YulIdentifier","src":"14902:3:54"},"nativeSrc":"14902:10:54","nodeType":"YulFunctionCall","src":"14902:10:54"},"variableNames":[{"name":"i","nativeSrc":"14897:1:54","nodeType":"YulIdentifier","src":"14897:1:54"}]}]},"pre":{"nativeSrc":"14877:3:54","nodeType":"YulBlock","src":"14877:3:54","statements":[]},"src":"14873:174:54"},{"nativeSrc":"15060:27:54","nodeType":"YulAssignment","src":"15060:27:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15075:3:54","nodeType":"YulIdentifier","src":"15075:3:54"},{"name":"i","nativeSrc":"15080:1:54","nodeType":"YulIdentifier","src":"15080:1:54"}],"functionName":{"name":"add","nativeSrc":"15071:3:54","nodeType":"YulIdentifier","src":"15071:3:54"},"nativeSrc":"15071:11:54","nodeType":"YulFunctionCall","src":"15071:11:54"},{"name":"_1","nativeSrc":"15084:2:54","nodeType":"YulIdentifier","src":"15084:2:54"}],"functionName":{"name":"add","nativeSrc":"15067:3:54","nodeType":"YulIdentifier","src":"15067:3:54"},"nativeSrc":"15067:20:54","nodeType":"YulFunctionCall","src":"15067:20:54"},"variableNames":[{"name":"ret","nativeSrc":"15060:3:54","nodeType":"YulIdentifier","src":"15060:3:54"}]}]},"nativeSrc":"14756:341:54","nodeType":"YulCase","src":"14756:341:54","value":{"kind":"number","nativeSrc":"14761:1:54","nodeType":"YulLiteral","src":"14761:1:54","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nativeSrc":"14521:9:54","nodeType":"YulIdentifier","src":"14521:9:54"},{"kind":"number","nativeSrc":"14532:1:54","nodeType":"YulLiteral","src":"14532:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"14517:3:54","nodeType":"YulIdentifier","src":"14517:3:54"},"nativeSrc":"14517:17:54","nodeType":"YulFunctionCall","src":"14517:17:54"},"nativeSrc":"14510:587:54","nodeType":"YulSwitch","src":"14510:587:54"}]},"name":"abi_encode_string_storage","nativeSrc":"14274:829:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14309:5:54","nodeType":"YulTypedName","src":"14309:5:54","type":""},{"name":"pos","nativeSrc":"14316:3:54","nodeType":"YulTypedName","src":"14316:3:54","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"14324:3:54","nodeType":"YulTypedName","src":"14324:3:54","type":""}],"src":"14274:829:54"},{"body":{"nativeSrc":"15353:411:54","nodeType":"YulBlock","src":"15353:411:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15370:9:54","nodeType":"YulIdentifier","src":"15370:9:54"},{"arguments":[{"name":"value0","nativeSrc":"15385:6:54","nodeType":"YulIdentifier","src":"15385:6:54"},{"kind":"number","nativeSrc":"15393:42:54","nodeType":"YulLiteral","src":"15393:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"15381:3:54","nodeType":"YulIdentifier","src":"15381:3:54"},"nativeSrc":"15381:55:54","nodeType":"YulFunctionCall","src":"15381:55:54"}],"functionName":{"name":"mstore","nativeSrc":"15363:6:54","nodeType":"YulIdentifier","src":"15363:6:54"},"nativeSrc":"15363:74:54","nodeType":"YulFunctionCall","src":"15363:74:54"},"nativeSrc":"15363:74:54","nodeType":"YulExpressionStatement","src":"15363:74:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15457:9:54","nodeType":"YulIdentifier","src":"15457:9:54"},{"kind":"number","nativeSrc":"15468:2:54","nodeType":"YulLiteral","src":"15468:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15453:3:54","nodeType":"YulIdentifier","src":"15453:3:54"},"nativeSrc":"15453:18:54","nodeType":"YulFunctionCall","src":"15453:18:54"},{"name":"value1","nativeSrc":"15473:6:54","nodeType":"YulIdentifier","src":"15473:6:54"}],"functionName":{"name":"mstore","nativeSrc":"15446:6:54","nodeType":"YulIdentifier","src":"15446:6:54"},"nativeSrc":"15446:34:54","nodeType":"YulFunctionCall","src":"15446:34:54"},"nativeSrc":"15446:34:54","nodeType":"YulExpressionStatement","src":"15446:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15500:9:54","nodeType":"YulIdentifier","src":"15500:9:54"},{"kind":"number","nativeSrc":"15511:2:54","nodeType":"YulLiteral","src":"15511:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15496:3:54","nodeType":"YulIdentifier","src":"15496:3:54"},"nativeSrc":"15496:18:54","nodeType":"YulFunctionCall","src":"15496:18:54"},{"kind":"number","nativeSrc":"15516:3:54","nodeType":"YulLiteral","src":"15516:3:54","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"15489:6:54","nodeType":"YulIdentifier","src":"15489:6:54"},"nativeSrc":"15489:31:54","nodeType":"YulFunctionCall","src":"15489:31:54"},"nativeSrc":"15489:31:54","nodeType":"YulExpressionStatement","src":"15489:31:54"},{"nativeSrc":"15529:68:54","nodeType":"YulVariableDeclaration","src":"15529:68:54","value":{"arguments":[{"name":"value2","nativeSrc":"15569:6:54","nodeType":"YulIdentifier","src":"15569:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"15581:9:54","nodeType":"YulIdentifier","src":"15581:9:54"},{"kind":"number","nativeSrc":"15592:3:54","nodeType":"YulLiteral","src":"15592:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"15577:3:54","nodeType":"YulIdentifier","src":"15577:3:54"},"nativeSrc":"15577:19:54","nodeType":"YulFunctionCall","src":"15577:19:54"}],"functionName":{"name":"abi_encode_string_storage","nativeSrc":"15543:25:54","nodeType":"YulIdentifier","src":"15543:25:54"},"nativeSrc":"15543:54:54","nodeType":"YulFunctionCall","src":"15543:54:54"},"variables":[{"name":"tail_1","nativeSrc":"15533:6:54","nodeType":"YulTypedName","src":"15533:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15617:9:54","nodeType":"YulIdentifier","src":"15617:9:54"},{"kind":"number","nativeSrc":"15628:2:54","nodeType":"YulLiteral","src":"15628:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15613:3:54","nodeType":"YulIdentifier","src":"15613:3:54"},"nativeSrc":"15613:18:54","nodeType":"YulFunctionCall","src":"15613:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"15637:6:54","nodeType":"YulIdentifier","src":"15637:6:54"},{"name":"headStart","nativeSrc":"15645:9:54","nodeType":"YulIdentifier","src":"15645:9:54"}],"functionName":{"name":"sub","nativeSrc":"15633:3:54","nodeType":"YulIdentifier","src":"15633:3:54"},"nativeSrc":"15633:22:54","nodeType":"YulFunctionCall","src":"15633:22:54"}],"functionName":{"name":"mstore","nativeSrc":"15606:6:54","nodeType":"YulIdentifier","src":"15606:6:54"},"nativeSrc":"15606:50:54","nodeType":"YulFunctionCall","src":"15606:50:54"},"nativeSrc":"15606:50:54","nodeType":"YulExpressionStatement","src":"15606:50:54"},{"nativeSrc":"15665:49:54","nodeType":"YulAssignment","src":"15665:49:54","value":{"arguments":[{"name":"value3","nativeSrc":"15699:6:54","nodeType":"YulIdentifier","src":"15699:6:54"},{"name":"tail_1","nativeSrc":"15707:6:54","nodeType":"YulIdentifier","src":"15707:6:54"}],"functionName":{"name":"abi_encode_string_storage","nativeSrc":"15673:25:54","nodeType":"YulIdentifier","src":"15673:25:54"},"nativeSrc":"15673:41:54","nodeType":"YulFunctionCall","src":"15673:41:54"},"variableNames":[{"name":"tail","nativeSrc":"15665:4:54","nodeType":"YulIdentifier","src":"15665:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15734:9:54","nodeType":"YulIdentifier","src":"15734:9:54"},{"kind":"number","nativeSrc":"15745:3:54","nodeType":"YulLiteral","src":"15745:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15730:3:54","nodeType":"YulIdentifier","src":"15730:3:54"},"nativeSrc":"15730:19:54","nodeType":"YulFunctionCall","src":"15730:19:54"},{"name":"value4","nativeSrc":"15751:6:54","nodeType":"YulIdentifier","src":"15751:6:54"}],"functionName":{"name":"mstore","nativeSrc":"15723:6:54","nodeType":"YulIdentifier","src":"15723:6:54"},"nativeSrc":"15723:35:54","nodeType":"YulFunctionCall","src":"15723:35:54"},"nativeSrc":"15723:35:54","nodeType":"YulExpressionStatement","src":"15723:35:54"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"15108:656:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15290:9:54","nodeType":"YulTypedName","src":"15290:9:54","type":""},{"name":"value4","nativeSrc":"15301:6:54","nodeType":"YulTypedName","src":"15301:6:54","type":""},{"name":"value3","nativeSrc":"15309:6:54","nodeType":"YulTypedName","src":"15309:6:54","type":""},{"name":"value2","nativeSrc":"15317:6:54","nodeType":"YulTypedName","src":"15317:6:54","type":""},{"name":"value1","nativeSrc":"15325:6:54","nodeType":"YulTypedName","src":"15325:6:54","type":""},{"name":"value0","nativeSrc":"15333:6:54","nodeType":"YulTypedName","src":"15333:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15344:4:54","nodeType":"YulTypedName","src":"15344:4:54","type":""}],"src":"15108:656:54"},{"body":{"nativeSrc":"15835:259:54","nodeType":"YulBlock","src":"15835:259:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15852:3:54","nodeType":"YulIdentifier","src":"15852:3:54"},{"name":"length","nativeSrc":"15857:6:54","nodeType":"YulIdentifier","src":"15857:6:54"}],"functionName":{"name":"mstore","nativeSrc":"15845:6:54","nodeType":"YulIdentifier","src":"15845:6:54"},"nativeSrc":"15845:19:54","nodeType":"YulFunctionCall","src":"15845:19:54"},"nativeSrc":"15845:19:54","nodeType":"YulExpressionStatement","src":"15845:19:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15890:3:54","nodeType":"YulIdentifier","src":"15890:3:54"},{"kind":"number","nativeSrc":"15895:4:54","nodeType":"YulLiteral","src":"15895:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15886:3:54","nodeType":"YulIdentifier","src":"15886:3:54"},"nativeSrc":"15886:14:54","nodeType":"YulFunctionCall","src":"15886:14:54"},{"name":"start","nativeSrc":"15902:5:54","nodeType":"YulIdentifier","src":"15902:5:54"},{"name":"length","nativeSrc":"15909:6:54","nodeType":"YulIdentifier","src":"15909:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"15873:12:54","nodeType":"YulIdentifier","src":"15873:12:54"},"nativeSrc":"15873:43:54","nodeType":"YulFunctionCall","src":"15873:43:54"},"nativeSrc":"15873:43:54","nodeType":"YulExpressionStatement","src":"15873:43:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15940:3:54","nodeType":"YulIdentifier","src":"15940:3:54"},{"name":"length","nativeSrc":"15945:6:54","nodeType":"YulIdentifier","src":"15945:6:54"}],"functionName":{"name":"add","nativeSrc":"15936:3:54","nodeType":"YulIdentifier","src":"15936:3:54"},"nativeSrc":"15936:16:54","nodeType":"YulFunctionCall","src":"15936:16:54"},{"kind":"number","nativeSrc":"15954:4:54","nodeType":"YulLiteral","src":"15954:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15932:3:54","nodeType":"YulIdentifier","src":"15932:3:54"},"nativeSrc":"15932:27:54","nodeType":"YulFunctionCall","src":"15932:27:54"},{"kind":"number","nativeSrc":"15961:1:54","nodeType":"YulLiteral","src":"15961:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15925:6:54","nodeType":"YulIdentifier","src":"15925:6:54"},"nativeSrc":"15925:38:54","nodeType":"YulFunctionCall","src":"15925:38:54"},"nativeSrc":"15925:38:54","nodeType":"YulExpressionStatement","src":"15925:38:54"},{"nativeSrc":"15972:116:54","nodeType":"YulAssignment","src":"15972:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15987:3:54","nodeType":"YulIdentifier","src":"15987:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"16000:6:54","nodeType":"YulIdentifier","src":"16000:6:54"},{"kind":"number","nativeSrc":"16008:2:54","nodeType":"YulLiteral","src":"16008:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"15996:3:54","nodeType":"YulIdentifier","src":"15996:3:54"},"nativeSrc":"15996:15:54","nodeType":"YulFunctionCall","src":"15996:15:54"},{"kind":"number","nativeSrc":"16013:66:54","nodeType":"YulLiteral","src":"16013:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"15992:3:54","nodeType":"YulIdentifier","src":"15992:3:54"},"nativeSrc":"15992:88:54","nodeType":"YulFunctionCall","src":"15992:88:54"}],"functionName":{"name":"add","nativeSrc":"15983:3:54","nodeType":"YulIdentifier","src":"15983:3:54"},"nativeSrc":"15983:98:54","nodeType":"YulFunctionCall","src":"15983:98:54"},{"kind":"number","nativeSrc":"16083:4:54","nodeType":"YulLiteral","src":"16083:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15979:3:54","nodeType":"YulIdentifier","src":"15979:3:54"},"nativeSrc":"15979:109:54","nodeType":"YulFunctionCall","src":"15979:109:54"},"variableNames":[{"name":"end","nativeSrc":"15972:3:54","nodeType":"YulIdentifier","src":"15972:3:54"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"15769:325:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"15804:5:54","nodeType":"YulTypedName","src":"15804:5:54","type":""},{"name":"length","nativeSrc":"15811:6:54","nodeType":"YulTypedName","src":"15811:6:54","type":""},{"name":"pos","nativeSrc":"15819:3:54","nodeType":"YulTypedName","src":"15819:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15827:3:54","nodeType":"YulTypedName","src":"15827:3:54","type":""}],"src":"15769:325:54"},{"body":{"nativeSrc":"16254:171:54","nodeType":"YulBlock","src":"16254:171:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16271:9:54","nodeType":"YulIdentifier","src":"16271:9:54"},{"arguments":[{"name":"value0","nativeSrc":"16286:6:54","nodeType":"YulIdentifier","src":"16286:6:54"},{"kind":"number","nativeSrc":"16294:6:54","nodeType":"YulLiteral","src":"16294:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"16282:3:54","nodeType":"YulIdentifier","src":"16282:3:54"},"nativeSrc":"16282:19:54","nodeType":"YulFunctionCall","src":"16282:19:54"}],"functionName":{"name":"mstore","nativeSrc":"16264:6:54","nodeType":"YulIdentifier","src":"16264:6:54"},"nativeSrc":"16264:38:54","nodeType":"YulFunctionCall","src":"16264:38:54"},"nativeSrc":"16264:38:54","nodeType":"YulExpressionStatement","src":"16264:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16322:9:54","nodeType":"YulIdentifier","src":"16322:9:54"},{"kind":"number","nativeSrc":"16333:2:54","nodeType":"YulLiteral","src":"16333:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16318:3:54","nodeType":"YulIdentifier","src":"16318:3:54"},"nativeSrc":"16318:18:54","nodeType":"YulFunctionCall","src":"16318:18:54"},{"kind":"number","nativeSrc":"16338:2:54","nodeType":"YulLiteral","src":"16338:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"16311:6:54","nodeType":"YulIdentifier","src":"16311:6:54"},"nativeSrc":"16311:30:54","nodeType":"YulFunctionCall","src":"16311:30:54"},"nativeSrc":"16311:30:54","nodeType":"YulExpressionStatement","src":"16311:30:54"},{"nativeSrc":"16350:69:54","nodeType":"YulAssignment","src":"16350:69:54","value":{"arguments":[{"name":"value1","nativeSrc":"16384:6:54","nodeType":"YulIdentifier","src":"16384:6:54"},{"name":"value2","nativeSrc":"16392:6:54","nodeType":"YulIdentifier","src":"16392:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"16404:9:54","nodeType":"YulIdentifier","src":"16404:9:54"},{"kind":"number","nativeSrc":"16415:2:54","nodeType":"YulLiteral","src":"16415:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16400:3:54","nodeType":"YulIdentifier","src":"16400:3:54"},"nativeSrc":"16400:18:54","nodeType":"YulFunctionCall","src":"16400:18:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"16358:25:54","nodeType":"YulIdentifier","src":"16358:25:54"},"nativeSrc":"16358:61:54","nodeType":"YulFunctionCall","src":"16358:61:54"},"variableNames":[{"name":"tail","nativeSrc":"16350:4:54","nodeType":"YulIdentifier","src":"16350:4:54"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16099:326:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16207:9:54","nodeType":"YulTypedName","src":"16207:9:54","type":""},{"name":"value2","nativeSrc":"16218:6:54","nodeType":"YulTypedName","src":"16218:6:54","type":""},{"name":"value1","nativeSrc":"16226:6:54","nodeType":"YulTypedName","src":"16226:6:54","type":""},{"name":"value0","nativeSrc":"16234:6:54","nodeType":"YulTypedName","src":"16234:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16245:4:54","nodeType":"YulTypedName","src":"16245:4:54","type":""}],"src":"16099:326:54"},{"body":{"nativeSrc":"16604:228:54","nodeType":"YulBlock","src":"16604:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16621:9:54","nodeType":"YulIdentifier","src":"16621:9:54"},{"kind":"number","nativeSrc":"16632:2:54","nodeType":"YulLiteral","src":"16632:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16614:6:54","nodeType":"YulIdentifier","src":"16614:6:54"},"nativeSrc":"16614:21:54","nodeType":"YulFunctionCall","src":"16614:21:54"},"nativeSrc":"16614:21:54","nodeType":"YulExpressionStatement","src":"16614:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16655:9:54","nodeType":"YulIdentifier","src":"16655:9:54"},{"kind":"number","nativeSrc":"16666:2:54","nodeType":"YulLiteral","src":"16666:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16651:3:54","nodeType":"YulIdentifier","src":"16651:3:54"},"nativeSrc":"16651:18:54","nodeType":"YulFunctionCall","src":"16651:18:54"},{"kind":"number","nativeSrc":"16671:2:54","nodeType":"YulLiteral","src":"16671:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"16644:6:54","nodeType":"YulIdentifier","src":"16644:6:54"},"nativeSrc":"16644:30:54","nodeType":"YulFunctionCall","src":"16644:30:54"},"nativeSrc":"16644:30:54","nodeType":"YulExpressionStatement","src":"16644:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16694:9:54","nodeType":"YulIdentifier","src":"16694:9:54"},{"kind":"number","nativeSrc":"16705:2:54","nodeType":"YulLiteral","src":"16705:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16690:3:54","nodeType":"YulIdentifier","src":"16690:3:54"},"nativeSrc":"16690:18:54","nodeType":"YulFunctionCall","src":"16690:18:54"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nativeSrc":"16710:34:54","nodeType":"YulLiteral","src":"16710:34:54","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nativeSrc":"16683:6:54","nodeType":"YulIdentifier","src":"16683:6:54"},"nativeSrc":"16683:62:54","nodeType":"YulFunctionCall","src":"16683:62:54"},"nativeSrc":"16683:62:54","nodeType":"YulExpressionStatement","src":"16683:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16765:9:54","nodeType":"YulIdentifier","src":"16765:9:54"},{"kind":"number","nativeSrc":"16776:2:54","nodeType":"YulLiteral","src":"16776:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16761:3:54","nodeType":"YulIdentifier","src":"16761:3:54"},"nativeSrc":"16761:18:54","nodeType":"YulFunctionCall","src":"16761:18:54"},{"hexValue":"204c7a417070","kind":"string","nativeSrc":"16781:8:54","nodeType":"YulLiteral","src":"16781:8:54","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nativeSrc":"16754:6:54","nodeType":"YulIdentifier","src":"16754:6:54"},"nativeSrc":"16754:36:54","nodeType":"YulFunctionCall","src":"16754:36:54"},"nativeSrc":"16754:36:54","nodeType":"YulExpressionStatement","src":"16754:36:54"},{"nativeSrc":"16799:27:54","nodeType":"YulAssignment","src":"16799:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"16811:9:54","nodeType":"YulIdentifier","src":"16811:9:54"},{"kind":"number","nativeSrc":"16822:3:54","nodeType":"YulLiteral","src":"16822:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16807:3:54","nodeType":"YulIdentifier","src":"16807:3:54"},"nativeSrc":"16807:19:54","nodeType":"YulFunctionCall","src":"16807:19:54"},"variableNames":[{"name":"tail","nativeSrc":"16799:4:54","nodeType":"YulIdentifier","src":"16799:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16430:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16581:9:54","nodeType":"YulTypedName","src":"16581:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16595:4:54","nodeType":"YulTypedName","src":"16595:4:54","type":""}],"src":"16430:402:54"},{"body":{"nativeSrc":"17011:254:54","nodeType":"YulBlock","src":"17011:254:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17028:9:54","nodeType":"YulIdentifier","src":"17028:9:54"},{"kind":"number","nativeSrc":"17039:2:54","nodeType":"YulLiteral","src":"17039:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17021:6:54","nodeType":"YulIdentifier","src":"17021:6:54"},"nativeSrc":"17021:21:54","nodeType":"YulFunctionCall","src":"17021:21:54"},"nativeSrc":"17021:21:54","nodeType":"YulExpressionStatement","src":"17021:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17062:9:54","nodeType":"YulIdentifier","src":"17062:9:54"},{"kind":"number","nativeSrc":"17073:2:54","nodeType":"YulLiteral","src":"17073:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17058:3:54","nodeType":"YulIdentifier","src":"17058:3:54"},"nativeSrc":"17058:18:54","nodeType":"YulFunctionCall","src":"17058:18:54"},{"kind":"number","nativeSrc":"17078:2:54","nodeType":"YulLiteral","src":"17078:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"17051:6:54","nodeType":"YulIdentifier","src":"17051:6:54"},"nativeSrc":"17051:30:54","nodeType":"YulFunctionCall","src":"17051:30:54"},"nativeSrc":"17051:30:54","nodeType":"YulExpressionStatement","src":"17051:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17101:9:54","nodeType":"YulIdentifier","src":"17101:9:54"},{"kind":"number","nativeSrc":"17112:2:54","nodeType":"YulLiteral","src":"17112:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17097:3:54","nodeType":"YulIdentifier","src":"17097:3:54"},"nativeSrc":"17097:18:54","nodeType":"YulFunctionCall","src":"17097:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a736574","kind":"string","nativeSrc":"17117:34:54","nodeType":"YulLiteral","src":"17117:34:54","type":"","value":"OmnichainGovernanceExecutor::set"}],"functionName":{"name":"mstore","nativeSrc":"17090:6:54","nodeType":"YulIdentifier","src":"17090:6:54"},"nativeSrc":"17090:62:54","nodeType":"YulFunctionCall","src":"17090:62:54"},"nativeSrc":"17090:62:54","nodeType":"YulExpressionStatement","src":"17090:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17172:9:54","nodeType":"YulIdentifier","src":"17172:9:54"},{"kind":"number","nativeSrc":"17183:2:54","nodeType":"YulLiteral","src":"17183:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17168:3:54","nodeType":"YulIdentifier","src":"17168:3:54"},"nativeSrc":"17168:18:54","nodeType":"YulFunctionCall","src":"17168:18:54"},{"hexValue":"477561726469616e3a206f776e6572206f7220677561726469616e206f6e6c79","kind":"string","nativeSrc":"17188:34:54","nodeType":"YulLiteral","src":"17188:34:54","type":"","value":"Guardian: owner or guardian only"}],"functionName":{"name":"mstore","nativeSrc":"17161:6:54","nodeType":"YulIdentifier","src":"17161:6:54"},"nativeSrc":"17161:62:54","nodeType":"YulFunctionCall","src":"17161:62:54"},"nativeSrc":"17161:62:54","nodeType":"YulExpressionStatement","src":"17161:62:54"},{"nativeSrc":"17232:27:54","nodeType":"YulAssignment","src":"17232:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"17244:9:54","nodeType":"YulIdentifier","src":"17244:9:54"},{"kind":"number","nativeSrc":"17255:3:54","nodeType":"YulLiteral","src":"17255:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17240:3:54","nodeType":"YulIdentifier","src":"17240:3:54"},"nativeSrc":"17240:19:54","nodeType":"YulFunctionCall","src":"17240:19:54"},"variableNames":[{"name":"tail","nativeSrc":"17232:4:54","nodeType":"YulIdentifier","src":"17232:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16837:428:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16988:9:54","nodeType":"YulTypedName","src":"16988:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17002:4:54","nodeType":"YulTypedName","src":"17002:4:54","type":""}],"src":"16837:428:54"},{"body":{"nativeSrc":"17399:119:54","nodeType":"YulBlock","src":"17399:119:54","statements":[{"nativeSrc":"17409:26:54","nodeType":"YulAssignment","src":"17409:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"17421:9:54","nodeType":"YulIdentifier","src":"17421:9:54"},{"kind":"number","nativeSrc":"17432:2:54","nodeType":"YulLiteral","src":"17432:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17417:3:54","nodeType":"YulIdentifier","src":"17417:3:54"},"nativeSrc":"17417:18:54","nodeType":"YulFunctionCall","src":"17417:18:54"},"variableNames":[{"name":"tail","nativeSrc":"17409:4:54","nodeType":"YulIdentifier","src":"17409:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17451:9:54","nodeType":"YulIdentifier","src":"17451:9:54"},{"name":"value0","nativeSrc":"17462:6:54","nodeType":"YulIdentifier","src":"17462:6:54"}],"functionName":{"name":"mstore","nativeSrc":"17444:6:54","nodeType":"YulIdentifier","src":"17444:6:54"},"nativeSrc":"17444:25:54","nodeType":"YulFunctionCall","src":"17444:25:54"},"nativeSrc":"17444:25:54","nodeType":"YulExpressionStatement","src":"17444:25:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17489:9:54","nodeType":"YulIdentifier","src":"17489:9:54"},{"kind":"number","nativeSrc":"17500:2:54","nodeType":"YulLiteral","src":"17500:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17485:3:54","nodeType":"YulIdentifier","src":"17485:3:54"},"nativeSrc":"17485:18:54","nodeType":"YulFunctionCall","src":"17485:18:54"},{"name":"value1","nativeSrc":"17505:6:54","nodeType":"YulIdentifier","src":"17505:6:54"}],"functionName":{"name":"mstore","nativeSrc":"17478:6:54","nodeType":"YulIdentifier","src":"17478:6:54"},"nativeSrc":"17478:34:54","nodeType":"YulFunctionCall","src":"17478:34:54"},"nativeSrc":"17478:34:54","nodeType":"YulExpressionStatement","src":"17478:34:54"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"17270:248:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17360:9:54","nodeType":"YulTypedName","src":"17360:9:54","type":""},{"name":"value1","nativeSrc":"17371:6:54","nodeType":"YulTypedName","src":"17371:6:54","type":""},{"name":"value0","nativeSrc":"17379:6:54","nodeType":"YulTypedName","src":"17379:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17390:4:54","nodeType":"YulTypedName","src":"17390:4:54","type":""}],"src":"17270:248:54"},{"body":{"nativeSrc":"17697:179:54","nodeType":"YulBlock","src":"17697:179:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17714:9:54","nodeType":"YulIdentifier","src":"17714:9:54"},{"kind":"number","nativeSrc":"17725:2:54","nodeType":"YulLiteral","src":"17725:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"17707:6:54","nodeType":"YulIdentifier","src":"17707:6:54"},"nativeSrc":"17707:21:54","nodeType":"YulFunctionCall","src":"17707:21:54"},"nativeSrc":"17707:21:54","nodeType":"YulExpressionStatement","src":"17707:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17748:9:54","nodeType":"YulIdentifier","src":"17748:9:54"},{"kind":"number","nativeSrc":"17759:2:54","nodeType":"YulLiteral","src":"17759:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17744:3:54","nodeType":"YulIdentifier","src":"17744:3:54"},"nativeSrc":"17744:18:54","nodeType":"YulFunctionCall","src":"17744:18:54"},{"kind":"number","nativeSrc":"17764:2:54","nodeType":"YulLiteral","src":"17764:2:54","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"17737:6:54","nodeType":"YulIdentifier","src":"17737:6:54"},"nativeSrc":"17737:30:54","nodeType":"YulFunctionCall","src":"17737:30:54"},"nativeSrc":"17737:30:54","nodeType":"YulExpressionStatement","src":"17737:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17787:9:54","nodeType":"YulIdentifier","src":"17787:9:54"},{"kind":"number","nativeSrc":"17798:2:54","nodeType":"YulLiteral","src":"17798:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17783:3:54","nodeType":"YulIdentifier","src":"17783:3:54"},"nativeSrc":"17783:18:54","nodeType":"YulFunctionCall","src":"17783:18:54"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nativeSrc":"17803:31:54","nodeType":"YulLiteral","src":"17803:31:54","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nativeSrc":"17776:6:54","nodeType":"YulIdentifier","src":"17776:6:54"},"nativeSrc":"17776:59:54","nodeType":"YulFunctionCall","src":"17776:59:54"},"nativeSrc":"17776:59:54","nodeType":"YulExpressionStatement","src":"17776:59:54"},{"nativeSrc":"17844:26:54","nodeType":"YulAssignment","src":"17844:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"17856:9:54","nodeType":"YulIdentifier","src":"17856:9:54"},{"kind":"number","nativeSrc":"17867:2:54","nodeType":"YulLiteral","src":"17867:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17852:3:54","nodeType":"YulIdentifier","src":"17852:3:54"},"nativeSrc":"17852:18:54","nodeType":"YulFunctionCall","src":"17852:18:54"},"variableNames":[{"name":"tail","nativeSrc":"17844:4:54","nodeType":"YulIdentifier","src":"17844:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17523:353:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17674:9:54","nodeType":"YulTypedName","src":"17674:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17688:4:54","nodeType":"YulTypedName","src":"17688:4:54","type":""}],"src":"17523:353:54"},{"body":{"nativeSrc":"17913:152:54","nodeType":"YulBlock","src":"17913:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17930:1:54","nodeType":"YulLiteral","src":"17930:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"17933:77:54","nodeType":"YulLiteral","src":"17933:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17923:6:54","nodeType":"YulIdentifier","src":"17923:6:54"},"nativeSrc":"17923:88:54","nodeType":"YulFunctionCall","src":"17923:88:54"},"nativeSrc":"17923:88:54","nodeType":"YulExpressionStatement","src":"17923:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18027:1:54","nodeType":"YulLiteral","src":"18027:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"18030:4:54","nodeType":"YulLiteral","src":"18030:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"18020:6:54","nodeType":"YulIdentifier","src":"18020:6:54"},"nativeSrc":"18020:15:54","nodeType":"YulFunctionCall","src":"18020:15:54"},"nativeSrc":"18020:15:54","nodeType":"YulExpressionStatement","src":"18020:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18051:1:54","nodeType":"YulLiteral","src":"18051:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"18054:4:54","nodeType":"YulLiteral","src":"18054:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18044:6:54","nodeType":"YulIdentifier","src":"18044:6:54"},"nativeSrc":"18044:15:54","nodeType":"YulFunctionCall","src":"18044:15:54"},"nativeSrc":"18044:15:54","nodeType":"YulExpressionStatement","src":"18044:15:54"}]},"name":"panic_error_0x11","nativeSrc":"17881:184:54","nodeType":"YulFunctionDefinition","src":"17881:184:54"},{"body":{"nativeSrc":"18119:79:54","nodeType":"YulBlock","src":"18119:79:54","statements":[{"nativeSrc":"18129:17:54","nodeType":"YulAssignment","src":"18129:17:54","value":{"arguments":[{"name":"x","nativeSrc":"18141:1:54","nodeType":"YulIdentifier","src":"18141:1:54"},{"name":"y","nativeSrc":"18144:1:54","nodeType":"YulIdentifier","src":"18144:1:54"}],"functionName":{"name":"sub","nativeSrc":"18137:3:54","nodeType":"YulIdentifier","src":"18137:3:54"},"nativeSrc":"18137:9:54","nodeType":"YulFunctionCall","src":"18137:9:54"},"variableNames":[{"name":"diff","nativeSrc":"18129:4:54","nodeType":"YulIdentifier","src":"18129:4:54"}]},{"body":{"nativeSrc":"18170:22:54","nodeType":"YulBlock","src":"18170:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"18172:16:54","nodeType":"YulIdentifier","src":"18172:16:54"},"nativeSrc":"18172:18:54","nodeType":"YulFunctionCall","src":"18172:18:54"},"nativeSrc":"18172:18:54","nodeType":"YulExpressionStatement","src":"18172:18:54"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"18161:4:54","nodeType":"YulIdentifier","src":"18161:4:54"},{"name":"x","nativeSrc":"18167:1:54","nodeType":"YulIdentifier","src":"18167:1:54"}],"functionName":{"name":"gt","nativeSrc":"18158:2:54","nodeType":"YulIdentifier","src":"18158:2:54"},"nativeSrc":"18158:11:54","nodeType":"YulFunctionCall","src":"18158:11:54"},"nativeSrc":"18155:37:54","nodeType":"YulIf","src":"18155:37:54"}]},"name":"checked_sub_t_uint256","nativeSrc":"18070:128:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"18101:1:54","nodeType":"YulTypedName","src":"18101:1:54","type":""},{"name":"y","nativeSrc":"18104:1:54","nodeType":"YulTypedName","src":"18104:1:54","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"18110:4:54","nodeType":"YulTypedName","src":"18110:4:54","type":""}],"src":"18070:128:54"},{"body":{"nativeSrc":"18378:220:54","nodeType":"YulBlock","src":"18378:220:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18401:3:54","nodeType":"YulIdentifier","src":"18401:3:54"},{"name":"value0","nativeSrc":"18406:6:54","nodeType":"YulIdentifier","src":"18406:6:54"},{"name":"value1","nativeSrc":"18414:6:54","nodeType":"YulIdentifier","src":"18414:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"18388:12:54","nodeType":"YulIdentifier","src":"18388:12:54"},"nativeSrc":"18388:33:54","nodeType":"YulFunctionCall","src":"18388:33:54"},"nativeSrc":"18388:33:54","nodeType":"YulExpressionStatement","src":"18388:33:54"},{"nativeSrc":"18430:26:54","nodeType":"YulVariableDeclaration","src":"18430:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"18444:3:54","nodeType":"YulIdentifier","src":"18444:3:54"},{"name":"value1","nativeSrc":"18449:6:54","nodeType":"YulIdentifier","src":"18449:6:54"}],"functionName":{"name":"add","nativeSrc":"18440:3:54","nodeType":"YulIdentifier","src":"18440:3:54"},"nativeSrc":"18440:16:54","nodeType":"YulFunctionCall","src":"18440:16:54"},"variables":[{"name":"_1","nativeSrc":"18434:2:54","nodeType":"YulTypedName","src":"18434:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"18472:2:54","nodeType":"YulIdentifier","src":"18472:2:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18484:2:54","nodeType":"YulLiteral","src":"18484:2:54","type":"","value":"96"},{"name":"value2","nativeSrc":"18488:6:54","nodeType":"YulIdentifier","src":"18488:6:54"}],"functionName":{"name":"shl","nativeSrc":"18480:3:54","nodeType":"YulIdentifier","src":"18480:3:54"},"nativeSrc":"18480:15:54","nodeType":"YulFunctionCall","src":"18480:15:54"},{"kind":"number","nativeSrc":"18497:66:54","nodeType":"YulLiteral","src":"18497:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"18476:3:54","nodeType":"YulIdentifier","src":"18476:3:54"},"nativeSrc":"18476:88:54","nodeType":"YulFunctionCall","src":"18476:88:54"}],"functionName":{"name":"mstore","nativeSrc":"18465:6:54","nodeType":"YulIdentifier","src":"18465:6:54"},"nativeSrc":"18465:100:54","nodeType":"YulFunctionCall","src":"18465:100:54"},"nativeSrc":"18465:100:54","nodeType":"YulExpressionStatement","src":"18465:100:54"},{"nativeSrc":"18574:18:54","nodeType":"YulAssignment","src":"18574:18:54","value":{"arguments":[{"name":"_1","nativeSrc":"18585:2:54","nodeType":"YulIdentifier","src":"18585:2:54"},{"kind":"number","nativeSrc":"18589:2:54","nodeType":"YulLiteral","src":"18589:2:54","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"18581:3:54","nodeType":"YulIdentifier","src":"18581:3:54"},"nativeSrc":"18581:11:54","nodeType":"YulFunctionCall","src":"18581:11:54"},"variableNames":[{"name":"end","nativeSrc":"18574:3:54","nodeType":"YulIdentifier","src":"18574:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"18203:395:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18338:3:54","nodeType":"YulTypedName","src":"18338:3:54","type":""},{"name":"value2","nativeSrc":"18343:6:54","nodeType":"YulTypedName","src":"18343:6:54","type":""},{"name":"value1","nativeSrc":"18351:6:54","nodeType":"YulTypedName","src":"18351:6:54","type":""},{"name":"value0","nativeSrc":"18359:6:54","nodeType":"YulTypedName","src":"18359:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18370:3:54","nodeType":"YulTypedName","src":"18370:3:54","type":""}],"src":"18203:395:54"},{"body":{"nativeSrc":"18683:462:54","nodeType":"YulBlock","src":"18683:462:54","statements":[{"body":{"nativeSrc":"18716:423:54","nodeType":"YulBlock","src":"18716:423:54","statements":[{"nativeSrc":"18730:11:54","nodeType":"YulVariableDeclaration","src":"18730:11:54","value":{"kind":"number","nativeSrc":"18740:1:54","nodeType":"YulLiteral","src":"18740:1:54","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"18734:2:54","nodeType":"YulTypedName","src":"18734:2:54","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18761:1:54","nodeType":"YulLiteral","src":"18761:1:54","type":"","value":"0"},{"name":"array","nativeSrc":"18764:5:54","nodeType":"YulIdentifier","src":"18764:5:54"}],"functionName":{"name":"mstore","nativeSrc":"18754:6:54","nodeType":"YulIdentifier","src":"18754:6:54"},"nativeSrc":"18754:16:54","nodeType":"YulFunctionCall","src":"18754:16:54"},"nativeSrc":"18754:16:54","nodeType":"YulExpressionStatement","src":"18754:16:54"},{"nativeSrc":"18783:30:54","nodeType":"YulVariableDeclaration","src":"18783:30:54","value":{"arguments":[{"kind":"number","nativeSrc":"18805:1:54","nodeType":"YulLiteral","src":"18805:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"18808:4:54","nodeType":"YulLiteral","src":"18808:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18795:9:54","nodeType":"YulIdentifier","src":"18795:9:54"},"nativeSrc":"18795:18:54","nodeType":"YulFunctionCall","src":"18795:18:54"},"variables":[{"name":"data","nativeSrc":"18787:4:54","nodeType":"YulTypedName","src":"18787:4:54","type":""}]},{"nativeSrc":"18826:57:54","nodeType":"YulVariableDeclaration","src":"18826:57:54","value":{"arguments":[{"name":"data","nativeSrc":"18849:4:54","nodeType":"YulIdentifier","src":"18849:4:54"},{"arguments":[{"kind":"number","nativeSrc":"18859:1:54","nodeType":"YulLiteral","src":"18859:1:54","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"18866:10:54","nodeType":"YulIdentifier","src":"18866:10:54"},{"kind":"number","nativeSrc":"18878:2:54","nodeType":"YulLiteral","src":"18878:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"18862:3:54","nodeType":"YulIdentifier","src":"18862:3:54"},"nativeSrc":"18862:19:54","nodeType":"YulFunctionCall","src":"18862:19:54"}],"functionName":{"name":"shr","nativeSrc":"18855:3:54","nodeType":"YulIdentifier","src":"18855:3:54"},"nativeSrc":"18855:27:54","nodeType":"YulFunctionCall","src":"18855:27:54"}],"functionName":{"name":"add","nativeSrc":"18845:3:54","nodeType":"YulIdentifier","src":"18845:3:54"},"nativeSrc":"18845:38:54","nodeType":"YulFunctionCall","src":"18845:38:54"},"variables":[{"name":"deleteStart","nativeSrc":"18830:11:54","nodeType":"YulTypedName","src":"18830:11:54","type":""}]},{"body":{"nativeSrc":"18920:23:54","nodeType":"YulBlock","src":"18920:23:54","statements":[{"nativeSrc":"18922:19:54","nodeType":"YulAssignment","src":"18922:19:54","value":{"name":"data","nativeSrc":"18937:4:54","nodeType":"YulIdentifier","src":"18937:4:54"},"variableNames":[{"name":"deleteStart","nativeSrc":"18922:11:54","nodeType":"YulIdentifier","src":"18922:11:54"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"18902:10:54","nodeType":"YulIdentifier","src":"18902:10:54"},{"kind":"number","nativeSrc":"18914:4:54","nodeType":"YulLiteral","src":"18914:4:54","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"18899:2:54","nodeType":"YulIdentifier","src":"18899:2:54"},"nativeSrc":"18899:20:54","nodeType":"YulFunctionCall","src":"18899:20:54"},"nativeSrc":"18896:47:54","nodeType":"YulIf","src":"18896:47:54"},{"nativeSrc":"18956:41:54","nodeType":"YulVariableDeclaration","src":"18956:41:54","value":{"arguments":[{"name":"data","nativeSrc":"18970:4:54","nodeType":"YulIdentifier","src":"18970:4:54"},{"arguments":[{"kind":"number","nativeSrc":"18980:1:54","nodeType":"YulLiteral","src":"18980:1:54","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"18987:3:54","nodeType":"YulIdentifier","src":"18987:3:54"},{"kind":"number","nativeSrc":"18992:2:54","nodeType":"YulLiteral","src":"18992:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"18983:3:54","nodeType":"YulIdentifier","src":"18983:3:54"},"nativeSrc":"18983:12:54","nodeType":"YulFunctionCall","src":"18983:12:54"}],"functionName":{"name":"shr","nativeSrc":"18976:3:54","nodeType":"YulIdentifier","src":"18976:3:54"},"nativeSrc":"18976:20:54","nodeType":"YulFunctionCall","src":"18976:20:54"}],"functionName":{"name":"add","nativeSrc":"18966:3:54","nodeType":"YulIdentifier","src":"18966:3:54"},"nativeSrc":"18966:31:54","nodeType":"YulFunctionCall","src":"18966:31:54"},"variables":[{"name":"_2","nativeSrc":"18960:2:54","nodeType":"YulTypedName","src":"18960:2:54","type":""}]},{"nativeSrc":"19010:24:54","nodeType":"YulVariableDeclaration","src":"19010:24:54","value":{"name":"deleteStart","nativeSrc":"19023:11:54","nodeType":"YulIdentifier","src":"19023:11:54"},"variables":[{"name":"start","nativeSrc":"19014:5:54","nodeType":"YulTypedName","src":"19014:5:54","type":""}]},{"body":{"nativeSrc":"19108:21:54","nodeType":"YulBlock","src":"19108:21:54","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"19117:5:54","nodeType":"YulIdentifier","src":"19117:5:54"},{"name":"_1","nativeSrc":"19124:2:54","nodeType":"YulIdentifier","src":"19124:2:54"}],"functionName":{"name":"sstore","nativeSrc":"19110:6:54","nodeType":"YulIdentifier","src":"19110:6:54"},"nativeSrc":"19110:17:54","nodeType":"YulFunctionCall","src":"19110:17:54"},"nativeSrc":"19110:17:54","nodeType":"YulExpressionStatement","src":"19110:17:54"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"19058:5:54","nodeType":"YulIdentifier","src":"19058:5:54"},{"name":"_2","nativeSrc":"19065:2:54","nodeType":"YulIdentifier","src":"19065:2:54"}],"functionName":{"name":"lt","nativeSrc":"19055:2:54","nodeType":"YulIdentifier","src":"19055:2:54"},"nativeSrc":"19055:13:54","nodeType":"YulFunctionCall","src":"19055:13:54"},"nativeSrc":"19047:82:54","nodeType":"YulForLoop","post":{"nativeSrc":"19069:26:54","nodeType":"YulBlock","src":"19069:26:54","statements":[{"nativeSrc":"19071:22:54","nodeType":"YulAssignment","src":"19071:22:54","value":{"arguments":[{"name":"start","nativeSrc":"19084:5:54","nodeType":"YulIdentifier","src":"19084:5:54"},{"kind":"number","nativeSrc":"19091:1:54","nodeType":"YulLiteral","src":"19091:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19080:3:54","nodeType":"YulIdentifier","src":"19080:3:54"},"nativeSrc":"19080:13:54","nodeType":"YulFunctionCall","src":"19080:13:54"},"variableNames":[{"name":"start","nativeSrc":"19071:5:54","nodeType":"YulIdentifier","src":"19071:5:54"}]}]},"pre":{"nativeSrc":"19051:3:54","nodeType":"YulBlock","src":"19051:3:54","statements":[]},"src":"19047:82:54"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"18699:3:54","nodeType":"YulIdentifier","src":"18699:3:54"},{"kind":"number","nativeSrc":"18704:2:54","nodeType":"YulLiteral","src":"18704:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"18696:2:54","nodeType":"YulIdentifier","src":"18696:2:54"},"nativeSrc":"18696:11:54","nodeType":"YulFunctionCall","src":"18696:11:54"},"nativeSrc":"18693:446:54","nodeType":"YulIf","src":"18693:446:54"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"18603:542:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"18655:5:54","nodeType":"YulTypedName","src":"18655:5:54","type":""},{"name":"len","nativeSrc":"18662:3:54","nodeType":"YulTypedName","src":"18662:3:54","type":""},{"name":"startIndex","nativeSrc":"18667:10:54","nodeType":"YulTypedName","src":"18667:10:54","type":""}],"src":"18603:542:54"},{"body":{"nativeSrc":"19235:141:54","nodeType":"YulBlock","src":"19235:141:54","statements":[{"nativeSrc":"19245:125:54","nodeType":"YulAssignment","src":"19245:125:54","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"19260:4:54","nodeType":"YulIdentifier","src":"19260:4:54"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19278:1:54","nodeType":"YulLiteral","src":"19278:1:54","type":"","value":"3"},{"name":"len","nativeSrc":"19281:3:54","nodeType":"YulIdentifier","src":"19281:3:54"}],"functionName":{"name":"shl","nativeSrc":"19274:3:54","nodeType":"YulIdentifier","src":"19274:3:54"},"nativeSrc":"19274:11:54","nodeType":"YulFunctionCall","src":"19274:11:54"},{"kind":"number","nativeSrc":"19287:66:54","nodeType":"YulLiteral","src":"19287:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"19270:3:54","nodeType":"YulIdentifier","src":"19270:3:54"},"nativeSrc":"19270:84:54","nodeType":"YulFunctionCall","src":"19270:84:54"}],"functionName":{"name":"not","nativeSrc":"19266:3:54","nodeType":"YulIdentifier","src":"19266:3:54"},"nativeSrc":"19266:89:54","nodeType":"YulFunctionCall","src":"19266:89:54"}],"functionName":{"name":"and","nativeSrc":"19256:3:54","nodeType":"YulIdentifier","src":"19256:3:54"},"nativeSrc":"19256:100:54","nodeType":"YulFunctionCall","src":"19256:100:54"},{"arguments":[{"kind":"number","nativeSrc":"19362:1:54","nodeType":"YulLiteral","src":"19362:1:54","type":"","value":"1"},{"name":"len","nativeSrc":"19365:3:54","nodeType":"YulIdentifier","src":"19365:3:54"}],"functionName":{"name":"shl","nativeSrc":"19358:3:54","nodeType":"YulIdentifier","src":"19358:3:54"},"nativeSrc":"19358:11:54","nodeType":"YulFunctionCall","src":"19358:11:54"}],"functionName":{"name":"or","nativeSrc":"19253:2:54","nodeType":"YulIdentifier","src":"19253:2:54"},"nativeSrc":"19253:117:54","nodeType":"YulFunctionCall","src":"19253:117:54"},"variableNames":[{"name":"used","nativeSrc":"19245:4:54","nodeType":"YulIdentifier","src":"19245:4:54"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"19150:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"19212:4:54","nodeType":"YulTypedName","src":"19212:4:54","type":""},{"name":"len","nativeSrc":"19218:3:54","nodeType":"YulTypedName","src":"19218:3:54","type":""}],"returnVariables":[{"name":"used","nativeSrc":"19226:4:54","nodeType":"YulTypedName","src":"19226:4:54","type":""}],"src":"19150:226:54"},{"body":{"nativeSrc":"19475:1367:54","nodeType":"YulBlock","src":"19475:1367:54","statements":[{"nativeSrc":"19485:24:54","nodeType":"YulVariableDeclaration","src":"19485:24:54","value":{"arguments":[{"name":"src","nativeSrc":"19505:3:54","nodeType":"YulIdentifier","src":"19505:3:54"}],"functionName":{"name":"mload","nativeSrc":"19499:5:54","nodeType":"YulIdentifier","src":"19499:5:54"},"nativeSrc":"19499:10:54","nodeType":"YulFunctionCall","src":"19499:10:54"},"variables":[{"name":"newLen","nativeSrc":"19489:6:54","nodeType":"YulTypedName","src":"19489:6:54","type":""}]},{"body":{"nativeSrc":"19552:22:54","nodeType":"YulBlock","src":"19552:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19554:16:54","nodeType":"YulIdentifier","src":"19554:16:54"},"nativeSrc":"19554:18:54","nodeType":"YulFunctionCall","src":"19554:18:54"},"nativeSrc":"19554:18:54","nodeType":"YulExpressionStatement","src":"19554:18:54"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"19524:6:54","nodeType":"YulIdentifier","src":"19524:6:54"},{"kind":"number","nativeSrc":"19532:18:54","nodeType":"YulLiteral","src":"19532:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19521:2:54","nodeType":"YulIdentifier","src":"19521:2:54"},"nativeSrc":"19521:30:54","nodeType":"YulFunctionCall","src":"19521:30:54"},"nativeSrc":"19518:56:54","nodeType":"YulIf","src":"19518:56:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19626:4:54","nodeType":"YulIdentifier","src":"19626:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"19664:4:54","nodeType":"YulIdentifier","src":"19664:4:54"}],"functionName":{"name":"sload","nativeSrc":"19658:5:54","nodeType":"YulIdentifier","src":"19658:5:54"},"nativeSrc":"19658:11:54","nodeType":"YulFunctionCall","src":"19658:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"19632:25:54","nodeType":"YulIdentifier","src":"19632:25:54"},"nativeSrc":"19632:38:54","nodeType":"YulFunctionCall","src":"19632:38:54"},{"name":"newLen","nativeSrc":"19672:6:54","nodeType":"YulIdentifier","src":"19672:6:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"19583:42:54","nodeType":"YulIdentifier","src":"19583:42:54"},"nativeSrc":"19583:96:54","nodeType":"YulFunctionCall","src":"19583:96:54"},"nativeSrc":"19583:96:54","nodeType":"YulExpressionStatement","src":"19583:96:54"},{"nativeSrc":"19688:18:54","nodeType":"YulVariableDeclaration","src":"19688:18:54","value":{"kind":"number","nativeSrc":"19705:1:54","nodeType":"YulLiteral","src":"19705:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"19692:9:54","nodeType":"YulTypedName","src":"19692:9:54","type":""}]},{"nativeSrc":"19715:23:54","nodeType":"YulVariableDeclaration","src":"19715:23:54","value":{"kind":"number","nativeSrc":"19734:4:54","nodeType":"YulLiteral","src":"19734:4:54","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"19719:11:54","nodeType":"YulTypedName","src":"19719:11:54","type":""}]},{"nativeSrc":"19747:17:54","nodeType":"YulAssignment","src":"19747:17:54","value":{"kind":"number","nativeSrc":"19760:4:54","nodeType":"YulLiteral","src":"19760:4:54","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"19747:9:54","nodeType":"YulIdentifier","src":"19747:9:54"}]},{"cases":[{"body":{"nativeSrc":"19810:775:54","nodeType":"YulBlock","src":"19810:775:54","statements":[{"nativeSrc":"19824:94:54","nodeType":"YulVariableDeclaration","src":"19824:94:54","value":{"arguments":[{"name":"newLen","nativeSrc":"19843:6:54","nodeType":"YulIdentifier","src":"19843:6:54"},{"kind":"number","nativeSrc":"19851:66:54","nodeType":"YulLiteral","src":"19851:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"19839:3:54","nodeType":"YulIdentifier","src":"19839:3:54"},"nativeSrc":"19839:79:54","nodeType":"YulFunctionCall","src":"19839:79:54"},"variables":[{"name":"loopEnd","nativeSrc":"19828:7:54","nodeType":"YulTypedName","src":"19828:7:54","type":""}]},{"nativeSrc":"19931:49:54","nodeType":"YulVariableDeclaration","src":"19931:49:54","value":{"arguments":[{"name":"slot","nativeSrc":"19975:4:54","nodeType":"YulIdentifier","src":"19975:4:54"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"19945:29:54","nodeType":"YulIdentifier","src":"19945:29:54"},"nativeSrc":"19945:35:54","nodeType":"YulFunctionCall","src":"19945:35:54"},"variables":[{"name":"dstPtr","nativeSrc":"19935:6:54","nodeType":"YulTypedName","src":"19935:6:54","type":""}]},{"nativeSrc":"19993:10:54","nodeType":"YulVariableDeclaration","src":"19993:10:54","value":{"kind":"number","nativeSrc":"20002:1:54","nodeType":"YulLiteral","src":"20002:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"19997:1:54","nodeType":"YulTypedName","src":"19997:1:54","type":""}]},{"body":{"nativeSrc":"20080:172:54","nodeType":"YulBlock","src":"20080:172:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20105:6:54","nodeType":"YulIdentifier","src":"20105:6:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20123:3:54","nodeType":"YulIdentifier","src":"20123:3:54"},{"name":"srcOffset","nativeSrc":"20128:9:54","nodeType":"YulIdentifier","src":"20128:9:54"}],"functionName":{"name":"add","nativeSrc":"20119:3:54","nodeType":"YulIdentifier","src":"20119:3:54"},"nativeSrc":"20119:19:54","nodeType":"YulFunctionCall","src":"20119:19:54"}],"functionName":{"name":"mload","nativeSrc":"20113:5:54","nodeType":"YulIdentifier","src":"20113:5:54"},"nativeSrc":"20113:26:54","nodeType":"YulFunctionCall","src":"20113:26:54"}],"functionName":{"name":"sstore","nativeSrc":"20098:6:54","nodeType":"YulIdentifier","src":"20098:6:54"},"nativeSrc":"20098:42:54","nodeType":"YulFunctionCall","src":"20098:42:54"},"nativeSrc":"20098:42:54","nodeType":"YulExpressionStatement","src":"20098:42:54"},{"nativeSrc":"20157:24:54","nodeType":"YulAssignment","src":"20157:24:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"20171:6:54","nodeType":"YulIdentifier","src":"20171:6:54"},{"kind":"number","nativeSrc":"20179:1:54","nodeType":"YulLiteral","src":"20179:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20167:3:54","nodeType":"YulIdentifier","src":"20167:3:54"},"nativeSrc":"20167:14:54","nodeType":"YulFunctionCall","src":"20167:14:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"20157:6:54","nodeType":"YulIdentifier","src":"20157:6:54"}]},{"nativeSrc":"20198:40:54","nodeType":"YulAssignment","src":"20198:40:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"20215:9:54","nodeType":"YulIdentifier","src":"20215:9:54"},{"name":"srcOffset_1","nativeSrc":"20226:11:54","nodeType":"YulIdentifier","src":"20226:11:54"}],"functionName":{"name":"add","nativeSrc":"20211:3:54","nodeType":"YulIdentifier","src":"20211:3:54"},"nativeSrc":"20211:27:54","nodeType":"YulFunctionCall","src":"20211:27:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"20198:9:54","nodeType":"YulIdentifier","src":"20198:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"20027:1:54","nodeType":"YulIdentifier","src":"20027:1:54"},{"name":"loopEnd","nativeSrc":"20030:7:54","nodeType":"YulIdentifier","src":"20030:7:54"}],"functionName":{"name":"lt","nativeSrc":"20024:2:54","nodeType":"YulIdentifier","src":"20024:2:54"},"nativeSrc":"20024:14:54","nodeType":"YulFunctionCall","src":"20024:14:54"},"nativeSrc":"20016:236:54","nodeType":"YulForLoop","post":{"nativeSrc":"20039:28:54","nodeType":"YulBlock","src":"20039:28:54","statements":[{"nativeSrc":"20041:24:54","nodeType":"YulAssignment","src":"20041:24:54","value":{"arguments":[{"name":"i","nativeSrc":"20050:1:54","nodeType":"YulIdentifier","src":"20050:1:54"},{"name":"srcOffset_1","nativeSrc":"20053:11:54","nodeType":"YulIdentifier","src":"20053:11:54"}],"functionName":{"name":"add","nativeSrc":"20046:3:54","nodeType":"YulIdentifier","src":"20046:3:54"},"nativeSrc":"20046:19:54","nodeType":"YulFunctionCall","src":"20046:19:54"},"variableNames":[{"name":"i","nativeSrc":"20041:1:54","nodeType":"YulIdentifier","src":"20041:1:54"}]}]},"pre":{"nativeSrc":"20020:3:54","nodeType":"YulBlock","src":"20020:3:54","statements":[]},"src":"20016:236:54"},{"body":{"nativeSrc":"20300:226:54","nodeType":"YulBlock","src":"20300:226:54","statements":[{"nativeSrc":"20318:43:54","nodeType":"YulVariableDeclaration","src":"20318:43:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20345:3:54","nodeType":"YulIdentifier","src":"20345:3:54"},{"name":"srcOffset","nativeSrc":"20350:9:54","nodeType":"YulIdentifier","src":"20350:9:54"}],"functionName":{"name":"add","nativeSrc":"20341:3:54","nodeType":"YulIdentifier","src":"20341:3:54"},"nativeSrc":"20341:19:54","nodeType":"YulFunctionCall","src":"20341:19:54"}],"functionName":{"name":"mload","nativeSrc":"20335:5:54","nodeType":"YulIdentifier","src":"20335:5:54"},"nativeSrc":"20335:26:54","nodeType":"YulFunctionCall","src":"20335:26:54"},"variables":[{"name":"lastValue","nativeSrc":"20322:9:54","nodeType":"YulTypedName","src":"20322:9:54","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"20385:6:54","nodeType":"YulIdentifier","src":"20385:6:54"},{"arguments":[{"name":"lastValue","nativeSrc":"20397:9:54","nodeType":"YulIdentifier","src":"20397:9:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20424:1:54","nodeType":"YulLiteral","src":"20424:1:54","type":"","value":"3"},{"name":"newLen","nativeSrc":"20427:6:54","nodeType":"YulIdentifier","src":"20427:6:54"}],"functionName":{"name":"shl","nativeSrc":"20420:3:54","nodeType":"YulIdentifier","src":"20420:3:54"},"nativeSrc":"20420:14:54","nodeType":"YulFunctionCall","src":"20420:14:54"},{"kind":"number","nativeSrc":"20436:3:54","nodeType":"YulLiteral","src":"20436:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"20416:3:54","nodeType":"YulIdentifier","src":"20416:3:54"},"nativeSrc":"20416:24:54","nodeType":"YulFunctionCall","src":"20416:24:54"},{"kind":"number","nativeSrc":"20442:66:54","nodeType":"YulLiteral","src":"20442:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"20412:3:54","nodeType":"YulIdentifier","src":"20412:3:54"},"nativeSrc":"20412:97:54","nodeType":"YulFunctionCall","src":"20412:97:54"}],"functionName":{"name":"not","nativeSrc":"20408:3:54","nodeType":"YulIdentifier","src":"20408:3:54"},"nativeSrc":"20408:102:54","nodeType":"YulFunctionCall","src":"20408:102:54"}],"functionName":{"name":"and","nativeSrc":"20393:3:54","nodeType":"YulIdentifier","src":"20393:3:54"},"nativeSrc":"20393:118:54","nodeType":"YulFunctionCall","src":"20393:118:54"}],"functionName":{"name":"sstore","nativeSrc":"20378:6:54","nodeType":"YulIdentifier","src":"20378:6:54"},"nativeSrc":"20378:134:54","nodeType":"YulFunctionCall","src":"20378:134:54"},"nativeSrc":"20378:134:54","nodeType":"YulExpressionStatement","src":"20378:134:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"20271:7:54","nodeType":"YulIdentifier","src":"20271:7:54"},{"name":"newLen","nativeSrc":"20280:6:54","nodeType":"YulIdentifier","src":"20280:6:54"}],"functionName":{"name":"lt","nativeSrc":"20268:2:54","nodeType":"YulIdentifier","src":"20268:2:54"},"nativeSrc":"20268:19:54","nodeType":"YulFunctionCall","src":"20268:19:54"},"nativeSrc":"20265:261:54","nodeType":"YulIf","src":"20265:261:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"20546:4:54","nodeType":"YulIdentifier","src":"20546:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20560:1:54","nodeType":"YulLiteral","src":"20560:1:54","type":"","value":"1"},{"name":"newLen","nativeSrc":"20563:6:54","nodeType":"YulIdentifier","src":"20563:6:54"}],"functionName":{"name":"shl","nativeSrc":"20556:3:54","nodeType":"YulIdentifier","src":"20556:3:54"},"nativeSrc":"20556:14:54","nodeType":"YulFunctionCall","src":"20556:14:54"},{"kind":"number","nativeSrc":"20572:1:54","nodeType":"YulLiteral","src":"20572:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20552:3:54","nodeType":"YulIdentifier","src":"20552:3:54"},"nativeSrc":"20552:22:54","nodeType":"YulFunctionCall","src":"20552:22:54"}],"functionName":{"name":"sstore","nativeSrc":"20539:6:54","nodeType":"YulIdentifier","src":"20539:6:54"},"nativeSrc":"20539:36:54","nodeType":"YulFunctionCall","src":"20539:36:54"},"nativeSrc":"20539:36:54","nodeType":"YulExpressionStatement","src":"20539:36:54"}]},"nativeSrc":"19803:782:54","nodeType":"YulCase","src":"19803:782:54","value":{"kind":"number","nativeSrc":"19808:1:54","nodeType":"YulLiteral","src":"19808:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"20602:234:54","nodeType":"YulBlock","src":"20602:234:54","statements":[{"nativeSrc":"20616:14:54","nodeType":"YulVariableDeclaration","src":"20616:14:54","value":{"kind":"number","nativeSrc":"20629:1:54","nodeType":"YulLiteral","src":"20629:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"20620:5:54","nodeType":"YulTypedName","src":"20620:5:54","type":""}]},{"body":{"nativeSrc":"20665:67:54","nodeType":"YulBlock","src":"20665:67:54","statements":[{"nativeSrc":"20683:35:54","nodeType":"YulAssignment","src":"20683:35:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20702:3:54","nodeType":"YulIdentifier","src":"20702:3:54"},{"name":"srcOffset","nativeSrc":"20707:9:54","nodeType":"YulIdentifier","src":"20707:9:54"}],"functionName":{"name":"add","nativeSrc":"20698:3:54","nodeType":"YulIdentifier","src":"20698:3:54"},"nativeSrc":"20698:19:54","nodeType":"YulFunctionCall","src":"20698:19:54"}],"functionName":{"name":"mload","nativeSrc":"20692:5:54","nodeType":"YulIdentifier","src":"20692:5:54"},"nativeSrc":"20692:26:54","nodeType":"YulFunctionCall","src":"20692:26:54"},"variableNames":[{"name":"value","nativeSrc":"20683:5:54","nodeType":"YulIdentifier","src":"20683:5:54"}]}]},"condition":{"name":"newLen","nativeSrc":"20646:6:54","nodeType":"YulIdentifier","src":"20646:6:54"},"nativeSrc":"20643:89:54","nodeType":"YulIf","src":"20643:89:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"20752:4:54","nodeType":"YulIdentifier","src":"20752:4:54"},{"arguments":[{"name":"value","nativeSrc":"20811:5:54","nodeType":"YulIdentifier","src":"20811:5:54"},{"name":"newLen","nativeSrc":"20818:6:54","nodeType":"YulIdentifier","src":"20818:6:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"20758:52:54","nodeType":"YulIdentifier","src":"20758:52:54"},"nativeSrc":"20758:67:54","nodeType":"YulFunctionCall","src":"20758:67:54"}],"functionName":{"name":"sstore","nativeSrc":"20745:6:54","nodeType":"YulIdentifier","src":"20745:6:54"},"nativeSrc":"20745:81:54","nodeType":"YulFunctionCall","src":"20745:81:54"},"nativeSrc":"20745:81:54","nodeType":"YulExpressionStatement","src":"20745:81:54"}]},"nativeSrc":"20594:242:54","nodeType":"YulCase","src":"20594:242:54","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"19783:6:54","nodeType":"YulIdentifier","src":"19783:6:54"},{"kind":"number","nativeSrc":"19791:2:54","nodeType":"YulLiteral","src":"19791:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"19780:2:54","nodeType":"YulIdentifier","src":"19780:2:54"},"nativeSrc":"19780:14:54","nodeType":"YulFunctionCall","src":"19780:14:54"},"nativeSrc":"19773:1063:54","nodeType":"YulSwitch","src":"19773:1063:54"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"19381:1461:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19460:4:54","nodeType":"YulTypedName","src":"19460:4:54","type":""},{"name":"src","nativeSrc":"19466:3:54","nodeType":"YulTypedName","src":"19466:3:54","type":""}],"src":"19381:1461:54"},{"body":{"nativeSrc":"21056:289:54","nodeType":"YulBlock","src":"21056:289:54","statements":[{"nativeSrc":"21066:16:54","nodeType":"YulVariableDeclaration","src":"21066:16:54","value":{"kind":"number","nativeSrc":"21076:6:54","nodeType":"YulLiteral","src":"21076:6:54","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"21070:2:54","nodeType":"YulTypedName","src":"21070:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21098:9:54","nodeType":"YulIdentifier","src":"21098:9:54"},{"arguments":[{"name":"value0","nativeSrc":"21113:6:54","nodeType":"YulIdentifier","src":"21113:6:54"},{"name":"_1","nativeSrc":"21121:2:54","nodeType":"YulIdentifier","src":"21121:2:54"}],"functionName":{"name":"and","nativeSrc":"21109:3:54","nodeType":"YulIdentifier","src":"21109:3:54"},"nativeSrc":"21109:15:54","nodeType":"YulFunctionCall","src":"21109:15:54"}],"functionName":{"name":"mstore","nativeSrc":"21091:6:54","nodeType":"YulIdentifier","src":"21091:6:54"},"nativeSrc":"21091:34:54","nodeType":"YulFunctionCall","src":"21091:34:54"},"nativeSrc":"21091:34:54","nodeType":"YulExpressionStatement","src":"21091:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21145:9:54","nodeType":"YulIdentifier","src":"21145:9:54"},{"kind":"number","nativeSrc":"21156:2:54","nodeType":"YulLiteral","src":"21156:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21141:3:54","nodeType":"YulIdentifier","src":"21141:3:54"},"nativeSrc":"21141:18:54","nodeType":"YulFunctionCall","src":"21141:18:54"},{"arguments":[{"name":"value1","nativeSrc":"21165:6:54","nodeType":"YulIdentifier","src":"21165:6:54"},{"name":"_1","nativeSrc":"21173:2:54","nodeType":"YulIdentifier","src":"21173:2:54"}],"functionName":{"name":"and","nativeSrc":"21161:3:54","nodeType":"YulIdentifier","src":"21161:3:54"},"nativeSrc":"21161:15:54","nodeType":"YulFunctionCall","src":"21161:15:54"}],"functionName":{"name":"mstore","nativeSrc":"21134:6:54","nodeType":"YulIdentifier","src":"21134:6:54"},"nativeSrc":"21134:43:54","nodeType":"YulFunctionCall","src":"21134:43:54"},"nativeSrc":"21134:43:54","nodeType":"YulExpressionStatement","src":"21134:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21197:9:54","nodeType":"YulIdentifier","src":"21197:9:54"},{"kind":"number","nativeSrc":"21208:2:54","nodeType":"YulLiteral","src":"21208:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21193:3:54","nodeType":"YulIdentifier","src":"21193:3:54"},"nativeSrc":"21193:18:54","nodeType":"YulFunctionCall","src":"21193:18:54"},{"name":"value2","nativeSrc":"21213:6:54","nodeType":"YulIdentifier","src":"21213:6:54"}],"functionName":{"name":"mstore","nativeSrc":"21186:6:54","nodeType":"YulIdentifier","src":"21186:6:54"},"nativeSrc":"21186:34:54","nodeType":"YulFunctionCall","src":"21186:34:54"},"nativeSrc":"21186:34:54","nodeType":"YulExpressionStatement","src":"21186:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21240:9:54","nodeType":"YulIdentifier","src":"21240:9:54"},{"kind":"number","nativeSrc":"21251:2:54","nodeType":"YulLiteral","src":"21251:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21236:3:54","nodeType":"YulIdentifier","src":"21236:3:54"},"nativeSrc":"21236:18:54","nodeType":"YulFunctionCall","src":"21236:18:54"},{"kind":"number","nativeSrc":"21256:3:54","nodeType":"YulLiteral","src":"21256:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"21229:6:54","nodeType":"YulIdentifier","src":"21229:6:54"},"nativeSrc":"21229:31:54","nodeType":"YulFunctionCall","src":"21229:31:54"},"nativeSrc":"21229:31:54","nodeType":"YulExpressionStatement","src":"21229:31:54"},{"nativeSrc":"21269:70:54","nodeType":"YulAssignment","src":"21269:70:54","value":{"arguments":[{"name":"value3","nativeSrc":"21303:6:54","nodeType":"YulIdentifier","src":"21303:6:54"},{"name":"value4","nativeSrc":"21311:6:54","nodeType":"YulIdentifier","src":"21311:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"21323:9:54","nodeType":"YulIdentifier","src":"21323:9:54"},{"kind":"number","nativeSrc":"21334:3:54","nodeType":"YulLiteral","src":"21334:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21319:3:54","nodeType":"YulIdentifier","src":"21319:3:54"},"nativeSrc":"21319:19:54","nodeType":"YulFunctionCall","src":"21319:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"21277:25:54","nodeType":"YulIdentifier","src":"21277:25:54"},"nativeSrc":"21277:62:54","nodeType":"YulFunctionCall","src":"21277:62:54"},"variableNames":[{"name":"tail","nativeSrc":"21269:4:54","nodeType":"YulIdentifier","src":"21269:4:54"}]}]},"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":"20847:498:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20993:9:54","nodeType":"YulTypedName","src":"20993:9:54","type":""},{"name":"value4","nativeSrc":"21004:6:54","nodeType":"YulTypedName","src":"21004:6:54","type":""},{"name":"value3","nativeSrc":"21012:6:54","nodeType":"YulTypedName","src":"21012:6:54","type":""},{"name":"value2","nativeSrc":"21020:6:54","nodeType":"YulTypedName","src":"21020:6:54","type":""},{"name":"value1","nativeSrc":"21028:6:54","nodeType":"YulTypedName","src":"21028:6:54","type":""},{"name":"value0","nativeSrc":"21036:6:54","nodeType":"YulTypedName","src":"21036:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21047:4:54","nodeType":"YulTypedName","src":"21047:4:54","type":""}],"src":"20847:498:54"},{"body":{"nativeSrc":"21484:765:54","nodeType":"YulBlock","src":"21484:765:54","statements":[{"nativeSrc":"21494:12:54","nodeType":"YulVariableDeclaration","src":"21494:12:54","value":{"kind":"number","nativeSrc":"21505:1:54","nodeType":"YulLiteral","src":"21505:1:54","type":"","value":"0"},"variables":[{"name":"ret","nativeSrc":"21498:3:54","nodeType":"YulTypedName","src":"21498:3:54","type":""}]},{"nativeSrc":"21515:30:54","nodeType":"YulVariableDeclaration","src":"21515:30:54","value":{"arguments":[{"name":"value0","nativeSrc":"21538:6:54","nodeType":"YulIdentifier","src":"21538:6:54"}],"functionName":{"name":"sload","nativeSrc":"21532:5:54","nodeType":"YulIdentifier","src":"21532:5:54"},"nativeSrc":"21532:13:54","nodeType":"YulFunctionCall","src":"21532:13:54"},"variables":[{"name":"slotValue","nativeSrc":"21519:9:54","nodeType":"YulTypedName","src":"21519:9:54","type":""}]},{"nativeSrc":"21554:50:54","nodeType":"YulVariableDeclaration","src":"21554:50:54","value":{"arguments":[{"name":"slotValue","nativeSrc":"21594:9:54","nodeType":"YulIdentifier","src":"21594:9:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"21568:25:54","nodeType":"YulIdentifier","src":"21568:25:54"},"nativeSrc":"21568:36:54","nodeType":"YulFunctionCall","src":"21568:36:54"},"variables":[{"name":"length","nativeSrc":"21558:6:54","nodeType":"YulTypedName","src":"21558:6:54","type":""}]},{"nativeSrc":"21613:11:54","nodeType":"YulVariableDeclaration","src":"21613:11:54","value":{"kind":"number","nativeSrc":"21623:1:54","nodeType":"YulLiteral","src":"21623:1:54","type":"","value":"1"},"variables":[{"name":"_1","nativeSrc":"21617:2:54","nodeType":"YulTypedName","src":"21617:2:54","type":""}]},{"cases":[{"body":{"nativeSrc":"21673:184:54","nodeType":"YulBlock","src":"21673:184:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"21694:3:54","nodeType":"YulIdentifier","src":"21694:3:54"},{"arguments":[{"name":"slotValue","nativeSrc":"21703:9:54","nodeType":"YulIdentifier","src":"21703:9:54"},{"kind":"number","nativeSrc":"21714:66:54","nodeType":"YulLiteral","src":"21714:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"21699:3:54","nodeType":"YulIdentifier","src":"21699:3:54"},"nativeSrc":"21699:82:54","nodeType":"YulFunctionCall","src":"21699:82:54"}],"functionName":{"name":"mstore","nativeSrc":"21687:6:54","nodeType":"YulIdentifier","src":"21687:6:54"},"nativeSrc":"21687:95:54","nodeType":"YulFunctionCall","src":"21687:95:54"},"nativeSrc":"21687:95:54","nodeType":"YulExpressionStatement","src":"21687:95:54"},{"nativeSrc":"21795:52:54","nodeType":"YulAssignment","src":"21795:52:54","value":{"arguments":[{"name":"pos","nativeSrc":"21806:3:54","nodeType":"YulIdentifier","src":"21806:3:54"},{"arguments":[{"name":"length","nativeSrc":"21815:6:54","nodeType":"YulIdentifier","src":"21815:6:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"21837:6:54","nodeType":"YulIdentifier","src":"21837:6:54"}],"functionName":{"name":"iszero","nativeSrc":"21830:6:54","nodeType":"YulIdentifier","src":"21830:6:54"},"nativeSrc":"21830:14:54","nodeType":"YulFunctionCall","src":"21830:14:54"}],"functionName":{"name":"iszero","nativeSrc":"21823:6:54","nodeType":"YulIdentifier","src":"21823:6:54"},"nativeSrc":"21823:22:54","nodeType":"YulFunctionCall","src":"21823:22:54"}],"functionName":{"name":"mul","nativeSrc":"21811:3:54","nodeType":"YulIdentifier","src":"21811:3:54"},"nativeSrc":"21811:35:54","nodeType":"YulFunctionCall","src":"21811:35:54"}],"functionName":{"name":"add","nativeSrc":"21802:3:54","nodeType":"YulIdentifier","src":"21802:3:54"},"nativeSrc":"21802:45:54","nodeType":"YulFunctionCall","src":"21802:45:54"},"variableNames":[{"name":"ret","nativeSrc":"21795:3:54","nodeType":"YulIdentifier","src":"21795:3:54"}]}]},"nativeSrc":"21666:191:54","nodeType":"YulCase","src":"21666:191:54","value":{"kind":"number","nativeSrc":"21671:1:54","nodeType":"YulLiteral","src":"21671:1:54","type":"","value":"0"}},{"body":{"nativeSrc":"21873:351:54","nodeType":"YulBlock","src":"21873:351:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21894:1:54","nodeType":"YulLiteral","src":"21894:1:54","type":"","value":"0"},{"name":"value0","nativeSrc":"21897:6:54","nodeType":"YulIdentifier","src":"21897:6:54"}],"functionName":{"name":"mstore","nativeSrc":"21887:6:54","nodeType":"YulIdentifier","src":"21887:6:54"},"nativeSrc":"21887:17:54","nodeType":"YulFunctionCall","src":"21887:17:54"},"nativeSrc":"21887:17:54","nodeType":"YulExpressionStatement","src":"21887:17:54"},{"nativeSrc":"21917:14:54","nodeType":"YulVariableDeclaration","src":"21917:14:54","value":{"kind":"number","nativeSrc":"21927:4:54","nodeType":"YulLiteral","src":"21927:4:54","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"21921:2:54","nodeType":"YulTypedName","src":"21921:2:54","type":""}]},{"nativeSrc":"21944:33:54","nodeType":"YulVariableDeclaration","src":"21944:33:54","value":{"arguments":[{"kind":"number","nativeSrc":"21969:1:54","nodeType":"YulLiteral","src":"21969:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"21972:4:54","nodeType":"YulLiteral","src":"21972:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21959:9:54","nodeType":"YulIdentifier","src":"21959:9:54"},"nativeSrc":"21959:18:54","nodeType":"YulFunctionCall","src":"21959:18:54"},"variables":[{"name":"dataPos","nativeSrc":"21948:7:54","nodeType":"YulTypedName","src":"21948:7:54","type":""}]},{"nativeSrc":"21990:10:54","nodeType":"YulVariableDeclaration","src":"21990:10:54","value":{"kind":"number","nativeSrc":"21999:1:54","nodeType":"YulLiteral","src":"21999:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"21994:1:54","nodeType":"YulTypedName","src":"21994:1:54","type":""}]},{"body":{"nativeSrc":"22067:111:54","nodeType":"YulBlock","src":"22067:111:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22096:3:54","nodeType":"YulIdentifier","src":"22096:3:54"},{"name":"i","nativeSrc":"22101:1:54","nodeType":"YulIdentifier","src":"22101:1:54"}],"functionName":{"name":"add","nativeSrc":"22092:3:54","nodeType":"YulIdentifier","src":"22092:3:54"},"nativeSrc":"22092:11:54","nodeType":"YulFunctionCall","src":"22092:11:54"},{"arguments":[{"name":"dataPos","nativeSrc":"22111:7:54","nodeType":"YulIdentifier","src":"22111:7:54"}],"functionName":{"name":"sload","nativeSrc":"22105:5:54","nodeType":"YulIdentifier","src":"22105:5:54"},"nativeSrc":"22105:14:54","nodeType":"YulFunctionCall","src":"22105:14:54"}],"functionName":{"name":"mstore","nativeSrc":"22085:6:54","nodeType":"YulIdentifier","src":"22085:6:54"},"nativeSrc":"22085:35:54","nodeType":"YulFunctionCall","src":"22085:35:54"},"nativeSrc":"22085:35:54","nodeType":"YulExpressionStatement","src":"22085:35:54"},{"nativeSrc":"22137:27:54","nodeType":"YulAssignment","src":"22137:27:54","value":{"arguments":[{"name":"dataPos","nativeSrc":"22152:7:54","nodeType":"YulIdentifier","src":"22152:7:54"},{"name":"_1","nativeSrc":"22161:2:54","nodeType":"YulIdentifier","src":"22161:2:54"}],"functionName":{"name":"add","nativeSrc":"22148:3:54","nodeType":"YulIdentifier","src":"22148:3:54"},"nativeSrc":"22148:16:54","nodeType":"YulFunctionCall","src":"22148:16:54"},"variableNames":[{"name":"dataPos","nativeSrc":"22137:7:54","nodeType":"YulIdentifier","src":"22137:7:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"22024:1:54","nodeType":"YulIdentifier","src":"22024:1:54"},{"name":"length","nativeSrc":"22027:6:54","nodeType":"YulIdentifier","src":"22027:6:54"}],"functionName":{"name":"lt","nativeSrc":"22021:2:54","nodeType":"YulIdentifier","src":"22021:2:54"},"nativeSrc":"22021:13:54","nodeType":"YulFunctionCall","src":"22021:13:54"},"nativeSrc":"22013:165:54","nodeType":"YulForLoop","post":{"nativeSrc":"22035:19:54","nodeType":"YulBlock","src":"22035:19:54","statements":[{"nativeSrc":"22037:15:54","nodeType":"YulAssignment","src":"22037:15:54","value":{"arguments":[{"name":"i","nativeSrc":"22046:1:54","nodeType":"YulIdentifier","src":"22046:1:54"},{"name":"_2","nativeSrc":"22049:2:54","nodeType":"YulIdentifier","src":"22049:2:54"}],"functionName":{"name":"add","nativeSrc":"22042:3:54","nodeType":"YulIdentifier","src":"22042:3:54"},"nativeSrc":"22042:10:54","nodeType":"YulFunctionCall","src":"22042:10:54"},"variableNames":[{"name":"i","nativeSrc":"22037:1:54","nodeType":"YulIdentifier","src":"22037:1:54"}]}]},"pre":{"nativeSrc":"22017:3:54","nodeType":"YulBlock","src":"22017:3:54","statements":[]},"src":"22013:165:54"},{"nativeSrc":"22191:23:54","nodeType":"YulAssignment","src":"22191:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"22202:3:54","nodeType":"YulIdentifier","src":"22202:3:54"},{"name":"length","nativeSrc":"22207:6:54","nodeType":"YulIdentifier","src":"22207:6:54"}],"functionName":{"name":"add","nativeSrc":"22198:3:54","nodeType":"YulIdentifier","src":"22198:3:54"},"nativeSrc":"22198:16:54","nodeType":"YulFunctionCall","src":"22198:16:54"},"variableNames":[{"name":"ret","nativeSrc":"22191:3:54","nodeType":"YulIdentifier","src":"22191:3:54"}]}]},"nativeSrc":"21866:358:54","nodeType":"YulCase","src":"21866:358:54","value":{"kind":"number","nativeSrc":"21871:1:54","nodeType":"YulLiteral","src":"21871:1:54","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nativeSrc":"21644:9:54","nodeType":"YulIdentifier","src":"21644:9:54"},{"kind":"number","nativeSrc":"21655:1:54","nodeType":"YulLiteral","src":"21655:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"21640:3:54","nodeType":"YulIdentifier","src":"21640:3:54"},"nativeSrc":"21640:17:54","nodeType":"YulFunctionCall","src":"21640:17:54"},"nativeSrc":"21633:591:54","nodeType":"YulSwitch","src":"21633:591:54"},{"nativeSrc":"22233:10:54","nodeType":"YulAssignment","src":"22233:10:54","value":{"name":"ret","nativeSrc":"22240:3:54","nodeType":"YulIdentifier","src":"22240:3:54"},"variableNames":[{"name":"end","nativeSrc":"22233:3:54","nodeType":"YulIdentifier","src":"22233:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"21350:899:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"21460:3:54","nodeType":"YulTypedName","src":"21460:3:54","type":""},{"name":"value0","nativeSrc":"21465:6:54","nodeType":"YulTypedName","src":"21465:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21476:3:54","nodeType":"YulTypedName","src":"21476:3:54","type":""}],"src":"21350:899:54"},{"body":{"nativeSrc":"22428:253:54","nodeType":"YulBlock","src":"22428:253:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22445:9:54","nodeType":"YulIdentifier","src":"22445:9:54"},{"kind":"number","nativeSrc":"22456:2:54","nodeType":"YulLiteral","src":"22456:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"22438:6:54","nodeType":"YulIdentifier","src":"22438:6:54"},"nativeSrc":"22438:21:54","nodeType":"YulFunctionCall","src":"22438:21:54"},"nativeSrc":"22438:21:54","nodeType":"YulExpressionStatement","src":"22438:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22479:9:54","nodeType":"YulIdentifier","src":"22479:9:54"},{"kind":"number","nativeSrc":"22490:2:54","nodeType":"YulLiteral","src":"22490:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22475:3:54","nodeType":"YulIdentifier","src":"22475:3:54"},"nativeSrc":"22475:18:54","nodeType":"YulFunctionCall","src":"22475:18:54"},{"kind":"number","nativeSrc":"22495:2:54","nodeType":"YulLiteral","src":"22495:2:54","type":"","value":"63"}],"functionName":{"name":"mstore","nativeSrc":"22468:6:54","nodeType":"YulIdentifier","src":"22468:6:54"},"nativeSrc":"22468:30:54","nodeType":"YulFunctionCall","src":"22468:30:54"},"nativeSrc":"22468:30:54","nodeType":"YulExpressionStatement","src":"22468:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22518:9:54","nodeType":"YulIdentifier","src":"22518:9:54"},{"kind":"number","nativeSrc":"22529:2:54","nodeType":"YulLiteral","src":"22529:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"22514:3:54","nodeType":"YulIdentifier","src":"22514:3:54"},"nativeSrc":"22514:18:54","nodeType":"YulFunctionCall","src":"22514:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a726574","kind":"string","nativeSrc":"22534:34:54","nodeType":"YulLiteral","src":"22534:34:54","type":"","value":"OmnichainGovernanceExecutor::ret"}],"functionName":{"name":"mstore","nativeSrc":"22507:6:54","nodeType":"YulIdentifier","src":"22507:6:54"},"nativeSrc":"22507:62:54","nodeType":"YulFunctionCall","src":"22507:62:54"},"nativeSrc":"22507:62:54","nodeType":"YulExpressionStatement","src":"22507:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22589:9:54","nodeType":"YulIdentifier","src":"22589:9:54"},{"kind":"number","nativeSrc":"22600:2:54","nodeType":"YulLiteral","src":"22600:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22585:3:54","nodeType":"YulIdentifier","src":"22585:3:54"},"nativeSrc":"22585:18:54","nodeType":"YulFunctionCall","src":"22585:18:54"},{"hexValue":"72794d6573736167653a206e6f74206120747275737465642072656d6f7465","kind":"string","nativeSrc":"22605:33:54","nodeType":"YulLiteral","src":"22605:33:54","type":"","value":"ryMessage: not a trusted remote"}],"functionName":{"name":"mstore","nativeSrc":"22578:6:54","nodeType":"YulIdentifier","src":"22578:6:54"},"nativeSrc":"22578:61:54","nodeType":"YulFunctionCall","src":"22578:61:54"},"nativeSrc":"22578:61:54","nodeType":"YulExpressionStatement","src":"22578:61:54"},{"nativeSrc":"22648:27:54","nodeType":"YulAssignment","src":"22648:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"22660:9:54","nodeType":"YulIdentifier","src":"22660:9:54"},{"kind":"number","nativeSrc":"22671:3:54","nodeType":"YulLiteral","src":"22671:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"22656:3:54","nodeType":"YulIdentifier","src":"22656:3:54"},"nativeSrc":"22656:19:54","nodeType":"YulFunctionCall","src":"22656:19:54"},"variableNames":[{"name":"tail","nativeSrc":"22648:4:54","nodeType":"YulIdentifier","src":"22648:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22254:427:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22405:9:54","nodeType":"YulTypedName","src":"22405:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22419:4:54","nodeType":"YulTypedName","src":"22419:4:54","type":""}],"src":"22254:427:54"},{"body":{"nativeSrc":"22839:205:54","nodeType":"YulBlock","src":"22839:205:54","statements":[{"nativeSrc":"22849:26:54","nodeType":"YulAssignment","src":"22849:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"22861:9:54","nodeType":"YulIdentifier","src":"22861:9:54"},{"kind":"number","nativeSrc":"22872:2:54","nodeType":"YulLiteral","src":"22872:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22857:3:54","nodeType":"YulIdentifier","src":"22857:3:54"},"nativeSrc":"22857:18:54","nodeType":"YulFunctionCall","src":"22857:18:54"},"variableNames":[{"name":"tail","nativeSrc":"22849:4:54","nodeType":"YulIdentifier","src":"22849:4:54"}]},{"nativeSrc":"22884:16:54","nodeType":"YulVariableDeclaration","src":"22884:16:54","value":{"kind":"number","nativeSrc":"22894:6:54","nodeType":"YulLiteral","src":"22894:6:54","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"22888:2:54","nodeType":"YulTypedName","src":"22888:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"22916:9:54","nodeType":"YulIdentifier","src":"22916:9:54"},{"arguments":[{"name":"value0","nativeSrc":"22931:6:54","nodeType":"YulIdentifier","src":"22931:6:54"},{"name":"_1","nativeSrc":"22939:2:54","nodeType":"YulIdentifier","src":"22939:2:54"}],"functionName":{"name":"and","nativeSrc":"22927:3:54","nodeType":"YulIdentifier","src":"22927:3:54"},"nativeSrc":"22927:15:54","nodeType":"YulFunctionCall","src":"22927:15:54"}],"functionName":{"name":"mstore","nativeSrc":"22909:6:54","nodeType":"YulIdentifier","src":"22909:6:54"},"nativeSrc":"22909:34:54","nodeType":"YulFunctionCall","src":"22909:34:54"},"nativeSrc":"22909:34:54","nodeType":"YulExpressionStatement","src":"22909:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22963:9:54","nodeType":"YulIdentifier","src":"22963:9:54"},{"kind":"number","nativeSrc":"22974:2:54","nodeType":"YulLiteral","src":"22974:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22959:3:54","nodeType":"YulIdentifier","src":"22959:3:54"},"nativeSrc":"22959:18:54","nodeType":"YulFunctionCall","src":"22959:18:54"},{"arguments":[{"name":"value1","nativeSrc":"22983:6:54","nodeType":"YulIdentifier","src":"22983:6:54"},{"name":"_1","nativeSrc":"22991:2:54","nodeType":"YulIdentifier","src":"22991:2:54"}],"functionName":{"name":"and","nativeSrc":"22979:3:54","nodeType":"YulIdentifier","src":"22979:3:54"},"nativeSrc":"22979:15:54","nodeType":"YulFunctionCall","src":"22979:15:54"}],"functionName":{"name":"mstore","nativeSrc":"22952:6:54","nodeType":"YulIdentifier","src":"22952:6:54"},"nativeSrc":"22952:43:54","nodeType":"YulFunctionCall","src":"22952:43:54"},"nativeSrc":"22952:43:54","nodeType":"YulExpressionStatement","src":"22952:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23015:9:54","nodeType":"YulIdentifier","src":"23015:9:54"},{"kind":"number","nativeSrc":"23026:2:54","nodeType":"YulLiteral","src":"23026:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23011:3:54","nodeType":"YulIdentifier","src":"23011:3:54"},"nativeSrc":"23011:18:54","nodeType":"YulFunctionCall","src":"23011:18:54"},{"name":"value2","nativeSrc":"23031:6:54","nodeType":"YulIdentifier","src":"23031:6:54"}],"functionName":{"name":"mstore","nativeSrc":"23004:6:54","nodeType":"YulIdentifier","src":"23004:6:54"},"nativeSrc":"23004:34:54","nodeType":"YulFunctionCall","src":"23004:34:54"},"nativeSrc":"23004:34:54","nodeType":"YulExpressionStatement","src":"23004:34:54"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nativeSrc":"22686:358:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22792:9:54","nodeType":"YulTypedName","src":"22792:9:54","type":""},{"name":"value2","nativeSrc":"22803:6:54","nodeType":"YulTypedName","src":"22803:6:54","type":""},{"name":"value1","nativeSrc":"22811:6:54","nodeType":"YulTypedName","src":"22811:6:54","type":""},{"name":"value0","nativeSrc":"22819:6:54","nodeType":"YulTypedName","src":"22819:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22830:4:54","nodeType":"YulTypedName","src":"22830:4:54","type":""}],"src":"22686:358:54"},{"body":{"nativeSrc":"23150:1221:54","nodeType":"YulBlock","src":"23150:1221:54","statements":[{"body":{"nativeSrc":"23191:22:54","nodeType":"YulBlock","src":"23191:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"23193:16:54","nodeType":"YulIdentifier","src":"23193:16:54"},"nativeSrc":"23193:18:54","nodeType":"YulFunctionCall","src":"23193:18:54"},"nativeSrc":"23193:18:54","nodeType":"YulExpressionStatement","src":"23193:18:54"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"23166:3:54","nodeType":"YulIdentifier","src":"23166:3:54"},{"kind":"number","nativeSrc":"23171:18:54","nodeType":"YulLiteral","src":"23171:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23163:2:54","nodeType":"YulIdentifier","src":"23163:2:54"},"nativeSrc":"23163:27:54","nodeType":"YulFunctionCall","src":"23163:27:54"},"nativeSrc":"23160:53:54","nodeType":"YulIf","src":"23160:53:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23265:4:54","nodeType":"YulIdentifier","src":"23265:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"23303:4:54","nodeType":"YulIdentifier","src":"23303:4:54"}],"functionName":{"name":"sload","nativeSrc":"23297:5:54","nodeType":"YulIdentifier","src":"23297:5:54"},"nativeSrc":"23297:11:54","nodeType":"YulFunctionCall","src":"23297:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"23271:25:54","nodeType":"YulIdentifier","src":"23271:25:54"},"nativeSrc":"23271:38:54","nodeType":"YulFunctionCall","src":"23271:38:54"},{"name":"len","nativeSrc":"23311:3:54","nodeType":"YulIdentifier","src":"23311:3:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"23222:42:54","nodeType":"YulIdentifier","src":"23222:42:54"},"nativeSrc":"23222:93:54","nodeType":"YulFunctionCall","src":"23222:93:54"},"nativeSrc":"23222:93:54","nodeType":"YulExpressionStatement","src":"23222:93:54"},{"nativeSrc":"23324:18:54","nodeType":"YulVariableDeclaration","src":"23324:18:54","value":{"kind":"number","nativeSrc":"23341:1:54","nodeType":"YulLiteral","src":"23341:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"23328:9:54","nodeType":"YulTypedName","src":"23328:9:54","type":""}]},{"cases":[{"body":{"nativeSrc":"23385:728:54","nodeType":"YulBlock","src":"23385:728:54","statements":[{"nativeSrc":"23399:91:54","nodeType":"YulVariableDeclaration","src":"23399:91:54","value":{"arguments":[{"name":"len","nativeSrc":"23418:3:54","nodeType":"YulIdentifier","src":"23418:3:54"},{"kind":"number","nativeSrc":"23423:66:54","nodeType":"YulLiteral","src":"23423:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"23414:3:54","nodeType":"YulIdentifier","src":"23414:3:54"},"nativeSrc":"23414:76:54","nodeType":"YulFunctionCall","src":"23414:76:54"},"variables":[{"name":"loopEnd","nativeSrc":"23403:7:54","nodeType":"YulTypedName","src":"23403:7:54","type":""}]},{"nativeSrc":"23503:49:54","nodeType":"YulVariableDeclaration","src":"23503:49:54","value":{"arguments":[{"name":"slot","nativeSrc":"23547:4:54","nodeType":"YulIdentifier","src":"23547:4:54"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"23517:29:54","nodeType":"YulIdentifier","src":"23517:29:54"},"nativeSrc":"23517:35:54","nodeType":"YulFunctionCall","src":"23517:35:54"},"variables":[{"name":"dstPtr","nativeSrc":"23507:6:54","nodeType":"YulTypedName","src":"23507:6:54","type":""}]},{"nativeSrc":"23565:18:54","nodeType":"YulVariableDeclaration","src":"23565:18:54","value":{"name":"srcOffset","nativeSrc":"23574:9:54","nodeType":"YulIdentifier","src":"23574:9:54"},"variables":[{"name":"i","nativeSrc":"23569:1:54","nodeType":"YulTypedName","src":"23569:1:54","type":""}]},{"body":{"nativeSrc":"23653:172:54","nodeType":"YulBlock","src":"23653:172:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"23678:6:54","nodeType":"YulIdentifier","src":"23678:6:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23703:3:54","nodeType":"YulIdentifier","src":"23703:3:54"},{"name":"srcOffset","nativeSrc":"23708:9:54","nodeType":"YulIdentifier","src":"23708:9:54"}],"functionName":{"name":"add","nativeSrc":"23699:3:54","nodeType":"YulIdentifier","src":"23699:3:54"},"nativeSrc":"23699:19:54","nodeType":"YulFunctionCall","src":"23699:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"23686:12:54","nodeType":"YulIdentifier","src":"23686:12:54"},"nativeSrc":"23686:33:54","nodeType":"YulFunctionCall","src":"23686:33:54"}],"functionName":{"name":"sstore","nativeSrc":"23671:6:54","nodeType":"YulIdentifier","src":"23671:6:54"},"nativeSrc":"23671:49:54","nodeType":"YulFunctionCall","src":"23671:49:54"},"nativeSrc":"23671:49:54","nodeType":"YulExpressionStatement","src":"23671:49:54"},{"nativeSrc":"23737:24:54","nodeType":"YulAssignment","src":"23737:24:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"23751:6:54","nodeType":"YulIdentifier","src":"23751:6:54"},{"kind":"number","nativeSrc":"23759:1:54","nodeType":"YulLiteral","src":"23759:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23747:3:54","nodeType":"YulIdentifier","src":"23747:3:54"},"nativeSrc":"23747:14:54","nodeType":"YulFunctionCall","src":"23747:14:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"23737:6:54","nodeType":"YulIdentifier","src":"23737:6:54"}]},{"nativeSrc":"23778:33:54","nodeType":"YulAssignment","src":"23778:33:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"23795:9:54","nodeType":"YulIdentifier","src":"23795:9:54"},{"kind":"number","nativeSrc":"23806:4:54","nodeType":"YulLiteral","src":"23806:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23791:3:54","nodeType":"YulIdentifier","src":"23791:3:54"},"nativeSrc":"23791:20:54","nodeType":"YulFunctionCall","src":"23791:20:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"23778:9:54","nodeType":"YulIdentifier","src":"23778:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"23607:1:54","nodeType":"YulIdentifier","src":"23607:1:54"},{"name":"loopEnd","nativeSrc":"23610:7:54","nodeType":"YulIdentifier","src":"23610:7:54"}],"functionName":{"name":"lt","nativeSrc":"23604:2:54","nodeType":"YulIdentifier","src":"23604:2:54"},"nativeSrc":"23604:14:54","nodeType":"YulFunctionCall","src":"23604:14:54"},"nativeSrc":"23596:229:54","nodeType":"YulForLoop","post":{"nativeSrc":"23619:21:54","nodeType":"YulBlock","src":"23619:21:54","statements":[{"nativeSrc":"23621:17:54","nodeType":"YulAssignment","src":"23621:17:54","value":{"arguments":[{"name":"i","nativeSrc":"23630:1:54","nodeType":"YulIdentifier","src":"23630:1:54"},{"kind":"number","nativeSrc":"23633:4:54","nodeType":"YulLiteral","src":"23633:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23626:3:54","nodeType":"YulIdentifier","src":"23626:3:54"},"nativeSrc":"23626:12:54","nodeType":"YulFunctionCall","src":"23626:12:54"},"variableNames":[{"name":"i","nativeSrc":"23621:1:54","nodeType":"YulIdentifier","src":"23621:1:54"}]}]},"pre":{"nativeSrc":"23600:3:54","nodeType":"YulBlock","src":"23600:3:54","statements":[]},"src":"23596:229:54"},{"body":{"nativeSrc":"23870:187:54","nodeType":"YulBlock","src":"23870:187:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"23895:6:54","nodeType":"YulIdentifier","src":"23895:6:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23924:3:54","nodeType":"YulIdentifier","src":"23924:3:54"},{"name":"srcOffset","nativeSrc":"23929:9:54","nodeType":"YulIdentifier","src":"23929:9:54"}],"functionName":{"name":"add","nativeSrc":"23920:3:54","nodeType":"YulIdentifier","src":"23920:3:54"},"nativeSrc":"23920:19:54","nodeType":"YulFunctionCall","src":"23920:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"23907:12:54","nodeType":"YulIdentifier","src":"23907:12:54"},"nativeSrc":"23907:33:54","nodeType":"YulFunctionCall","src":"23907:33:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23958:1:54","nodeType":"YulLiteral","src":"23958:1:54","type":"","value":"3"},{"name":"len","nativeSrc":"23961:3:54","nodeType":"YulIdentifier","src":"23961:3:54"}],"functionName":{"name":"shl","nativeSrc":"23954:3:54","nodeType":"YulIdentifier","src":"23954:3:54"},"nativeSrc":"23954:11:54","nodeType":"YulFunctionCall","src":"23954:11:54"},{"kind":"number","nativeSrc":"23967:3:54","nodeType":"YulLiteral","src":"23967:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"23950:3:54","nodeType":"YulIdentifier","src":"23950:3:54"},"nativeSrc":"23950:21:54","nodeType":"YulFunctionCall","src":"23950:21:54"},{"kind":"number","nativeSrc":"23973:66:54","nodeType":"YulLiteral","src":"23973:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"23946:3:54","nodeType":"YulIdentifier","src":"23946:3:54"},"nativeSrc":"23946:94:54","nodeType":"YulFunctionCall","src":"23946:94:54"}],"functionName":{"name":"not","nativeSrc":"23942:3:54","nodeType":"YulIdentifier","src":"23942:3:54"},"nativeSrc":"23942:99:54","nodeType":"YulFunctionCall","src":"23942:99:54"}],"functionName":{"name":"and","nativeSrc":"23903:3:54","nodeType":"YulIdentifier","src":"23903:3:54"},"nativeSrc":"23903:139:54","nodeType":"YulFunctionCall","src":"23903:139:54"}],"functionName":{"name":"sstore","nativeSrc":"23888:6:54","nodeType":"YulIdentifier","src":"23888:6:54"},"nativeSrc":"23888:155:54","nodeType":"YulFunctionCall","src":"23888:155:54"},"nativeSrc":"23888:155:54","nodeType":"YulExpressionStatement","src":"23888:155:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"23844:7:54","nodeType":"YulIdentifier","src":"23844:7:54"},{"name":"len","nativeSrc":"23853:3:54","nodeType":"YulIdentifier","src":"23853:3:54"}],"functionName":{"name":"lt","nativeSrc":"23841:2:54","nodeType":"YulIdentifier","src":"23841:2:54"},"nativeSrc":"23841:16:54","nodeType":"YulFunctionCall","src":"23841:16:54"},"nativeSrc":"23838:219:54","nodeType":"YulIf","src":"23838:219:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24077:4:54","nodeType":"YulIdentifier","src":"24077:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24091:1:54","nodeType":"YulLiteral","src":"24091:1:54","type":"","value":"1"},{"name":"len","nativeSrc":"24094:3:54","nodeType":"YulIdentifier","src":"24094:3:54"}],"functionName":{"name":"shl","nativeSrc":"24087:3:54","nodeType":"YulIdentifier","src":"24087:3:54"},"nativeSrc":"24087:11:54","nodeType":"YulFunctionCall","src":"24087:11:54"},{"kind":"number","nativeSrc":"24100:1:54","nodeType":"YulLiteral","src":"24100:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24083:3:54","nodeType":"YulIdentifier","src":"24083:3:54"},"nativeSrc":"24083:19:54","nodeType":"YulFunctionCall","src":"24083:19:54"}],"functionName":{"name":"sstore","nativeSrc":"24070:6:54","nodeType":"YulIdentifier","src":"24070:6:54"},"nativeSrc":"24070:33:54","nodeType":"YulFunctionCall","src":"24070:33:54"},"nativeSrc":"24070:33:54","nodeType":"YulExpressionStatement","src":"24070:33:54"}]},"nativeSrc":"23378:735:54","nodeType":"YulCase","src":"23378:735:54","value":{"kind":"number","nativeSrc":"23383:1:54","nodeType":"YulLiteral","src":"23383:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"24130:235:54","nodeType":"YulBlock","src":"24130:235:54","statements":[{"nativeSrc":"24144:14:54","nodeType":"YulVariableDeclaration","src":"24144:14:54","value":{"kind":"number","nativeSrc":"24157:1:54","nodeType":"YulLiteral","src":"24157:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"24148:5:54","nodeType":"YulTypedName","src":"24148:5:54","type":""}]},{"body":{"nativeSrc":"24190:74:54","nodeType":"YulBlock","src":"24190:74:54","statements":[{"nativeSrc":"24208:42:54","nodeType":"YulAssignment","src":"24208:42:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24234:3:54","nodeType":"YulIdentifier","src":"24234:3:54"},{"name":"srcOffset","nativeSrc":"24239:9:54","nodeType":"YulIdentifier","src":"24239:9:54"}],"functionName":{"name":"add","nativeSrc":"24230:3:54","nodeType":"YulIdentifier","src":"24230:3:54"},"nativeSrc":"24230:19:54","nodeType":"YulFunctionCall","src":"24230:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"24217:12:54","nodeType":"YulIdentifier","src":"24217:12:54"},"nativeSrc":"24217:33:54","nodeType":"YulFunctionCall","src":"24217:33:54"},"variableNames":[{"name":"value","nativeSrc":"24208:5:54","nodeType":"YulIdentifier","src":"24208:5:54"}]}]},"condition":{"name":"len","nativeSrc":"24174:3:54","nodeType":"YulIdentifier","src":"24174:3:54"},"nativeSrc":"24171:93:54","nodeType":"YulIf","src":"24171:93:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24284:4:54","nodeType":"YulIdentifier","src":"24284:4:54"},{"arguments":[{"name":"value","nativeSrc":"24343:5:54","nodeType":"YulIdentifier","src":"24343:5:54"},{"name":"len","nativeSrc":"24350:3:54","nodeType":"YulIdentifier","src":"24350:3:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"24290:52:54","nodeType":"YulIdentifier","src":"24290:52:54"},"nativeSrc":"24290:64:54","nodeType":"YulFunctionCall","src":"24290:64:54"}],"functionName":{"name":"sstore","nativeSrc":"24277:6:54","nodeType":"YulIdentifier","src":"24277:6:54"},"nativeSrc":"24277:78:54","nodeType":"YulFunctionCall","src":"24277:78:54"},"nativeSrc":"24277:78:54","nodeType":"YulExpressionStatement","src":"24277:78:54"}]},"nativeSrc":"24122:243:54","nodeType":"YulCase","src":"24122:243:54","value":"default"}],"expression":{"arguments":[{"name":"len","nativeSrc":"23361:3:54","nodeType":"YulIdentifier","src":"23361:3:54"},{"kind":"number","nativeSrc":"23366:2:54","nodeType":"YulLiteral","src":"23366:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"23358:2:54","nodeType":"YulIdentifier","src":"23358:2:54"},"nativeSrc":"23358:11:54","nodeType":"YulFunctionCall","src":"23358:11:54"},"nativeSrc":"23351:1014:54","nodeType":"YulSwitch","src":"23351:1014:54"}]},"name":"copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage","nativeSrc":"23049:1322:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"23130:4:54","nodeType":"YulTypedName","src":"23130:4:54","type":""},{"name":"src","nativeSrc":"23136:3:54","nodeType":"YulTypedName","src":"23136:3:54","type":""},{"name":"len","nativeSrc":"23141:3:54","nodeType":"YulTypedName","src":"23141:3:54","type":""}],"src":"23049:1322:54"},{"body":{"nativeSrc":"24422:102:54","nodeType":"YulBlock","src":"24422:102:54","statements":[{"nativeSrc":"24432:38:54","nodeType":"YulAssignment","src":"24432:38:54","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"24447:1:54","nodeType":"YulIdentifier","src":"24447:1:54"},{"kind":"number","nativeSrc":"24450:4:54","nodeType":"YulLiteral","src":"24450:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"24443:3:54","nodeType":"YulIdentifier","src":"24443:3:54"},"nativeSrc":"24443:12:54","nodeType":"YulFunctionCall","src":"24443:12:54"},{"arguments":[{"name":"y","nativeSrc":"24461:1:54","nodeType":"YulIdentifier","src":"24461:1:54"},{"kind":"number","nativeSrc":"24464:4:54","nodeType":"YulLiteral","src":"24464:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"24457:3:54","nodeType":"YulIdentifier","src":"24457:3:54"},"nativeSrc":"24457:12:54","nodeType":"YulFunctionCall","src":"24457:12:54"}],"functionName":{"name":"add","nativeSrc":"24439:3:54","nodeType":"YulIdentifier","src":"24439:3:54"},"nativeSrc":"24439:31:54","nodeType":"YulFunctionCall","src":"24439:31:54"},"variableNames":[{"name":"sum","nativeSrc":"24432:3:54","nodeType":"YulIdentifier","src":"24432:3:54"}]},{"body":{"nativeSrc":"24496:22:54","nodeType":"YulBlock","src":"24496:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"24498:16:54","nodeType":"YulIdentifier","src":"24498:16:54"},"nativeSrc":"24498:18:54","nodeType":"YulFunctionCall","src":"24498:18:54"},"nativeSrc":"24498:18:54","nodeType":"YulExpressionStatement","src":"24498:18:54"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"24485:3:54","nodeType":"YulIdentifier","src":"24485:3:54"},{"kind":"number","nativeSrc":"24490:4:54","nodeType":"YulLiteral","src":"24490:4:54","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"24482:2:54","nodeType":"YulIdentifier","src":"24482:2:54"},"nativeSrc":"24482:13:54","nodeType":"YulFunctionCall","src":"24482:13:54"},"nativeSrc":"24479:39:54","nodeType":"YulIf","src":"24479:39:54"}]},"name":"checked_add_t_uint8","nativeSrc":"24376:148:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"24405:1:54","nodeType":"YulTypedName","src":"24405:1:54","type":""},{"name":"y","nativeSrc":"24408:1:54","nodeType":"YulTypedName","src":"24408:1:54","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"24414:3:54","nodeType":"YulTypedName","src":"24414:3:54","type":""}],"src":"24376:148:54"},{"body":{"nativeSrc":"24703:377:54","nodeType":"YulBlock","src":"24703:377:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24720:9:54","nodeType":"YulIdentifier","src":"24720:9:54"},{"kind":"number","nativeSrc":"24731:2:54","nodeType":"YulLiteral","src":"24731:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"24713:6:54","nodeType":"YulIdentifier","src":"24713:6:54"},"nativeSrc":"24713:21:54","nodeType":"YulFunctionCall","src":"24713:21:54"},"nativeSrc":"24713:21:54","nodeType":"YulExpressionStatement","src":"24713:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24754:9:54","nodeType":"YulIdentifier","src":"24754:9:54"},{"kind":"number","nativeSrc":"24765:2:54","nodeType":"YulLiteral","src":"24765:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24750:3:54","nodeType":"YulIdentifier","src":"24750:3:54"},"nativeSrc":"24750:18:54","nodeType":"YulFunctionCall","src":"24750:18:54"},{"kind":"number","nativeSrc":"24770:3:54","nodeType":"YulLiteral","src":"24770:3:54","type":"","value":"106"}],"functionName":{"name":"mstore","nativeSrc":"24743:6:54","nodeType":"YulIdentifier","src":"24743:6:54"},"nativeSrc":"24743:31:54","nodeType":"YulFunctionCall","src":"24743:31:54"},"nativeSrc":"24743:31:54","nodeType":"YulExpressionStatement","src":"24743:31:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24794:9:54","nodeType":"YulIdentifier","src":"24794:9:54"},{"kind":"number","nativeSrc":"24805:2:54","nodeType":"YulLiteral","src":"24805:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24790:3:54","nodeType":"YulIdentifier","src":"24790:3:54"},"nativeSrc":"24790:18:54","nodeType":"YulFunctionCall","src":"24790:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a616464","kind":"string","nativeSrc":"24810:34:54","nodeType":"YulLiteral","src":"24810:34:54","type":"","value":"OmnichainGovernanceExecutor::add"}],"functionName":{"name":"mstore","nativeSrc":"24783:6:54","nodeType":"YulIdentifier","src":"24783:6:54"},"nativeSrc":"24783:62:54","nodeType":"YulFunctionCall","src":"24783:62:54"},"nativeSrc":"24783:62:54","nodeType":"YulExpressionStatement","src":"24783:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24865:9:54","nodeType":"YulIdentifier","src":"24865:9:54"},{"kind":"number","nativeSrc":"24876:2:54","nodeType":"YulLiteral","src":"24876:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24861:3:54","nodeType":"YulIdentifier","src":"24861:3:54"},"nativeSrc":"24861:18:54","nodeType":"YulFunctionCall","src":"24861:18:54"},{"hexValue":"54696d656c6f636b733a6e756d626572206f662074696d656c6f636b73207368","kind":"string","nativeSrc":"24881:34:54","nodeType":"YulLiteral","src":"24881:34:54","type":"","value":"Timelocks:number of timelocks sh"}],"functionName":{"name":"mstore","nativeSrc":"24854:6:54","nodeType":"YulIdentifier","src":"24854:6:54"},"nativeSrc":"24854:62:54","nodeType":"YulFunctionCall","src":"24854:62:54"},"nativeSrc":"24854:62:54","nodeType":"YulExpressionStatement","src":"24854:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24936:9:54","nodeType":"YulIdentifier","src":"24936:9:54"},{"kind":"number","nativeSrc":"24947:3:54","nodeType":"YulLiteral","src":"24947:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"24932:3:54","nodeType":"YulIdentifier","src":"24932:3:54"},"nativeSrc":"24932:19:54","nodeType":"YulFunctionCall","src":"24932:19:54"},{"hexValue":"6f756c64206d6174636820746865206e756d626572206f6620676f7665726e61","kind":"string","nativeSrc":"24953:34:54","nodeType":"YulLiteral","src":"24953:34:54","type":"","value":"ould match the number of governa"}],"functionName":{"name":"mstore","nativeSrc":"24925:6:54","nodeType":"YulIdentifier","src":"24925:6:54"},"nativeSrc":"24925:63:54","nodeType":"YulFunctionCall","src":"24925:63:54"},"nativeSrc":"24925:63:54","nodeType":"YulExpressionStatement","src":"24925:63:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25008:9:54","nodeType":"YulIdentifier","src":"25008:9:54"},{"kind":"number","nativeSrc":"25019:3:54","nodeType":"YulLiteral","src":"25019:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"25004:3:54","nodeType":"YulIdentifier","src":"25004:3:54"},"nativeSrc":"25004:19:54","nodeType":"YulFunctionCall","src":"25004:19:54"},{"hexValue":"6e636520726f75746573","kind":"string","nativeSrc":"25025:12:54","nodeType":"YulLiteral","src":"25025:12:54","type":"","value":"nce routes"}],"functionName":{"name":"mstore","nativeSrc":"24997:6:54","nodeType":"YulIdentifier","src":"24997:6:54"},"nativeSrc":"24997:41:54","nodeType":"YulFunctionCall","src":"24997:41:54"},"nativeSrc":"24997:41:54","nodeType":"YulExpressionStatement","src":"24997:41:54"},{"nativeSrc":"25047:27:54","nodeType":"YulAssignment","src":"25047:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"25059:9:54","nodeType":"YulIdentifier","src":"25059:9:54"},{"kind":"number","nativeSrc":"25070:3:54","nodeType":"YulLiteral","src":"25070:3:54","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"25055:3:54","nodeType":"YulIdentifier","src":"25055:3:54"},"nativeSrc":"25055:19:54","nodeType":"YulFunctionCall","src":"25055:19:54"},"variableNames":[{"name":"tail","nativeSrc":"25047:4:54","nodeType":"YulIdentifier","src":"25047:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"24529:551:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24680:9:54","nodeType":"YulTypedName","src":"24680:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24694:4:54","nodeType":"YulTypedName","src":"24694:4:54","type":""}],"src":"24529:551:54"},{"body":{"nativeSrc":"25182:87:54","nodeType":"YulBlock","src":"25182:87:54","statements":[{"nativeSrc":"25192:26:54","nodeType":"YulAssignment","src":"25192:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"25204:9:54","nodeType":"YulIdentifier","src":"25204:9:54"},{"kind":"number","nativeSrc":"25215:2:54","nodeType":"YulLiteral","src":"25215:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25200:3:54","nodeType":"YulIdentifier","src":"25200:3:54"},"nativeSrc":"25200:18:54","nodeType":"YulFunctionCall","src":"25200:18:54"},"variableNames":[{"name":"tail","nativeSrc":"25192:4:54","nodeType":"YulIdentifier","src":"25192:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25234:9:54","nodeType":"YulIdentifier","src":"25234:9:54"},{"arguments":[{"name":"value0","nativeSrc":"25249:6:54","nodeType":"YulIdentifier","src":"25249:6:54"},{"kind":"number","nativeSrc":"25257:4:54","nodeType":"YulLiteral","src":"25257:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"25245:3:54","nodeType":"YulIdentifier","src":"25245:3:54"},"nativeSrc":"25245:17:54","nodeType":"YulFunctionCall","src":"25245:17:54"}],"functionName":{"name":"mstore","nativeSrc":"25227:6:54","nodeType":"YulIdentifier","src":"25227:6:54"},"nativeSrc":"25227:36:54","nodeType":"YulFunctionCall","src":"25227:36:54"},"nativeSrc":"25227:36:54","nodeType":"YulExpressionStatement","src":"25227:36:54"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"25085:184:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25151:9:54","nodeType":"YulTypedName","src":"25151:9:54","type":""},{"name":"value0","nativeSrc":"25162:6:54","nodeType":"YulTypedName","src":"25162:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25173:4:54","nodeType":"YulTypedName","src":"25173:4:54","type":""}],"src":"25085:184:54"},{"body":{"nativeSrc":"25448:228:54","nodeType":"YulBlock","src":"25448:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25465:9:54","nodeType":"YulIdentifier","src":"25465:9:54"},{"kind":"number","nativeSrc":"25476:2:54","nodeType":"YulLiteral","src":"25476:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25458:6:54","nodeType":"YulIdentifier","src":"25458:6:54"},"nativeSrc":"25458:21:54","nodeType":"YulFunctionCall","src":"25458:21:54"},"nativeSrc":"25458:21:54","nodeType":"YulExpressionStatement","src":"25458:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25499:9:54","nodeType":"YulIdentifier","src":"25499:9:54"},{"kind":"number","nativeSrc":"25510:2:54","nodeType":"YulLiteral","src":"25510:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25495:3:54","nodeType":"YulIdentifier","src":"25495:3:54"},"nativeSrc":"25495:18:54","nodeType":"YulFunctionCall","src":"25495:18:54"},{"kind":"number","nativeSrc":"25515:2:54","nodeType":"YulLiteral","src":"25515:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"25488:6:54","nodeType":"YulIdentifier","src":"25488:6:54"},"nativeSrc":"25488:30:54","nodeType":"YulFunctionCall","src":"25488:30:54"},"nativeSrc":"25488:30:54","nodeType":"YulExpressionStatement","src":"25488:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25538:9:54","nodeType":"YulIdentifier","src":"25538:9:54"},{"kind":"number","nativeSrc":"25549:2:54","nodeType":"YulLiteral","src":"25549:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25534:3:54","nodeType":"YulIdentifier","src":"25534:3:54"},"nativeSrc":"25534:18:54","nodeType":"YulFunctionCall","src":"25534:18:54"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"25554:34:54","nodeType":"YulLiteral","src":"25554:34:54","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"25527:6:54","nodeType":"YulIdentifier","src":"25527:6:54"},"nativeSrc":"25527:62:54","nodeType":"YulFunctionCall","src":"25527:62:54"},"nativeSrc":"25527:62:54","nodeType":"YulExpressionStatement","src":"25527:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25609:9:54","nodeType":"YulIdentifier","src":"25609:9:54"},{"kind":"number","nativeSrc":"25620:2:54","nodeType":"YulLiteral","src":"25620:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25605:3:54","nodeType":"YulIdentifier","src":"25605:3:54"},"nativeSrc":"25605:18:54","nodeType":"YulFunctionCall","src":"25605:18:54"},{"hexValue":"646472657373","kind":"string","nativeSrc":"25625:8:54","nodeType":"YulLiteral","src":"25625:8:54","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"25598:6:54","nodeType":"YulIdentifier","src":"25598:6:54"},"nativeSrc":"25598:36:54","nodeType":"YulFunctionCall","src":"25598:36:54"},"nativeSrc":"25598:36:54","nodeType":"YulExpressionStatement","src":"25598:36:54"},{"nativeSrc":"25643:27:54","nodeType":"YulAssignment","src":"25643:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"25655:9:54","nodeType":"YulIdentifier","src":"25655:9:54"},{"kind":"number","nativeSrc":"25666:3:54","nodeType":"YulLiteral","src":"25666:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25651:3:54","nodeType":"YulIdentifier","src":"25651:3:54"},"nativeSrc":"25651:19:54","nodeType":"YulFunctionCall","src":"25651:19:54"},"variableNames":[{"name":"tail","nativeSrc":"25643:4:54","nodeType":"YulIdentifier","src":"25643:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25274:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25425:9:54","nodeType":"YulTypedName","src":"25425:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25439:4:54","nodeType":"YulTypedName","src":"25439:4:54","type":""}],"src":"25274:402:54"},{"body":{"nativeSrc":"25855:305:54","nodeType":"YulBlock","src":"25855:305:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25872:9:54","nodeType":"YulIdentifier","src":"25872:9:54"},{"kind":"number","nativeSrc":"25883:2:54","nodeType":"YulLiteral","src":"25883:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"25865:6:54","nodeType":"YulIdentifier","src":"25865:6:54"},"nativeSrc":"25865:21:54","nodeType":"YulFunctionCall","src":"25865:21:54"},"nativeSrc":"25865:21:54","nodeType":"YulExpressionStatement","src":"25865:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25906:9:54","nodeType":"YulIdentifier","src":"25906:9:54"},{"kind":"number","nativeSrc":"25917:2:54","nodeType":"YulLiteral","src":"25917:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25902:3:54","nodeType":"YulIdentifier","src":"25902:3:54"},"nativeSrc":"25902:18:54","nodeType":"YulFunctionCall","src":"25902:18:54"},{"kind":"number","nativeSrc":"25922:2:54","nodeType":"YulLiteral","src":"25922:2:54","type":"","value":"75"}],"functionName":{"name":"mstore","nativeSrc":"25895:6:54","nodeType":"YulIdentifier","src":"25895:6:54"},"nativeSrc":"25895:30:54","nodeType":"YulFunctionCall","src":"25895:30:54"},"nativeSrc":"25895:30:54","nodeType":"YulExpressionStatement","src":"25895:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25945:9:54","nodeType":"YulIdentifier","src":"25945:9:54"},{"kind":"number","nativeSrc":"25956:2:54","nodeType":"YulLiteral","src":"25956:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25941:3:54","nodeType":"YulIdentifier","src":"25941:3:54"},"nativeSrc":"25941:18:54","nodeType":"YulFunctionCall","src":"25941:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a736574","kind":"string","nativeSrc":"25961:34:54","nodeType":"YulLiteral","src":"25961:34:54","type":"","value":"OmnichainGovernanceExecutor::set"}],"functionName":{"name":"mstore","nativeSrc":"25934:6:54","nodeType":"YulIdentifier","src":"25934:6:54"},"nativeSrc":"25934:62:54","nodeType":"YulFunctionCall","src":"25934:62:54"},"nativeSrc":"25934:62:54","nodeType":"YulExpressionStatement","src":"25934:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26016:9:54","nodeType":"YulIdentifier","src":"26016:9:54"},{"kind":"number","nativeSrc":"26027:2:54","nodeType":"YulLiteral","src":"26027:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26012:3:54","nodeType":"YulIdentifier","src":"26012:3:54"},"nativeSrc":"26012:18:54","nodeType":"YulFunctionCall","src":"26012:18:54"},{"hexValue":"54696d656c6f636b50656e64696e6741646d696e3a20696e76616c6964207072","kind":"string","nativeSrc":"26032:34:54","nodeType":"YulLiteral","src":"26032:34:54","type":"","value":"TimelockPendingAdmin: invalid pr"}],"functionName":{"name":"mstore","nativeSrc":"26005:6:54","nodeType":"YulIdentifier","src":"26005:6:54"},"nativeSrc":"26005:62:54","nodeType":"YulFunctionCall","src":"26005:62:54"},"nativeSrc":"26005:62:54","nodeType":"YulExpressionStatement","src":"26005:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26087:9:54","nodeType":"YulIdentifier","src":"26087:9:54"},{"kind":"number","nativeSrc":"26098:3:54","nodeType":"YulLiteral","src":"26098:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26083:3:54","nodeType":"YulIdentifier","src":"26083:3:54"},"nativeSrc":"26083:19:54","nodeType":"YulFunctionCall","src":"26083:19:54"},{"hexValue":"6f706f73616c2074797065","kind":"string","nativeSrc":"26104:13:54","nodeType":"YulLiteral","src":"26104:13:54","type":"","value":"oposal type"}],"functionName":{"name":"mstore","nativeSrc":"26076:6:54","nodeType":"YulIdentifier","src":"26076:6:54"},"nativeSrc":"26076:42:54","nodeType":"YulFunctionCall","src":"26076:42:54"},"nativeSrc":"26076:42:54","nodeType":"YulExpressionStatement","src":"26076:42:54"},{"nativeSrc":"26127:27:54","nodeType":"YulAssignment","src":"26127:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"26139:9:54","nodeType":"YulIdentifier","src":"26139:9:54"},{"kind":"number","nativeSrc":"26150:3:54","nodeType":"YulLiteral","src":"26150:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"26135:3:54","nodeType":"YulIdentifier","src":"26135:3:54"},"nativeSrc":"26135:19:54","nodeType":"YulFunctionCall","src":"26135:19:54"},"variableNames":[{"name":"tail","nativeSrc":"26127:4:54","nodeType":"YulIdentifier","src":"26127:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25681:479:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25832:9:54","nodeType":"YulTypedName","src":"25832:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25846:4:54","nodeType":"YulTypedName","src":"25846:4:54","type":""}],"src":"25681:479:54"},{"body":{"nativeSrc":"26290:179:54","nodeType":"YulBlock","src":"26290:179:54","statements":[{"nativeSrc":"26300:26:54","nodeType":"YulAssignment","src":"26300:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"26312:9:54","nodeType":"YulIdentifier","src":"26312:9:54"},{"kind":"number","nativeSrc":"26323:2:54","nodeType":"YulLiteral","src":"26323:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26308:3:54","nodeType":"YulIdentifier","src":"26308:3:54"},"nativeSrc":"26308:18:54","nodeType":"YulFunctionCall","src":"26308:18:54"},"variableNames":[{"name":"tail","nativeSrc":"26300:4:54","nodeType":"YulIdentifier","src":"26300:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26342:9:54","nodeType":"YulIdentifier","src":"26342:9:54"},{"arguments":[{"name":"value0","nativeSrc":"26357:6:54","nodeType":"YulIdentifier","src":"26357:6:54"},{"kind":"number","nativeSrc":"26365:42:54","nodeType":"YulLiteral","src":"26365:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"26353:3:54","nodeType":"YulIdentifier","src":"26353:3:54"},"nativeSrc":"26353:55:54","nodeType":"YulFunctionCall","src":"26353:55:54"}],"functionName":{"name":"mstore","nativeSrc":"26335:6:54","nodeType":"YulIdentifier","src":"26335:6:54"},"nativeSrc":"26335:74:54","nodeType":"YulFunctionCall","src":"26335:74:54"},"nativeSrc":"26335:74:54","nodeType":"YulExpressionStatement","src":"26335:74:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26429:9:54","nodeType":"YulIdentifier","src":"26429:9:54"},{"kind":"number","nativeSrc":"26440:2:54","nodeType":"YulLiteral","src":"26440:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26425:3:54","nodeType":"YulIdentifier","src":"26425:3:54"},"nativeSrc":"26425:18:54","nodeType":"YulFunctionCall","src":"26425:18:54"},{"arguments":[{"name":"value1","nativeSrc":"26449:6:54","nodeType":"YulIdentifier","src":"26449:6:54"},{"kind":"number","nativeSrc":"26457:4:54","nodeType":"YulLiteral","src":"26457:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"26445:3:54","nodeType":"YulIdentifier","src":"26445:3:54"},"nativeSrc":"26445:17:54","nodeType":"YulFunctionCall","src":"26445:17:54"}],"functionName":{"name":"mstore","nativeSrc":"26418:6:54","nodeType":"YulIdentifier","src":"26418:6:54"},"nativeSrc":"26418:45:54","nodeType":"YulFunctionCall","src":"26418:45:54"},"nativeSrc":"26418:45:54","nodeType":"YulExpressionStatement","src":"26418:45:54"}]},"name":"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed","nativeSrc":"26165:304:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26251:9:54","nodeType":"YulTypedName","src":"26251:9:54","type":""},{"name":"value1","nativeSrc":"26262:6:54","nodeType":"YulTypedName","src":"26262:6:54","type":""},{"name":"value0","nativeSrc":"26270:6:54","nodeType":"YulTypedName","src":"26270:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26281:4:54","nodeType":"YulTypedName","src":"26281:4:54","type":""}],"src":"26165:304:54"},{"body":{"nativeSrc":"26655:298:54","nodeType":"YulBlock","src":"26655:298:54","statements":[{"nativeSrc":"26665:27:54","nodeType":"YulAssignment","src":"26665:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"26677:9:54","nodeType":"YulIdentifier","src":"26677:9:54"},{"kind":"number","nativeSrc":"26688:3:54","nodeType":"YulLiteral","src":"26688:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26673:3:54","nodeType":"YulIdentifier","src":"26673:3:54"},"nativeSrc":"26673:19:54","nodeType":"YulFunctionCall","src":"26673:19:54"},"variableNames":[{"name":"tail","nativeSrc":"26665:4:54","nodeType":"YulIdentifier","src":"26665:4:54"}]},{"nativeSrc":"26701:16:54","nodeType":"YulVariableDeclaration","src":"26701:16:54","value":{"kind":"number","nativeSrc":"26711:6:54","nodeType":"YulLiteral","src":"26711:6:54","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"26705:2:54","nodeType":"YulTypedName","src":"26705:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"26733:9:54","nodeType":"YulIdentifier","src":"26733:9:54"},{"arguments":[{"name":"value0","nativeSrc":"26748:6:54","nodeType":"YulIdentifier","src":"26748:6:54"},{"name":"_1","nativeSrc":"26756:2:54","nodeType":"YulIdentifier","src":"26756:2:54"}],"functionName":{"name":"and","nativeSrc":"26744:3:54","nodeType":"YulIdentifier","src":"26744:3:54"},"nativeSrc":"26744:15:54","nodeType":"YulFunctionCall","src":"26744:15:54"}],"functionName":{"name":"mstore","nativeSrc":"26726:6:54","nodeType":"YulIdentifier","src":"26726:6:54"},"nativeSrc":"26726:34:54","nodeType":"YulFunctionCall","src":"26726:34:54"},"nativeSrc":"26726:34:54","nodeType":"YulExpressionStatement","src":"26726:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26780:9:54","nodeType":"YulIdentifier","src":"26780:9:54"},{"kind":"number","nativeSrc":"26791:2:54","nodeType":"YulLiteral","src":"26791:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26776:3:54","nodeType":"YulIdentifier","src":"26776:3:54"},"nativeSrc":"26776:18:54","nodeType":"YulFunctionCall","src":"26776:18:54"},{"arguments":[{"name":"value1","nativeSrc":"26800:6:54","nodeType":"YulIdentifier","src":"26800:6:54"},{"name":"_1","nativeSrc":"26808:2:54","nodeType":"YulIdentifier","src":"26808:2:54"}],"functionName":{"name":"and","nativeSrc":"26796:3:54","nodeType":"YulIdentifier","src":"26796:3:54"},"nativeSrc":"26796:15:54","nodeType":"YulFunctionCall","src":"26796:15:54"}],"functionName":{"name":"mstore","nativeSrc":"26769:6:54","nodeType":"YulIdentifier","src":"26769:6:54"},"nativeSrc":"26769:43:54","nodeType":"YulFunctionCall","src":"26769:43:54"},"nativeSrc":"26769:43:54","nodeType":"YulExpressionStatement","src":"26769:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26832:9:54","nodeType":"YulIdentifier","src":"26832:9:54"},{"kind":"number","nativeSrc":"26843:2:54","nodeType":"YulLiteral","src":"26843:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26828:3:54","nodeType":"YulIdentifier","src":"26828:3:54"},"nativeSrc":"26828:18:54","nodeType":"YulFunctionCall","src":"26828:18:54"},{"arguments":[{"name":"value2","nativeSrc":"26852:6:54","nodeType":"YulIdentifier","src":"26852:6:54"},{"kind":"number","nativeSrc":"26860:42:54","nodeType":"YulLiteral","src":"26860:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"26848:3:54","nodeType":"YulIdentifier","src":"26848:3:54"},"nativeSrc":"26848:55:54","nodeType":"YulFunctionCall","src":"26848:55:54"}],"functionName":{"name":"mstore","nativeSrc":"26821:6:54","nodeType":"YulIdentifier","src":"26821:6:54"},"nativeSrc":"26821:83:54","nodeType":"YulFunctionCall","src":"26821:83:54"},"nativeSrc":"26821:83:54","nodeType":"YulExpressionStatement","src":"26821:83:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26924:9:54","nodeType":"YulIdentifier","src":"26924:9:54"},{"kind":"number","nativeSrc":"26935:2:54","nodeType":"YulLiteral","src":"26935:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26920:3:54","nodeType":"YulIdentifier","src":"26920:3:54"},"nativeSrc":"26920:18:54","nodeType":"YulFunctionCall","src":"26920:18:54"},{"name":"value3","nativeSrc":"26940:6:54","nodeType":"YulIdentifier","src":"26940:6:54"}],"functionName":{"name":"mstore","nativeSrc":"26913:6:54","nodeType":"YulIdentifier","src":"26913:6:54"},"nativeSrc":"26913:34:54","nodeType":"YulFunctionCall","src":"26913:34:54"},"nativeSrc":"26913:34:54","nodeType":"YulExpressionStatement","src":"26913:34:54"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nativeSrc":"26474:479:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26600:9:54","nodeType":"YulTypedName","src":"26600:9:54","type":""},{"name":"value3","nativeSrc":"26611:6:54","nodeType":"YulTypedName","src":"26611:6:54","type":""},{"name":"value2","nativeSrc":"26619:6:54","nodeType":"YulTypedName","src":"26619:6:54","type":""},{"name":"value1","nativeSrc":"26627:6:54","nodeType":"YulTypedName","src":"26627:6:54","type":""},{"name":"value0","nativeSrc":"26635:6:54","nodeType":"YulTypedName","src":"26635:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26646:4:54","nodeType":"YulTypedName","src":"26646:4:54","type":""}],"src":"26474:479:54"},{"body":{"nativeSrc":"27043:235:54","nodeType":"YulBlock","src":"27043:235:54","statements":[{"nativeSrc":"27053:61:54","nodeType":"YulAssignment","src":"27053:61:54","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"27106:6:54","nodeType":"YulIdentifier","src":"27106:6:54"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"27078:27:54","nodeType":"YulIdentifier","src":"27078:27:54"},"nativeSrc":"27078:35:54","nodeType":"YulFunctionCall","src":"27078:35:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"27062:15:54","nodeType":"YulIdentifier","src":"27062:15:54"},"nativeSrc":"27062:52:54","nodeType":"YulFunctionCall","src":"27062:52:54"},"variableNames":[{"name":"array","nativeSrc":"27053:5:54","nodeType":"YulIdentifier","src":"27053:5:54"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"27130:5:54","nodeType":"YulIdentifier","src":"27130:5:54"},{"name":"length","nativeSrc":"27137:6:54","nodeType":"YulIdentifier","src":"27137:6:54"}],"functionName":{"name":"mstore","nativeSrc":"27123:6:54","nodeType":"YulIdentifier","src":"27123:6:54"},"nativeSrc":"27123:21:54","nodeType":"YulFunctionCall","src":"27123:21:54"},"nativeSrc":"27123:21:54","nodeType":"YulExpressionStatement","src":"27123:21:54"},{"body":{"nativeSrc":"27182:16:54","nodeType":"YulBlock","src":"27182:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27191:1:54","nodeType":"YulLiteral","src":"27191:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"27194:1:54","nodeType":"YulLiteral","src":"27194:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27184:6:54","nodeType":"YulIdentifier","src":"27184:6:54"},"nativeSrc":"27184:12:54","nodeType":"YulFunctionCall","src":"27184:12:54"},"nativeSrc":"27184:12:54","nodeType":"YulExpressionStatement","src":"27184:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"27163:3:54","nodeType":"YulIdentifier","src":"27163:3:54"},{"name":"length","nativeSrc":"27168:6:54","nodeType":"YulIdentifier","src":"27168:6:54"}],"functionName":{"name":"add","nativeSrc":"27159:3:54","nodeType":"YulIdentifier","src":"27159:3:54"},"nativeSrc":"27159:16:54","nodeType":"YulFunctionCall","src":"27159:16:54"},{"name":"end","nativeSrc":"27177:3:54","nodeType":"YulIdentifier","src":"27177:3:54"}],"functionName":{"name":"gt","nativeSrc":"27156:2:54","nodeType":"YulIdentifier","src":"27156:2:54"},"nativeSrc":"27156:25:54","nodeType":"YulFunctionCall","src":"27156:25:54"},"nativeSrc":"27153:45:54","nodeType":"YulIf","src":"27153:45:54"},{"expression":{"arguments":[{"name":"src","nativeSrc":"27242:3:54","nodeType":"YulIdentifier","src":"27242:3:54"},{"arguments":[{"name":"array","nativeSrc":"27251:5:54","nodeType":"YulIdentifier","src":"27251:5:54"},{"kind":"number","nativeSrc":"27258:4:54","nodeType":"YulLiteral","src":"27258:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27247:3:54","nodeType":"YulIdentifier","src":"27247:3:54"},"nativeSrc":"27247:16:54","nodeType":"YulFunctionCall","src":"27247:16:54"},{"name":"length","nativeSrc":"27265:6:54","nodeType":"YulIdentifier","src":"27265:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"27207:34:54","nodeType":"YulIdentifier","src":"27207:34:54"},"nativeSrc":"27207:65:54","nodeType":"YulFunctionCall","src":"27207:65:54"},"nativeSrc":"27207:65:54","nodeType":"YulExpressionStatement","src":"27207:65:54"}]},"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"26958:320:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"27012:3:54","nodeType":"YulTypedName","src":"27012:3:54","type":""},{"name":"length","nativeSrc":"27017:6:54","nodeType":"YulTypedName","src":"27017:6:54","type":""},{"name":"end","nativeSrc":"27025:3:54","nodeType":"YulTypedName","src":"27025:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"27033:5:54","nodeType":"YulTypedName","src":"27033:5:54","type":""}],"src":"26958:320:54"},{"body":{"nativeSrc":"27346:172:54","nodeType":"YulBlock","src":"27346:172:54","statements":[{"body":{"nativeSrc":"27395:16:54","nodeType":"YulBlock","src":"27395:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27404:1:54","nodeType":"YulLiteral","src":"27404:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"27407:1:54","nodeType":"YulLiteral","src":"27407:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27397:6:54","nodeType":"YulIdentifier","src":"27397:6:54"},"nativeSrc":"27397:12:54","nodeType":"YulFunctionCall","src":"27397:12:54"},"nativeSrc":"27397:12:54","nodeType":"YulExpressionStatement","src":"27397:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"27374:6:54","nodeType":"YulIdentifier","src":"27374:6:54"},{"kind":"number","nativeSrc":"27382:4:54","nodeType":"YulLiteral","src":"27382:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"27370:3:54","nodeType":"YulIdentifier","src":"27370:3:54"},"nativeSrc":"27370:17:54","nodeType":"YulFunctionCall","src":"27370:17:54"},{"name":"end","nativeSrc":"27389:3:54","nodeType":"YulIdentifier","src":"27389:3:54"}],"functionName":{"name":"slt","nativeSrc":"27366:3:54","nodeType":"YulIdentifier","src":"27366:3:54"},"nativeSrc":"27366:27:54","nodeType":"YulFunctionCall","src":"27366:27:54"}],"functionName":{"name":"iszero","nativeSrc":"27359:6:54","nodeType":"YulIdentifier","src":"27359:6:54"},"nativeSrc":"27359:35:54","nodeType":"YulFunctionCall","src":"27359:35:54"},"nativeSrc":"27356:55:54","nodeType":"YulIf","src":"27356:55:54"},{"nativeSrc":"27420:92:54","nodeType":"YulAssignment","src":"27420:92:54","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"27478:6:54","nodeType":"YulIdentifier","src":"27478:6:54"},{"kind":"number","nativeSrc":"27486:4:54","nodeType":"YulLiteral","src":"27486:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27474:3:54","nodeType":"YulIdentifier","src":"27474:3:54"},"nativeSrc":"27474:17:54","nodeType":"YulFunctionCall","src":"27474:17:54"},{"arguments":[{"name":"offset","nativeSrc":"27499:6:54","nodeType":"YulIdentifier","src":"27499:6:54"}],"functionName":{"name":"mload","nativeSrc":"27493:5:54","nodeType":"YulIdentifier","src":"27493:5:54"},"nativeSrc":"27493:13:54","nodeType":"YulFunctionCall","src":"27493:13:54"},{"name":"end","nativeSrc":"27508:3:54","nodeType":"YulIdentifier","src":"27508:3:54"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"27429:44:54","nodeType":"YulIdentifier","src":"27429:44:54"},"nativeSrc":"27429:83:54","nodeType":"YulFunctionCall","src":"27429:83:54"},"variableNames":[{"name":"array","nativeSrc":"27420:5:54","nodeType":"YulIdentifier","src":"27420:5:54"}]}]},"name":"abi_decode_bytes_fromMemory","nativeSrc":"27283:235:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"27320:6:54","nodeType":"YulTypedName","src":"27320:6:54","type":""},{"name":"end","nativeSrc":"27328:3:54","nodeType":"YulTypedName","src":"27328:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"27336:5:54","nodeType":"YulTypedName","src":"27336:5:54","type":""}],"src":"27283:235:54"},{"body":{"nativeSrc":"27613:245:54","nodeType":"YulBlock","src":"27613:245:54","statements":[{"body":{"nativeSrc":"27659:16:54","nodeType":"YulBlock","src":"27659:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27668:1:54","nodeType":"YulLiteral","src":"27668:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"27671:1:54","nodeType":"YulLiteral","src":"27671:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27661:6:54","nodeType":"YulIdentifier","src":"27661:6:54"},"nativeSrc":"27661:12:54","nodeType":"YulFunctionCall","src":"27661:12:54"},"nativeSrc":"27661:12:54","nodeType":"YulExpressionStatement","src":"27661:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27634:7:54","nodeType":"YulIdentifier","src":"27634:7:54"},{"name":"headStart","nativeSrc":"27643:9:54","nodeType":"YulIdentifier","src":"27643:9:54"}],"functionName":{"name":"sub","nativeSrc":"27630:3:54","nodeType":"YulIdentifier","src":"27630:3:54"},"nativeSrc":"27630:23:54","nodeType":"YulFunctionCall","src":"27630:23:54"},{"kind":"number","nativeSrc":"27655:2:54","nodeType":"YulLiteral","src":"27655:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27626:3:54","nodeType":"YulIdentifier","src":"27626:3:54"},"nativeSrc":"27626:32:54","nodeType":"YulFunctionCall","src":"27626:32:54"},"nativeSrc":"27623:52:54","nodeType":"YulIf","src":"27623:52:54"},{"nativeSrc":"27684:30:54","nodeType":"YulVariableDeclaration","src":"27684:30:54","value":{"arguments":[{"name":"headStart","nativeSrc":"27704:9:54","nodeType":"YulIdentifier","src":"27704:9:54"}],"functionName":{"name":"mload","nativeSrc":"27698:5:54","nodeType":"YulIdentifier","src":"27698:5:54"},"nativeSrc":"27698:16:54","nodeType":"YulFunctionCall","src":"27698:16:54"},"variables":[{"name":"offset","nativeSrc":"27688:6:54","nodeType":"YulTypedName","src":"27688:6:54","type":""}]},{"body":{"nativeSrc":"27757:16:54","nodeType":"YulBlock","src":"27757:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27766:1:54","nodeType":"YulLiteral","src":"27766:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"27769:1:54","nodeType":"YulLiteral","src":"27769:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"27759:6:54","nodeType":"YulIdentifier","src":"27759:6:54"},"nativeSrc":"27759:12:54","nodeType":"YulFunctionCall","src":"27759:12:54"},"nativeSrc":"27759:12:54","nodeType":"YulExpressionStatement","src":"27759:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27729:6:54","nodeType":"YulIdentifier","src":"27729:6:54"},{"kind":"number","nativeSrc":"27737:18:54","nodeType":"YulLiteral","src":"27737:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27726:2:54","nodeType":"YulIdentifier","src":"27726:2:54"},"nativeSrc":"27726:30:54","nodeType":"YulFunctionCall","src":"27726:30:54"},"nativeSrc":"27723:50:54","nodeType":"YulIf","src":"27723:50:54"},{"nativeSrc":"27782:70:54","nodeType":"YulAssignment","src":"27782:70:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27824:9:54","nodeType":"YulIdentifier","src":"27824:9:54"},{"name":"offset","nativeSrc":"27835:6:54","nodeType":"YulIdentifier","src":"27835:6:54"}],"functionName":{"name":"add","nativeSrc":"27820:3:54","nodeType":"YulIdentifier","src":"27820:3:54"},"nativeSrc":"27820:22:54","nodeType":"YulFunctionCall","src":"27820:22:54"},{"name":"dataEnd","nativeSrc":"27844:7:54","nodeType":"YulIdentifier","src":"27844:7:54"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"27792:27:54","nodeType":"YulIdentifier","src":"27792:27:54"},"nativeSrc":"27792:60:54","nodeType":"YulFunctionCall","src":"27792:60:54"},"variableNames":[{"name":"value0","nativeSrc":"27782:6:54","nodeType":"YulIdentifier","src":"27782:6:54"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"27523:335:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27579:9:54","nodeType":"YulTypedName","src":"27579:9:54","type":""},{"name":"dataEnd","nativeSrc":"27590:7:54","nodeType":"YulTypedName","src":"27590:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27602:6:54","nodeType":"YulTypedName","src":"27602:6:54","type":""}],"src":"27523:335:54"},{"body":{"nativeSrc":"28037:313:54","nodeType":"YulBlock","src":"28037:313:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28054:9:54","nodeType":"YulIdentifier","src":"28054:9:54"},{"kind":"number","nativeSrc":"28065:2:54","nodeType":"YulLiteral","src":"28065:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28047:6:54","nodeType":"YulIdentifier","src":"28047:6:54"},"nativeSrc":"28047:21:54","nodeType":"YulFunctionCall","src":"28047:21:54"},"nativeSrc":"28047:21:54","nodeType":"YulExpressionStatement","src":"28047:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28088:9:54","nodeType":"YulIdentifier","src":"28088:9:54"},{"kind":"number","nativeSrc":"28099:2:54","nodeType":"YulLiteral","src":"28099:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28084:3:54","nodeType":"YulIdentifier","src":"28084:3:54"},"nativeSrc":"28084:18:54","nodeType":"YulFunctionCall","src":"28084:18:54"},{"kind":"number","nativeSrc":"28104:2:54","nodeType":"YulLiteral","src":"28104:2:54","type":"","value":"83"}],"functionName":{"name":"mstore","nativeSrc":"28077:6:54","nodeType":"YulIdentifier","src":"28077:6:54"},"nativeSrc":"28077:30:54","nodeType":"YulFunctionCall","src":"28077:30:54"},"nativeSrc":"28077:30:54","nodeType":"YulExpressionStatement","src":"28077:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28127:9:54","nodeType":"YulIdentifier","src":"28127:9:54"},{"kind":"number","nativeSrc":"28138:2:54","nodeType":"YulLiteral","src":"28138:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28123:3:54","nodeType":"YulIdentifier","src":"28123:3:54"},"nativeSrc":"28123:18:54","nodeType":"YulFunctionCall","src":"28123:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a657865","kind":"string","nativeSrc":"28143:34:54","nodeType":"YulLiteral","src":"28143:34:54","type":"","value":"OmnichainGovernanceExecutor::exe"}],"functionName":{"name":"mstore","nativeSrc":"28116:6:54","nodeType":"YulIdentifier","src":"28116:6:54"},"nativeSrc":"28116:62:54","nodeType":"YulFunctionCall","src":"28116:62:54"},"nativeSrc":"28116:62:54","nodeType":"YulExpressionStatement","src":"28116:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28198:9:54","nodeType":"YulIdentifier","src":"28198:9:54"},{"kind":"number","nativeSrc":"28209:2:54","nodeType":"YulLiteral","src":"28209:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28194:3:54","nodeType":"YulIdentifier","src":"28194:3:54"},"nativeSrc":"28194:18:54","nodeType":"YulFunctionCall","src":"28194:18:54"},{"hexValue":"637574653a2070726f706f73616c2063616e206f6e6c79206265206578656375","kind":"string","nativeSrc":"28214:34:54","nodeType":"YulLiteral","src":"28214:34:54","type":"","value":"cute: proposal can only be execu"}],"functionName":{"name":"mstore","nativeSrc":"28187:6:54","nodeType":"YulIdentifier","src":"28187:6:54"},"nativeSrc":"28187:62:54","nodeType":"YulFunctionCall","src":"28187:62:54"},"nativeSrc":"28187:62:54","nodeType":"YulExpressionStatement","src":"28187:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28269:9:54","nodeType":"YulIdentifier","src":"28269:9:54"},{"kind":"number","nativeSrc":"28280:3:54","nodeType":"YulLiteral","src":"28280:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28265:3:54","nodeType":"YulIdentifier","src":"28265:3:54"},"nativeSrc":"28265:19:54","nodeType":"YulFunctionCall","src":"28265:19:54"},{"hexValue":"74656420696620697420697320717565756564","kind":"string","nativeSrc":"28286:21:54","nodeType":"YulLiteral","src":"28286:21:54","type":"","value":"ted if it is queued"}],"functionName":{"name":"mstore","nativeSrc":"28258:6:54","nodeType":"YulIdentifier","src":"28258:6:54"},"nativeSrc":"28258:50:54","nodeType":"YulFunctionCall","src":"28258:50:54"},"nativeSrc":"28258:50:54","nodeType":"YulExpressionStatement","src":"28258:50:54"},{"nativeSrc":"28317:27:54","nodeType":"YulAssignment","src":"28317:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"28329:9:54","nodeType":"YulIdentifier","src":"28329:9:54"},{"kind":"number","nativeSrc":"28340:3:54","nodeType":"YulLiteral","src":"28340:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"28325:3:54","nodeType":"YulIdentifier","src":"28325:3:54"},"nativeSrc":"28325:19:54","nodeType":"YulFunctionCall","src":"28325:19:54"},"variableNames":[{"name":"tail","nativeSrc":"28317:4:54","nodeType":"YulIdentifier","src":"28317:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27863:487:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28014:9:54","nodeType":"YulTypedName","src":"28014:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28028:4:54","nodeType":"YulTypedName","src":"28028:4:54","type":""}],"src":"27863:487:54"},{"body":{"nativeSrc":"28529:302:54","nodeType":"YulBlock","src":"28529:302:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28546:9:54","nodeType":"YulIdentifier","src":"28546:9:54"},{"kind":"number","nativeSrc":"28557:2:54","nodeType":"YulLiteral","src":"28557:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28539:6:54","nodeType":"YulIdentifier","src":"28539:6:54"},"nativeSrc":"28539:21:54","nodeType":"YulFunctionCall","src":"28539:21:54"},"nativeSrc":"28539:21:54","nodeType":"YulExpressionStatement","src":"28539:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28580:9:54","nodeType":"YulIdentifier","src":"28580:9:54"},{"kind":"number","nativeSrc":"28591:2:54","nodeType":"YulLiteral","src":"28591:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28576:3:54","nodeType":"YulIdentifier","src":"28576:3:54"},"nativeSrc":"28576:18:54","nodeType":"YulFunctionCall","src":"28576:18:54"},{"kind":"number","nativeSrc":"28596:2:54","nodeType":"YulLiteral","src":"28596:2:54","type":"","value":"72"}],"functionName":{"name":"mstore","nativeSrc":"28569:6:54","nodeType":"YulIdentifier","src":"28569:6:54"},"nativeSrc":"28569:30:54","nodeType":"YulFunctionCall","src":"28569:30:54"},"nativeSrc":"28569:30:54","nodeType":"YulExpressionStatement","src":"28569:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28619:9:54","nodeType":"YulIdentifier","src":"28619:9:54"},{"kind":"number","nativeSrc":"28630:2:54","nodeType":"YulLiteral","src":"28630:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28615:3:54","nodeType":"YulIdentifier","src":"28615:3:54"},"nativeSrc":"28615:18:54","nodeType":"YulFunctionCall","src":"28615:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f626c","kind":"string","nativeSrc":"28635:34:54","nodeType":"YulLiteral","src":"28635:34:54","type":"","value":"OmnichainGovernanceExecutor::_bl"}],"functionName":{"name":"mstore","nativeSrc":"28608:6:54","nodeType":"YulIdentifier","src":"28608:6:54"},"nativeSrc":"28608:62:54","nodeType":"YulFunctionCall","src":"28608:62:54"},"nativeSrc":"28608:62:54","nodeType":"YulExpressionStatement","src":"28608:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28690:9:54","nodeType":"YulIdentifier","src":"28690:9:54"},{"kind":"number","nativeSrc":"28701:2:54","nodeType":"YulLiteral","src":"28701:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28686:3:54","nodeType":"YulIdentifier","src":"28686:3:54"},"nativeSrc":"28686:18:54","nodeType":"YulFunctionCall","src":"28686:18:54"},{"hexValue":"6f636b696e674c7a526563656976653a20696e76616c696420736f7572636520","kind":"string","nativeSrc":"28706:34:54","nodeType":"YulLiteral","src":"28706:34:54","type":"","value":"ockingLzReceive: invalid source "}],"functionName":{"name":"mstore","nativeSrc":"28679:6:54","nodeType":"YulIdentifier","src":"28679:6:54"},"nativeSrc":"28679:62:54","nodeType":"YulFunctionCall","src":"28679:62:54"},"nativeSrc":"28679:62:54","nodeType":"YulExpressionStatement","src":"28679:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28761:9:54","nodeType":"YulIdentifier","src":"28761:9:54"},{"kind":"number","nativeSrc":"28772:3:54","nodeType":"YulLiteral","src":"28772:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28757:3:54","nodeType":"YulIdentifier","src":"28757:3:54"},"nativeSrc":"28757:19:54","nodeType":"YulFunctionCall","src":"28757:19:54"},{"hexValue":"636861696e206964","kind":"string","nativeSrc":"28778:10:54","nodeType":"YulLiteral","src":"28778:10:54","type":"","value":"chain id"}],"functionName":{"name":"mstore","nativeSrc":"28750:6:54","nodeType":"YulIdentifier","src":"28750:6:54"},"nativeSrc":"28750:39:54","nodeType":"YulFunctionCall","src":"28750:39:54"},"nativeSrc":"28750:39:54","nodeType":"YulExpressionStatement","src":"28750:39:54"},{"nativeSrc":"28798:27:54","nodeType":"YulAssignment","src":"28798:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"28810:9:54","nodeType":"YulIdentifier","src":"28810:9:54"},{"kind":"number","nativeSrc":"28821:3:54","nodeType":"YulLiteral","src":"28821:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"28806:3:54","nodeType":"YulIdentifier","src":"28806:3:54"},"nativeSrc":"28806:19:54","nodeType":"YulFunctionCall","src":"28806:19:54"},"variableNames":[{"name":"tail","nativeSrc":"28798:4:54","nodeType":"YulIdentifier","src":"28798:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28355:476:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28506:9:54","nodeType":"YulTypedName","src":"28506:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28520:4:54","nodeType":"YulTypedName","src":"28520:4:54","type":""}],"src":"28355:476:54"},{"body":{"nativeSrc":"29053:338:54","nodeType":"YulBlock","src":"29053:338:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29070:9:54","nodeType":"YulIdentifier","src":"29070:9:54"},{"arguments":[{"name":"value0","nativeSrc":"29085:6:54","nodeType":"YulIdentifier","src":"29085:6:54"},{"kind":"number","nativeSrc":"29093:6:54","nodeType":"YulLiteral","src":"29093:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"29081:3:54","nodeType":"YulIdentifier","src":"29081:3:54"},"nativeSrc":"29081:19:54","nodeType":"YulFunctionCall","src":"29081:19:54"}],"functionName":{"name":"mstore","nativeSrc":"29063:6:54","nodeType":"YulIdentifier","src":"29063:6:54"},"nativeSrc":"29063:38:54","nodeType":"YulFunctionCall","src":"29063:38:54"},"nativeSrc":"29063:38:54","nodeType":"YulExpressionStatement","src":"29063:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29121:9:54","nodeType":"YulIdentifier","src":"29121:9:54"},{"kind":"number","nativeSrc":"29132:2:54","nodeType":"YulLiteral","src":"29132:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29117:3:54","nodeType":"YulIdentifier","src":"29117:3:54"},"nativeSrc":"29117:18:54","nodeType":"YulFunctionCall","src":"29117:18:54"},{"kind":"number","nativeSrc":"29137:3:54","nodeType":"YulLiteral","src":"29137:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"29110:6:54","nodeType":"YulIdentifier","src":"29110:6:54"},"nativeSrc":"29110:31:54","nodeType":"YulFunctionCall","src":"29110:31:54"},"nativeSrc":"29110:31:54","nodeType":"YulExpressionStatement","src":"29110:31:54"},{"nativeSrc":"29150:59:54","nodeType":"YulVariableDeclaration","src":"29150:59:54","value":{"arguments":[{"name":"value1","nativeSrc":"29181:6:54","nodeType":"YulIdentifier","src":"29181:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"29193:9:54","nodeType":"YulIdentifier","src":"29193:9:54"},{"kind":"number","nativeSrc":"29204:3:54","nodeType":"YulLiteral","src":"29204:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29189:3:54","nodeType":"YulIdentifier","src":"29189:3:54"},"nativeSrc":"29189:19:54","nodeType":"YulFunctionCall","src":"29189:19:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"29164:16:54","nodeType":"YulIdentifier","src":"29164:16:54"},"nativeSrc":"29164:45:54","nodeType":"YulFunctionCall","src":"29164:45:54"},"variables":[{"name":"tail_1","nativeSrc":"29154:6:54","nodeType":"YulTypedName","src":"29154:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29229:9:54","nodeType":"YulIdentifier","src":"29229:9:54"},{"kind":"number","nativeSrc":"29240:2:54","nodeType":"YulLiteral","src":"29240:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29225:3:54","nodeType":"YulIdentifier","src":"29225:3:54"},"nativeSrc":"29225:18:54","nodeType":"YulFunctionCall","src":"29225:18:54"},{"arguments":[{"name":"value2","nativeSrc":"29249:6:54","nodeType":"YulIdentifier","src":"29249:6:54"},{"kind":"number","nativeSrc":"29257:18:54","nodeType":"YulLiteral","src":"29257:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"29245:3:54","nodeType":"YulIdentifier","src":"29245:3:54"},"nativeSrc":"29245:31:54","nodeType":"YulFunctionCall","src":"29245:31:54"}],"functionName":{"name":"mstore","nativeSrc":"29218:6:54","nodeType":"YulIdentifier","src":"29218:6:54"},"nativeSrc":"29218:59:54","nodeType":"YulFunctionCall","src":"29218:59:54"},"nativeSrc":"29218:59:54","nodeType":"YulExpressionStatement","src":"29218:59:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29297:9:54","nodeType":"YulIdentifier","src":"29297:9:54"},{"kind":"number","nativeSrc":"29308:2:54","nodeType":"YulLiteral","src":"29308:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29293:3:54","nodeType":"YulIdentifier","src":"29293:3:54"},"nativeSrc":"29293:18:54","nodeType":"YulFunctionCall","src":"29293:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"29317:6:54","nodeType":"YulIdentifier","src":"29317:6:54"},{"name":"headStart","nativeSrc":"29325:9:54","nodeType":"YulIdentifier","src":"29325:9:54"}],"functionName":{"name":"sub","nativeSrc":"29313:3:54","nodeType":"YulIdentifier","src":"29313:3:54"},"nativeSrc":"29313:22:54","nodeType":"YulFunctionCall","src":"29313:22:54"}],"functionName":{"name":"mstore","nativeSrc":"29286:6:54","nodeType":"YulIdentifier","src":"29286:6:54"},"nativeSrc":"29286:50:54","nodeType":"YulFunctionCall","src":"29286:50:54"},"nativeSrc":"29286:50:54","nodeType":"YulExpressionStatement","src":"29286:50:54"},{"nativeSrc":"29345:40:54","nodeType":"YulAssignment","src":"29345:40:54","value":{"arguments":[{"name":"value3","nativeSrc":"29370:6:54","nodeType":"YulIdentifier","src":"29370:6:54"},{"name":"tail_1","nativeSrc":"29378:6:54","nodeType":"YulIdentifier","src":"29378:6:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"29353:16:54","nodeType":"YulIdentifier","src":"29353:16:54"},"nativeSrc":"29353:32:54","nodeType":"YulFunctionCall","src":"29353:32:54"},"variableNames":[{"name":"tail","nativeSrc":"29345:4:54","nodeType":"YulIdentifier","src":"29345:4:54"}]}]},"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":"28836:555:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28998:9:54","nodeType":"YulTypedName","src":"28998:9:54","type":""},{"name":"value3","nativeSrc":"29009:6:54","nodeType":"YulTypedName","src":"29009:6:54","type":""},{"name":"value2","nativeSrc":"29017:6:54","nodeType":"YulTypedName","src":"29017:6:54","type":""},{"name":"value1","nativeSrc":"29025:6:54","nodeType":"YulTypedName","src":"29025:6:54","type":""},{"name":"value0","nativeSrc":"29033:6:54","nodeType":"YulTypedName","src":"29033:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29044:4:54","nodeType":"YulTypedName","src":"29044:4:54","type":""}],"src":"28836:555:54"},{"body":{"nativeSrc":"29533:150:54","nodeType":"YulBlock","src":"29533:150:54","statements":[{"nativeSrc":"29543:27:54","nodeType":"YulVariableDeclaration","src":"29543:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"29563:6:54","nodeType":"YulIdentifier","src":"29563:6:54"}],"functionName":{"name":"mload","nativeSrc":"29557:5:54","nodeType":"YulIdentifier","src":"29557:5:54"},"nativeSrc":"29557:13:54","nodeType":"YulFunctionCall","src":"29557:13:54"},"variables":[{"name":"length","nativeSrc":"29547:6:54","nodeType":"YulTypedName","src":"29547:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"29618:6:54","nodeType":"YulIdentifier","src":"29618:6:54"},{"kind":"number","nativeSrc":"29626:4:54","nodeType":"YulLiteral","src":"29626:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29614:3:54","nodeType":"YulIdentifier","src":"29614:3:54"},"nativeSrc":"29614:17:54","nodeType":"YulFunctionCall","src":"29614:17:54"},{"name":"pos","nativeSrc":"29633:3:54","nodeType":"YulIdentifier","src":"29633:3:54"},{"name":"length","nativeSrc":"29638:6:54","nodeType":"YulIdentifier","src":"29638:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"29579:34:54","nodeType":"YulIdentifier","src":"29579:34:54"},"nativeSrc":"29579:66:54","nodeType":"YulFunctionCall","src":"29579:66:54"},"nativeSrc":"29579:66:54","nodeType":"YulExpressionStatement","src":"29579:66:54"},{"nativeSrc":"29654:23:54","nodeType":"YulAssignment","src":"29654:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"29665:3:54","nodeType":"YulIdentifier","src":"29665:3:54"},{"name":"length","nativeSrc":"29670:6:54","nodeType":"YulIdentifier","src":"29670:6:54"}],"functionName":{"name":"add","nativeSrc":"29661:3:54","nodeType":"YulIdentifier","src":"29661:3:54"},"nativeSrc":"29661:16:54","nodeType":"YulFunctionCall","src":"29661:16:54"},"variableNames":[{"name":"end","nativeSrc":"29654:3:54","nodeType":"YulIdentifier","src":"29654:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"29396:287:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29509:3:54","nodeType":"YulTypedName","src":"29509:3:54","type":""},{"name":"value0","nativeSrc":"29514:6:54","nodeType":"YulTypedName","src":"29514:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"29525:3:54","nodeType":"YulTypedName","src":"29525:3:54","type":""}],"src":"29396:287:54"},{"body":{"nativeSrc":"29833:166:54","nodeType":"YulBlock","src":"29833:166:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29850:9:54","nodeType":"YulIdentifier","src":"29850:9:54"},{"arguments":[{"name":"value0","nativeSrc":"29865:6:54","nodeType":"YulIdentifier","src":"29865:6:54"},{"kind":"number","nativeSrc":"29873:18:54","nodeType":"YulLiteral","src":"29873:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"29861:3:54","nodeType":"YulIdentifier","src":"29861:3:54"},"nativeSrc":"29861:31:54","nodeType":"YulFunctionCall","src":"29861:31:54"}],"functionName":{"name":"mstore","nativeSrc":"29843:6:54","nodeType":"YulIdentifier","src":"29843:6:54"},"nativeSrc":"29843:50:54","nodeType":"YulFunctionCall","src":"29843:50:54"},"nativeSrc":"29843:50:54","nodeType":"YulExpressionStatement","src":"29843:50:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29913:9:54","nodeType":"YulIdentifier","src":"29913:9:54"},{"kind":"number","nativeSrc":"29924:2:54","nodeType":"YulLiteral","src":"29924:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29909:3:54","nodeType":"YulIdentifier","src":"29909:3:54"},"nativeSrc":"29909:18:54","nodeType":"YulFunctionCall","src":"29909:18:54"},{"kind":"number","nativeSrc":"29929:2:54","nodeType":"YulLiteral","src":"29929:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"29902:6:54","nodeType":"YulIdentifier","src":"29902:6:54"},"nativeSrc":"29902:30:54","nodeType":"YulFunctionCall","src":"29902:30:54"},"nativeSrc":"29902:30:54","nodeType":"YulExpressionStatement","src":"29902:30:54"},{"nativeSrc":"29941:52:54","nodeType":"YulAssignment","src":"29941:52:54","value":{"arguments":[{"name":"value1","nativeSrc":"29966:6:54","nodeType":"YulIdentifier","src":"29966:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"29978:9:54","nodeType":"YulIdentifier","src":"29978:9:54"},{"kind":"number","nativeSrc":"29989:2:54","nodeType":"YulLiteral","src":"29989:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29974:3:54","nodeType":"YulIdentifier","src":"29974:3:54"},"nativeSrc":"29974:18:54","nodeType":"YulFunctionCall","src":"29974:18:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"29949:16:54","nodeType":"YulIdentifier","src":"29949:16:54"},"nativeSrc":"29949:44:54","nodeType":"YulFunctionCall","src":"29949:44:54"},"variableNames":[{"name":"tail","nativeSrc":"29941:4:54","nodeType":"YulIdentifier","src":"29941:4:54"}]}]},"name":"abi_encode_tuple_t_uint64_t_bytes_memory_ptr__to_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"29688:311:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29794:9:54","nodeType":"YulTypedName","src":"29794:9:54","type":""},{"name":"value1","nativeSrc":"29805:6:54","nodeType":"YulTypedName","src":"29805:6:54","type":""},{"name":"value0","nativeSrc":"29813:6:54","nodeType":"YulTypedName","src":"29813:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29824:4:54","nodeType":"YulTypedName","src":"29824:4:54","type":""}],"src":"29688:311:54"},{"body":{"nativeSrc":"30178:182:54","nodeType":"YulBlock","src":"30178:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30195:9:54","nodeType":"YulIdentifier","src":"30195:9:54"},{"kind":"number","nativeSrc":"30206:2:54","nodeType":"YulLiteral","src":"30206:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30188:6:54","nodeType":"YulIdentifier","src":"30188:6:54"},"nativeSrc":"30188:21:54","nodeType":"YulFunctionCall","src":"30188:21:54"},"nativeSrc":"30188:21:54","nodeType":"YulExpressionStatement","src":"30188:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30229:9:54","nodeType":"YulIdentifier","src":"30229:9:54"},{"kind":"number","nativeSrc":"30240:2:54","nodeType":"YulLiteral","src":"30240:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30225:3:54","nodeType":"YulIdentifier","src":"30225:3:54"},"nativeSrc":"30225:18:54","nodeType":"YulFunctionCall","src":"30225:18:54"},{"kind":"number","nativeSrc":"30245:2:54","nodeType":"YulLiteral","src":"30245:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30218:6:54","nodeType":"YulIdentifier","src":"30218:6:54"},"nativeSrc":"30218:30:54","nodeType":"YulFunctionCall","src":"30218:30:54"},"nativeSrc":"30218:30:54","nodeType":"YulExpressionStatement","src":"30218:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30268:9:54","nodeType":"YulIdentifier","src":"30268:9:54"},{"kind":"number","nativeSrc":"30279:2:54","nodeType":"YulLiteral","src":"30279:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30264:3:54","nodeType":"YulIdentifier","src":"30264:3:54"},"nativeSrc":"30264:18:54","nodeType":"YulFunctionCall","src":"30264:18:54"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"30284:34:54","nodeType":"YulLiteral","src":"30284:34:54","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"30257:6:54","nodeType":"YulIdentifier","src":"30257:6:54"},"nativeSrc":"30257:62:54","nodeType":"YulFunctionCall","src":"30257:62:54"},"nativeSrc":"30257:62:54","nodeType":"YulExpressionStatement","src":"30257:62:54"},{"nativeSrc":"30328:26:54","nodeType":"YulAssignment","src":"30328:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"30340:9:54","nodeType":"YulIdentifier","src":"30340:9:54"},{"kind":"number","nativeSrc":"30351:2:54","nodeType":"YulLiteral","src":"30351:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30336:3:54","nodeType":"YulIdentifier","src":"30336:3:54"},"nativeSrc":"30336:18:54","nodeType":"YulFunctionCall","src":"30336:18:54"},"variableNames":[{"name":"tail","nativeSrc":"30328:4:54","nodeType":"YulIdentifier","src":"30328:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30004:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30155:9:54","nodeType":"YulTypedName","src":"30155:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30169:4:54","nodeType":"YulTypedName","src":"30169:4:54","type":""}],"src":"30004:356:54"},{"body":{"nativeSrc":"30472:289:54","nodeType":"YulBlock","src":"30472:289:54","statements":[{"body":{"nativeSrc":"30518:16:54","nodeType":"YulBlock","src":"30518:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30527:1:54","nodeType":"YulLiteral","src":"30527:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"30530:1:54","nodeType":"YulLiteral","src":"30530:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30520:6:54","nodeType":"YulIdentifier","src":"30520:6:54"},"nativeSrc":"30520:12:54","nodeType":"YulFunctionCall","src":"30520:12:54"},"nativeSrc":"30520:12:54","nodeType":"YulExpressionStatement","src":"30520:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"30493:7:54","nodeType":"YulIdentifier","src":"30493:7:54"},{"name":"headStart","nativeSrc":"30502:9:54","nodeType":"YulIdentifier","src":"30502:9:54"}],"functionName":{"name":"sub","nativeSrc":"30489:3:54","nodeType":"YulIdentifier","src":"30489:3:54"},"nativeSrc":"30489:23:54","nodeType":"YulFunctionCall","src":"30489:23:54"},{"kind":"number","nativeSrc":"30514:2:54","nodeType":"YulLiteral","src":"30514:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"30485:3:54","nodeType":"YulIdentifier","src":"30485:3:54"},"nativeSrc":"30485:32:54","nodeType":"YulFunctionCall","src":"30485:32:54"},"nativeSrc":"30482:52:54","nodeType":"YulIf","src":"30482:52:54"},{"nativeSrc":"30543:30:54","nodeType":"YulVariableDeclaration","src":"30543:30:54","value":{"arguments":[{"name":"headStart","nativeSrc":"30563:9:54","nodeType":"YulIdentifier","src":"30563:9:54"}],"functionName":{"name":"mload","nativeSrc":"30557:5:54","nodeType":"YulIdentifier","src":"30557:5:54"},"nativeSrc":"30557:16:54","nodeType":"YulFunctionCall","src":"30557:16:54"},"variables":[{"name":"offset","nativeSrc":"30547:6:54","nodeType":"YulTypedName","src":"30547:6:54","type":""}]},{"body":{"nativeSrc":"30616:16:54","nodeType":"YulBlock","src":"30616:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30625:1:54","nodeType":"YulLiteral","src":"30625:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"30628:1:54","nodeType":"YulLiteral","src":"30628:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30618:6:54","nodeType":"YulIdentifier","src":"30618:6:54"},"nativeSrc":"30618:12:54","nodeType":"YulFunctionCall","src":"30618:12:54"},"nativeSrc":"30618:12:54","nodeType":"YulExpressionStatement","src":"30618:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"30588:6:54","nodeType":"YulIdentifier","src":"30588:6:54"},{"kind":"number","nativeSrc":"30596:18:54","nodeType":"YulLiteral","src":"30596:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30585:2:54","nodeType":"YulIdentifier","src":"30585:2:54"},"nativeSrc":"30585:30:54","nodeType":"YulFunctionCall","src":"30585:30:54"},"nativeSrc":"30582:50:54","nodeType":"YulIf","src":"30582:50:54"},{"nativeSrc":"30641:70:54","nodeType":"YulAssignment","src":"30641:70:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30683:9:54","nodeType":"YulIdentifier","src":"30683:9:54"},{"name":"offset","nativeSrc":"30694:6:54","nodeType":"YulIdentifier","src":"30694:6:54"}],"functionName":{"name":"add","nativeSrc":"30679:3:54","nodeType":"YulIdentifier","src":"30679:3:54"},"nativeSrc":"30679:22:54","nodeType":"YulFunctionCall","src":"30679:22:54"},{"name":"dataEnd","nativeSrc":"30703:7:54","nodeType":"YulIdentifier","src":"30703:7:54"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"30651:27:54","nodeType":"YulIdentifier","src":"30651:27:54"},"nativeSrc":"30651:60:54","nodeType":"YulFunctionCall","src":"30651:60:54"},"variableNames":[{"name":"value0","nativeSrc":"30641:6:54","nodeType":"YulIdentifier","src":"30641:6:54"}]},{"nativeSrc":"30720:35:54","nodeType":"YulAssignment","src":"30720:35:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30740:9:54","nodeType":"YulIdentifier","src":"30740:9:54"},{"kind":"number","nativeSrc":"30751:2:54","nodeType":"YulLiteral","src":"30751:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30736:3:54","nodeType":"YulIdentifier","src":"30736:3:54"},"nativeSrc":"30736:18:54","nodeType":"YulFunctionCall","src":"30736:18:54"}],"functionName":{"name":"mload","nativeSrc":"30730:5:54","nodeType":"YulIdentifier","src":"30730:5:54"},"nativeSrc":"30730:25:54","nodeType":"YulFunctionCall","src":"30730:25:54"},"variableNames":[{"name":"value1","nativeSrc":"30720:6:54","nodeType":"YulIdentifier","src":"30720:6:54"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_uint256_fromMemory","nativeSrc":"30365:396:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30430:9:54","nodeType":"YulTypedName","src":"30430:9:54","type":""},{"name":"dataEnd","nativeSrc":"30441:7:54","nodeType":"YulTypedName","src":"30441:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"30453:6:54","nodeType":"YulTypedName","src":"30453:6:54","type":""},{"name":"value1","nativeSrc":"30461:6:54","nodeType":"YulTypedName","src":"30461:6:54","type":""}],"src":"30365:396:54"},{"body":{"nativeSrc":"30841:601:54","nodeType":"YulBlock","src":"30841:601:54","statements":[{"body":{"nativeSrc":"30890:16:54","nodeType":"YulBlock","src":"30890:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30899:1:54","nodeType":"YulLiteral","src":"30899:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"30902:1:54","nodeType":"YulLiteral","src":"30902:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30892:6:54","nodeType":"YulIdentifier","src":"30892:6:54"},"nativeSrc":"30892:12:54","nodeType":"YulFunctionCall","src":"30892:12:54"},"nativeSrc":"30892:12:54","nodeType":"YulExpressionStatement","src":"30892:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"30869:6:54","nodeType":"YulIdentifier","src":"30869:6:54"},{"kind":"number","nativeSrc":"30877:4:54","nodeType":"YulLiteral","src":"30877:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"30865:3:54","nodeType":"YulIdentifier","src":"30865:3:54"},"nativeSrc":"30865:17:54","nodeType":"YulFunctionCall","src":"30865:17:54"},{"name":"end","nativeSrc":"30884:3:54","nodeType":"YulIdentifier","src":"30884:3:54"}],"functionName":{"name":"slt","nativeSrc":"30861:3:54","nodeType":"YulIdentifier","src":"30861:3:54"},"nativeSrc":"30861:27:54","nodeType":"YulFunctionCall","src":"30861:27:54"}],"functionName":{"name":"iszero","nativeSrc":"30854:6:54","nodeType":"YulIdentifier","src":"30854:6:54"},"nativeSrc":"30854:35:54","nodeType":"YulFunctionCall","src":"30854:35:54"},"nativeSrc":"30851:55:54","nodeType":"YulIf","src":"30851:55:54"},{"nativeSrc":"30915:23:54","nodeType":"YulVariableDeclaration","src":"30915:23:54","value":{"arguments":[{"name":"offset","nativeSrc":"30931:6:54","nodeType":"YulIdentifier","src":"30931:6:54"}],"functionName":{"name":"mload","nativeSrc":"30925:5:54","nodeType":"YulIdentifier","src":"30925:5:54"},"nativeSrc":"30925:13:54","nodeType":"YulFunctionCall","src":"30925:13:54"},"variables":[{"name":"_1","nativeSrc":"30919:2:54","nodeType":"YulTypedName","src":"30919:2:54","type":""}]},{"nativeSrc":"30947:14:54","nodeType":"YulVariableDeclaration","src":"30947:14:54","value":{"kind":"number","nativeSrc":"30957:4:54","nodeType":"YulLiteral","src":"30957:4:54","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"30951:2:54","nodeType":"YulTypedName","src":"30951:2:54","type":""}]},{"nativeSrc":"30970:82:54","nodeType":"YulVariableDeclaration","src":"30970:82:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"31048:2:54","nodeType":"YulIdentifier","src":"31048:2:54"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"30997:50:54","nodeType":"YulIdentifier","src":"30997:50:54"},"nativeSrc":"30997:54:54","nodeType":"YulFunctionCall","src":"30997:54:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"30981:15:54","nodeType":"YulIdentifier","src":"30981:15:54"},"nativeSrc":"30981:71:54","nodeType":"YulFunctionCall","src":"30981:71:54"},"variables":[{"name":"dst","nativeSrc":"30974:3:54","nodeType":"YulTypedName","src":"30974:3:54","type":""}]},{"nativeSrc":"31061:16:54","nodeType":"YulVariableDeclaration","src":"31061:16:54","value":{"name":"dst","nativeSrc":"31074:3:54","nodeType":"YulIdentifier","src":"31074:3:54"},"variables":[{"name":"dst_1","nativeSrc":"31065:5:54","nodeType":"YulTypedName","src":"31065:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"31093:3:54","nodeType":"YulIdentifier","src":"31093:3:54"},{"name":"_1","nativeSrc":"31098:2:54","nodeType":"YulIdentifier","src":"31098:2:54"}],"functionName":{"name":"mstore","nativeSrc":"31086:6:54","nodeType":"YulIdentifier","src":"31086:6:54"},"nativeSrc":"31086:15:54","nodeType":"YulFunctionCall","src":"31086:15:54"},"nativeSrc":"31086:15:54","nodeType":"YulExpressionStatement","src":"31086:15:54"},{"nativeSrc":"31110:21:54","nodeType":"YulAssignment","src":"31110:21:54","value":{"arguments":[{"name":"dst","nativeSrc":"31121:3:54","nodeType":"YulIdentifier","src":"31121:3:54"},{"kind":"number","nativeSrc":"31126:4:54","nodeType":"YulLiteral","src":"31126:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31117:3:54","nodeType":"YulIdentifier","src":"31117:3:54"},"nativeSrc":"31117:14:54","nodeType":"YulFunctionCall","src":"31117:14:54"},"variableNames":[{"name":"dst","nativeSrc":"31110:3:54","nodeType":"YulIdentifier","src":"31110:3:54"}]},{"nativeSrc":"31140:48:54","nodeType":"YulVariableDeclaration","src":"31140:48:54","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31162:6:54","nodeType":"YulIdentifier","src":"31162:6:54"},{"arguments":[{"kind":"number","nativeSrc":"31174:1:54","nodeType":"YulLiteral","src":"31174:1:54","type":"","value":"5"},{"name":"_1","nativeSrc":"31177:2:54","nodeType":"YulIdentifier","src":"31177:2:54"}],"functionName":{"name":"shl","nativeSrc":"31170:3:54","nodeType":"YulIdentifier","src":"31170:3:54"},"nativeSrc":"31170:10:54","nodeType":"YulFunctionCall","src":"31170:10:54"}],"functionName":{"name":"add","nativeSrc":"31158:3:54","nodeType":"YulIdentifier","src":"31158:3:54"},"nativeSrc":"31158:23:54","nodeType":"YulFunctionCall","src":"31158:23:54"},{"kind":"number","nativeSrc":"31183:4:54","nodeType":"YulLiteral","src":"31183:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31154:3:54","nodeType":"YulIdentifier","src":"31154:3:54"},"nativeSrc":"31154:34:54","nodeType":"YulFunctionCall","src":"31154:34:54"},"variables":[{"name":"srcEnd","nativeSrc":"31144:6:54","nodeType":"YulTypedName","src":"31144:6:54","type":""}]},{"body":{"nativeSrc":"31216:16:54","nodeType":"YulBlock","src":"31216:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31225:1:54","nodeType":"YulLiteral","src":"31225:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"31228:1:54","nodeType":"YulLiteral","src":"31228:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31218:6:54","nodeType":"YulIdentifier","src":"31218:6:54"},"nativeSrc":"31218:12:54","nodeType":"YulFunctionCall","src":"31218:12:54"},"nativeSrc":"31218:12:54","nodeType":"YulExpressionStatement","src":"31218:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"31203:6:54","nodeType":"YulIdentifier","src":"31203:6:54"},{"name":"end","nativeSrc":"31211:3:54","nodeType":"YulIdentifier","src":"31211:3:54"}],"functionName":{"name":"gt","nativeSrc":"31200:2:54","nodeType":"YulIdentifier","src":"31200:2:54"},"nativeSrc":"31200:15:54","nodeType":"YulFunctionCall","src":"31200:15:54"},"nativeSrc":"31197:35:54","nodeType":"YulIf","src":"31197:35:54"},{"nativeSrc":"31241:28:54","nodeType":"YulVariableDeclaration","src":"31241:28:54","value":{"arguments":[{"name":"offset","nativeSrc":"31256:6:54","nodeType":"YulIdentifier","src":"31256:6:54"},{"kind":"number","nativeSrc":"31264:4:54","nodeType":"YulLiteral","src":"31264:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31252:3:54","nodeType":"YulIdentifier","src":"31252:3:54"},"nativeSrc":"31252:17:54","nodeType":"YulFunctionCall","src":"31252:17:54"},"variables":[{"name":"src","nativeSrc":"31245:3:54","nodeType":"YulTypedName","src":"31245:3:54","type":""}]},{"body":{"nativeSrc":"31334:79:54","nodeType":"YulBlock","src":"31334:79:54","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"31355:3:54","nodeType":"YulIdentifier","src":"31355:3:54"},{"arguments":[{"name":"src","nativeSrc":"31366:3:54","nodeType":"YulIdentifier","src":"31366:3:54"}],"functionName":{"name":"mload","nativeSrc":"31360:5:54","nodeType":"YulIdentifier","src":"31360:5:54"},"nativeSrc":"31360:10:54","nodeType":"YulFunctionCall","src":"31360:10:54"}],"functionName":{"name":"mstore","nativeSrc":"31348:6:54","nodeType":"YulIdentifier","src":"31348:6:54"},"nativeSrc":"31348:23:54","nodeType":"YulFunctionCall","src":"31348:23:54"},"nativeSrc":"31348:23:54","nodeType":"YulExpressionStatement","src":"31348:23:54"},{"nativeSrc":"31384:19:54","nodeType":"YulAssignment","src":"31384:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"31395:3:54","nodeType":"YulIdentifier","src":"31395:3:54"},{"name":"_2","nativeSrc":"31400:2:54","nodeType":"YulIdentifier","src":"31400:2:54"}],"functionName":{"name":"add","nativeSrc":"31391:3:54","nodeType":"YulIdentifier","src":"31391:3:54"},"nativeSrc":"31391:12:54","nodeType":"YulFunctionCall","src":"31391:12:54"},"variableNames":[{"name":"dst","nativeSrc":"31384:3:54","nodeType":"YulIdentifier","src":"31384:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"31289:3:54","nodeType":"YulIdentifier","src":"31289:3:54"},{"name":"srcEnd","nativeSrc":"31294:6:54","nodeType":"YulIdentifier","src":"31294:6:54"}],"functionName":{"name":"lt","nativeSrc":"31286:2:54","nodeType":"YulIdentifier","src":"31286:2:54"},"nativeSrc":"31286:15:54","nodeType":"YulFunctionCall","src":"31286:15:54"},"nativeSrc":"31278:135:54","nodeType":"YulForLoop","post":{"nativeSrc":"31302:23:54","nodeType":"YulBlock","src":"31302:23:54","statements":[{"nativeSrc":"31304:19:54","nodeType":"YulAssignment","src":"31304:19:54","value":{"arguments":[{"name":"src","nativeSrc":"31315:3:54","nodeType":"YulIdentifier","src":"31315:3:54"},{"name":"_2","nativeSrc":"31320:2:54","nodeType":"YulIdentifier","src":"31320:2:54"}],"functionName":{"name":"add","nativeSrc":"31311:3:54","nodeType":"YulIdentifier","src":"31311:3:54"},"nativeSrc":"31311:12:54","nodeType":"YulFunctionCall","src":"31311:12:54"},"variableNames":[{"name":"src","nativeSrc":"31304:3:54","nodeType":"YulIdentifier","src":"31304:3:54"}]}]},"pre":{"nativeSrc":"31282:3:54","nodeType":"YulBlock","src":"31282:3:54","statements":[]},"src":"31278:135:54"},{"nativeSrc":"31422:14:54","nodeType":"YulAssignment","src":"31422:14:54","value":{"name":"dst_1","nativeSrc":"31431:5:54","nodeType":"YulIdentifier","src":"31431:5:54"},"variableNames":[{"name":"array","nativeSrc":"31422:5:54","nodeType":"YulIdentifier","src":"31422:5:54"}]}]},"name":"abi_decode_array_uint256_dyn_fromMemory","nativeSrc":"30766:676:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"30815:6:54","nodeType":"YulTypedName","src":"30815:6:54","type":""},{"name":"end","nativeSrc":"30823:3:54","nodeType":"YulTypedName","src":"30823:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"30831:5:54","nodeType":"YulTypedName","src":"30831:5:54","type":""}],"src":"30766:676:54"},{"body":{"nativeSrc":"31521:1026:54","nodeType":"YulBlock","src":"31521:1026:54","statements":[{"body":{"nativeSrc":"31570:16:54","nodeType":"YulBlock","src":"31570:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31579:1:54","nodeType":"YulLiteral","src":"31579:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"31582:1:54","nodeType":"YulLiteral","src":"31582:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31572:6:54","nodeType":"YulIdentifier","src":"31572:6:54"},"nativeSrc":"31572:12:54","nodeType":"YulFunctionCall","src":"31572:12:54"},"nativeSrc":"31572:12:54","nodeType":"YulExpressionStatement","src":"31572:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31549:6:54","nodeType":"YulIdentifier","src":"31549:6:54"},{"kind":"number","nativeSrc":"31557:4:54","nodeType":"YulLiteral","src":"31557:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"31545:3:54","nodeType":"YulIdentifier","src":"31545:3:54"},"nativeSrc":"31545:17:54","nodeType":"YulFunctionCall","src":"31545:17:54"},{"name":"end","nativeSrc":"31564:3:54","nodeType":"YulIdentifier","src":"31564:3:54"}],"functionName":{"name":"slt","nativeSrc":"31541:3:54","nodeType":"YulIdentifier","src":"31541:3:54"},"nativeSrc":"31541:27:54","nodeType":"YulFunctionCall","src":"31541:27:54"}],"functionName":{"name":"iszero","nativeSrc":"31534:6:54","nodeType":"YulIdentifier","src":"31534:6:54"},"nativeSrc":"31534:35:54","nodeType":"YulFunctionCall","src":"31534:35:54"},"nativeSrc":"31531:55:54","nodeType":"YulIf","src":"31531:55:54"},{"nativeSrc":"31595:23:54","nodeType":"YulVariableDeclaration","src":"31595:23:54","value":{"arguments":[{"name":"offset","nativeSrc":"31611:6:54","nodeType":"YulIdentifier","src":"31611:6:54"}],"functionName":{"name":"mload","nativeSrc":"31605:5:54","nodeType":"YulIdentifier","src":"31605:5:54"},"nativeSrc":"31605:13:54","nodeType":"YulFunctionCall","src":"31605:13:54"},"variables":[{"name":"_1","nativeSrc":"31599:2:54","nodeType":"YulTypedName","src":"31599:2:54","type":""}]},{"nativeSrc":"31627:14:54","nodeType":"YulVariableDeclaration","src":"31627:14:54","value":{"kind":"number","nativeSrc":"31637:4:54","nodeType":"YulLiteral","src":"31637:4:54","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"31631:2:54","nodeType":"YulTypedName","src":"31631:2:54","type":""}]},{"nativeSrc":"31650:82:54","nodeType":"YulVariableDeclaration","src":"31650:82:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"31728:2:54","nodeType":"YulIdentifier","src":"31728:2:54"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"31677:50:54","nodeType":"YulIdentifier","src":"31677:50:54"},"nativeSrc":"31677:54:54","nodeType":"YulFunctionCall","src":"31677:54:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"31661:15:54","nodeType":"YulIdentifier","src":"31661:15:54"},"nativeSrc":"31661:71:54","nodeType":"YulFunctionCall","src":"31661:71:54"},"variables":[{"name":"dst","nativeSrc":"31654:3:54","nodeType":"YulTypedName","src":"31654:3:54","type":""}]},{"nativeSrc":"31741:16:54","nodeType":"YulVariableDeclaration","src":"31741:16:54","value":{"name":"dst","nativeSrc":"31754:3:54","nodeType":"YulIdentifier","src":"31754:3:54"},"variables":[{"name":"dst_1","nativeSrc":"31745:5:54","nodeType":"YulTypedName","src":"31745:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"31773:3:54","nodeType":"YulIdentifier","src":"31773:3:54"},{"name":"_1","nativeSrc":"31778:2:54","nodeType":"YulIdentifier","src":"31778:2:54"}],"functionName":{"name":"mstore","nativeSrc":"31766:6:54","nodeType":"YulIdentifier","src":"31766:6:54"},"nativeSrc":"31766:15:54","nodeType":"YulFunctionCall","src":"31766:15:54"},"nativeSrc":"31766:15:54","nodeType":"YulExpressionStatement","src":"31766:15:54"},{"nativeSrc":"31790:19:54","nodeType":"YulAssignment","src":"31790:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"31801:3:54","nodeType":"YulIdentifier","src":"31801:3:54"},{"name":"_2","nativeSrc":"31806:2:54","nodeType":"YulIdentifier","src":"31806:2:54"}],"functionName":{"name":"add","nativeSrc":"31797:3:54","nodeType":"YulIdentifier","src":"31797:3:54"},"nativeSrc":"31797:12:54","nodeType":"YulFunctionCall","src":"31797:12:54"},"variableNames":[{"name":"dst","nativeSrc":"31790:3:54","nodeType":"YulIdentifier","src":"31790:3:54"}]},{"nativeSrc":"31818:46:54","nodeType":"YulVariableDeclaration","src":"31818:46:54","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31840:6:54","nodeType":"YulIdentifier","src":"31840:6:54"},{"arguments":[{"kind":"number","nativeSrc":"31852:1:54","nodeType":"YulLiteral","src":"31852:1:54","type":"","value":"5"},{"name":"_1","nativeSrc":"31855:2:54","nodeType":"YulIdentifier","src":"31855:2:54"}],"functionName":{"name":"shl","nativeSrc":"31848:3:54","nodeType":"YulIdentifier","src":"31848:3:54"},"nativeSrc":"31848:10:54","nodeType":"YulFunctionCall","src":"31848:10:54"}],"functionName":{"name":"add","nativeSrc":"31836:3:54","nodeType":"YulIdentifier","src":"31836:3:54"},"nativeSrc":"31836:23:54","nodeType":"YulFunctionCall","src":"31836:23:54"},{"name":"_2","nativeSrc":"31861:2:54","nodeType":"YulIdentifier","src":"31861:2:54"}],"functionName":{"name":"add","nativeSrc":"31832:3:54","nodeType":"YulIdentifier","src":"31832:3:54"},"nativeSrc":"31832:32:54","nodeType":"YulFunctionCall","src":"31832:32:54"},"variables":[{"name":"srcEnd","nativeSrc":"31822:6:54","nodeType":"YulTypedName","src":"31822:6:54","type":""}]},{"body":{"nativeSrc":"31892:16:54","nodeType":"YulBlock","src":"31892:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31901:1:54","nodeType":"YulLiteral","src":"31901:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"31904:1:54","nodeType":"YulLiteral","src":"31904:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31894:6:54","nodeType":"YulIdentifier","src":"31894:6:54"},"nativeSrc":"31894:12:54","nodeType":"YulFunctionCall","src":"31894:12:54"},"nativeSrc":"31894:12:54","nodeType":"YulExpressionStatement","src":"31894:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"31879:6:54","nodeType":"YulIdentifier","src":"31879:6:54"},{"name":"end","nativeSrc":"31887:3:54","nodeType":"YulIdentifier","src":"31887:3:54"}],"functionName":{"name":"gt","nativeSrc":"31876:2:54","nodeType":"YulIdentifier","src":"31876:2:54"},"nativeSrc":"31876:15:54","nodeType":"YulFunctionCall","src":"31876:15:54"},"nativeSrc":"31873:35:54","nodeType":"YulIf","src":"31873:35:54"},{"nativeSrc":"31917:26:54","nodeType":"YulVariableDeclaration","src":"31917:26:54","value":{"arguments":[{"name":"offset","nativeSrc":"31932:6:54","nodeType":"YulIdentifier","src":"31932:6:54"},{"name":"_2","nativeSrc":"31940:2:54","nodeType":"YulIdentifier","src":"31940:2:54"}],"functionName":{"name":"add","nativeSrc":"31928:3:54","nodeType":"YulIdentifier","src":"31928:3:54"},"nativeSrc":"31928:15:54","nodeType":"YulFunctionCall","src":"31928:15:54"},"variables":[{"name":"src","nativeSrc":"31921:3:54","nodeType":"YulTypedName","src":"31921:3:54","type":""}]},{"body":{"nativeSrc":"32008:510:54","nodeType":"YulBlock","src":"32008:510:54","statements":[{"nativeSrc":"32022:29:54","nodeType":"YulVariableDeclaration","src":"32022:29:54","value":{"arguments":[{"name":"src","nativeSrc":"32047:3:54","nodeType":"YulIdentifier","src":"32047:3:54"}],"functionName":{"name":"mload","nativeSrc":"32041:5:54","nodeType":"YulIdentifier","src":"32041:5:54"},"nativeSrc":"32041:10:54","nodeType":"YulFunctionCall","src":"32041:10:54"},"variables":[{"name":"innerOffset","nativeSrc":"32026:11:54","nodeType":"YulTypedName","src":"32026:11:54","type":""}]},{"body":{"nativeSrc":"32115:74:54","nodeType":"YulBlock","src":"32115:74:54","statements":[{"nativeSrc":"32133:11:54","nodeType":"YulVariableDeclaration","src":"32133:11:54","value":{"kind":"number","nativeSrc":"32143:1:54","nodeType":"YulLiteral","src":"32143:1:54","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"32137:2:54","nodeType":"YulTypedName","src":"32137:2:54","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"32168:2:54","nodeType":"YulIdentifier","src":"32168:2:54"},{"name":"_3","nativeSrc":"32172:2:54","nodeType":"YulIdentifier","src":"32172:2:54"}],"functionName":{"name":"revert","nativeSrc":"32161:6:54","nodeType":"YulIdentifier","src":"32161:6:54"},"nativeSrc":"32161:14:54","nodeType":"YulFunctionCall","src":"32161:14:54"},"nativeSrc":"32161:14:54","nodeType":"YulExpressionStatement","src":"32161:14:54"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"32070:11:54","nodeType":"YulIdentifier","src":"32070:11:54"},{"kind":"number","nativeSrc":"32083:18:54","nodeType":"YulLiteral","src":"32083:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"32067:2:54","nodeType":"YulIdentifier","src":"32067:2:54"},"nativeSrc":"32067:35:54","nodeType":"YulFunctionCall","src":"32067:35:54"},"nativeSrc":"32064:125:54","nodeType":"YulIf","src":"32064:125:54"},{"nativeSrc":"32202:34:54","nodeType":"YulVariableDeclaration","src":"32202:34:54","value":{"arguments":[{"name":"offset","nativeSrc":"32216:6:54","nodeType":"YulIdentifier","src":"32216:6:54"},{"name":"innerOffset","nativeSrc":"32224:11:54","nodeType":"YulIdentifier","src":"32224:11:54"}],"functionName":{"name":"add","nativeSrc":"32212:3:54","nodeType":"YulIdentifier","src":"32212:3:54"},"nativeSrc":"32212:24:54","nodeType":"YulFunctionCall","src":"32212:24:54"},"variables":[{"name":"_4","nativeSrc":"32206:2:54","nodeType":"YulTypedName","src":"32206:2:54","type":""}]},{"body":{"nativeSrc":"32294:74:54","nodeType":"YulBlock","src":"32294:74:54","statements":[{"nativeSrc":"32312:11:54","nodeType":"YulVariableDeclaration","src":"32312:11:54","value":{"kind":"number","nativeSrc":"32322:1:54","nodeType":"YulLiteral","src":"32322:1:54","type":"","value":"0"},"variables":[{"name":"_5","nativeSrc":"32316:2:54","nodeType":"YulTypedName","src":"32316:2:54","type":""}]},{"expression":{"arguments":[{"name":"_5","nativeSrc":"32347:2:54","nodeType":"YulIdentifier","src":"32347:2:54"},{"name":"_5","nativeSrc":"32351:2:54","nodeType":"YulIdentifier","src":"32351:2:54"}],"functionName":{"name":"revert","nativeSrc":"32340:6:54","nodeType":"YulIdentifier","src":"32340:6:54"},"nativeSrc":"32340:14:54","nodeType":"YulFunctionCall","src":"32340:14:54"},"nativeSrc":"32340:14:54","nodeType":"YulExpressionStatement","src":"32340:14:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32267:2:54","nodeType":"YulIdentifier","src":"32267:2:54"},{"kind":"number","nativeSrc":"32271:2:54","nodeType":"YulLiteral","src":"32271:2:54","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"32263:3:54","nodeType":"YulIdentifier","src":"32263:3:54"},"nativeSrc":"32263:11:54","nodeType":"YulFunctionCall","src":"32263:11:54"},{"name":"end","nativeSrc":"32276:3:54","nodeType":"YulIdentifier","src":"32276:3:54"}],"functionName":{"name":"slt","nativeSrc":"32259:3:54","nodeType":"YulIdentifier","src":"32259:3:54"},"nativeSrc":"32259:21:54","nodeType":"YulFunctionCall","src":"32259:21:54"}],"functionName":{"name":"iszero","nativeSrc":"32252:6:54","nodeType":"YulIdentifier","src":"32252:6:54"},"nativeSrc":"32252:29:54","nodeType":"YulFunctionCall","src":"32252:29:54"},"nativeSrc":"32249:119:54","nodeType":"YulIf","src":"32249:119:54"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32388:3:54","nodeType":"YulIdentifier","src":"32388:3:54"},{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32442:2:54","nodeType":"YulIdentifier","src":"32442:2:54"},{"kind":"number","nativeSrc":"32446:2:54","nodeType":"YulLiteral","src":"32446:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32438:3:54","nodeType":"YulIdentifier","src":"32438:3:54"},"nativeSrc":"32438:11:54","nodeType":"YulFunctionCall","src":"32438:11:54"},{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32461:2:54","nodeType":"YulIdentifier","src":"32461:2:54"},{"name":"_2","nativeSrc":"32465:2:54","nodeType":"YulIdentifier","src":"32465:2:54"}],"functionName":{"name":"add","nativeSrc":"32457:3:54","nodeType":"YulIdentifier","src":"32457:3:54"},"nativeSrc":"32457:11:54","nodeType":"YulFunctionCall","src":"32457:11:54"}],"functionName":{"name":"mload","nativeSrc":"32451:5:54","nodeType":"YulIdentifier","src":"32451:5:54"},"nativeSrc":"32451:18:54","nodeType":"YulFunctionCall","src":"32451:18:54"},{"name":"end","nativeSrc":"32471:3:54","nodeType":"YulIdentifier","src":"32471:3:54"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"32393:44:54","nodeType":"YulIdentifier","src":"32393:44:54"},"nativeSrc":"32393:82:54","nodeType":"YulFunctionCall","src":"32393:82:54"}],"functionName":{"name":"mstore","nativeSrc":"32381:6:54","nodeType":"YulIdentifier","src":"32381:6:54"},"nativeSrc":"32381:95:54","nodeType":"YulFunctionCall","src":"32381:95:54"},"nativeSrc":"32381:95:54","nodeType":"YulExpressionStatement","src":"32381:95:54"},{"nativeSrc":"32489:19:54","nodeType":"YulAssignment","src":"32489:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"32500:3:54","nodeType":"YulIdentifier","src":"32500:3:54"},{"name":"_2","nativeSrc":"32505:2:54","nodeType":"YulIdentifier","src":"32505:2:54"}],"functionName":{"name":"add","nativeSrc":"32496:3:54","nodeType":"YulIdentifier","src":"32496:3:54"},"nativeSrc":"32496:12:54","nodeType":"YulFunctionCall","src":"32496:12:54"},"variableNames":[{"name":"dst","nativeSrc":"32489:3:54","nodeType":"YulIdentifier","src":"32489:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"31963:3:54","nodeType":"YulIdentifier","src":"31963:3:54"},{"name":"srcEnd","nativeSrc":"31968:6:54","nodeType":"YulIdentifier","src":"31968:6:54"}],"functionName":{"name":"lt","nativeSrc":"31960:2:54","nodeType":"YulIdentifier","src":"31960:2:54"},"nativeSrc":"31960:15:54","nodeType":"YulFunctionCall","src":"31960:15:54"},"nativeSrc":"31952:566:54","nodeType":"YulForLoop","post":{"nativeSrc":"31976:23:54","nodeType":"YulBlock","src":"31976:23:54","statements":[{"nativeSrc":"31978:19:54","nodeType":"YulAssignment","src":"31978:19:54","value":{"arguments":[{"name":"src","nativeSrc":"31989:3:54","nodeType":"YulIdentifier","src":"31989:3:54"},{"name":"_2","nativeSrc":"31994:2:54","nodeType":"YulIdentifier","src":"31994:2:54"}],"functionName":{"name":"add","nativeSrc":"31985:3:54","nodeType":"YulIdentifier","src":"31985:3:54"},"nativeSrc":"31985:12:54","nodeType":"YulFunctionCall","src":"31985:12:54"},"variableNames":[{"name":"src","nativeSrc":"31978:3:54","nodeType":"YulIdentifier","src":"31978:3:54"}]}]},"pre":{"nativeSrc":"31956:3:54","nodeType":"YulBlock","src":"31956:3:54","statements":[]},"src":"31952:566:54"},{"nativeSrc":"32527:14:54","nodeType":"YulAssignment","src":"32527:14:54","value":{"name":"dst_1","nativeSrc":"32536:5:54","nodeType":"YulIdentifier","src":"32536:5:54"},"variableNames":[{"name":"array","nativeSrc":"32527:5:54","nodeType":"YulIdentifier","src":"32527:5:54"}]}]},"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"31447:1100:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31495:6:54","nodeType":"YulTypedName","src":"31495:6:54","type":""},{"name":"end","nativeSrc":"31503:3:54","nodeType":"YulTypedName","src":"31503:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"31511:5:54","nodeType":"YulTypedName","src":"31511:5:54","type":""}],"src":"31447:1100:54"},{"body":{"nativeSrc":"32625:832:54","nodeType":"YulBlock","src":"32625:832:54","statements":[{"body":{"nativeSrc":"32674:16:54","nodeType":"YulBlock","src":"32674:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32683:1:54","nodeType":"YulLiteral","src":"32683:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"32686:1:54","nodeType":"YulLiteral","src":"32686:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32676:6:54","nodeType":"YulIdentifier","src":"32676:6:54"},"nativeSrc":"32676:12:54","nodeType":"YulFunctionCall","src":"32676:12:54"},"nativeSrc":"32676:12:54","nodeType":"YulExpressionStatement","src":"32676:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32653:6:54","nodeType":"YulIdentifier","src":"32653:6:54"},{"kind":"number","nativeSrc":"32661:4:54","nodeType":"YulLiteral","src":"32661:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"32649:3:54","nodeType":"YulIdentifier","src":"32649:3:54"},"nativeSrc":"32649:17:54","nodeType":"YulFunctionCall","src":"32649:17:54"},{"name":"end","nativeSrc":"32668:3:54","nodeType":"YulIdentifier","src":"32668:3:54"}],"functionName":{"name":"slt","nativeSrc":"32645:3:54","nodeType":"YulIdentifier","src":"32645:3:54"},"nativeSrc":"32645:27:54","nodeType":"YulFunctionCall","src":"32645:27:54"}],"functionName":{"name":"iszero","nativeSrc":"32638:6:54","nodeType":"YulIdentifier","src":"32638:6:54"},"nativeSrc":"32638:35:54","nodeType":"YulFunctionCall","src":"32638:35:54"},"nativeSrc":"32635:55:54","nodeType":"YulIf","src":"32635:55:54"},{"nativeSrc":"32699:23:54","nodeType":"YulVariableDeclaration","src":"32699:23:54","value":{"arguments":[{"name":"offset","nativeSrc":"32715:6:54","nodeType":"YulIdentifier","src":"32715:6:54"}],"functionName":{"name":"mload","nativeSrc":"32709:5:54","nodeType":"YulIdentifier","src":"32709:5:54"},"nativeSrc":"32709:13:54","nodeType":"YulFunctionCall","src":"32709:13:54"},"variables":[{"name":"_1","nativeSrc":"32703:2:54","nodeType":"YulTypedName","src":"32703:2:54","type":""}]},{"nativeSrc":"32731:14:54","nodeType":"YulVariableDeclaration","src":"32731:14:54","value":{"kind":"number","nativeSrc":"32741:4:54","nodeType":"YulLiteral","src":"32741:4:54","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"32735:2:54","nodeType":"YulTypedName","src":"32735:2:54","type":""}]},{"nativeSrc":"32754:82:54","nodeType":"YulVariableDeclaration","src":"32754:82:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"32832:2:54","nodeType":"YulIdentifier","src":"32832:2:54"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"32781:50:54","nodeType":"YulIdentifier","src":"32781:50:54"},"nativeSrc":"32781:54:54","nodeType":"YulFunctionCall","src":"32781:54:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"32765:15:54","nodeType":"YulIdentifier","src":"32765:15:54"},"nativeSrc":"32765:71:54","nodeType":"YulFunctionCall","src":"32765:71:54"},"variables":[{"name":"dst","nativeSrc":"32758:3:54","nodeType":"YulTypedName","src":"32758:3:54","type":""}]},{"nativeSrc":"32845:16:54","nodeType":"YulVariableDeclaration","src":"32845:16:54","value":{"name":"dst","nativeSrc":"32858:3:54","nodeType":"YulIdentifier","src":"32858:3:54"},"variables":[{"name":"dst_1","nativeSrc":"32849:5:54","nodeType":"YulTypedName","src":"32849:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32877:3:54","nodeType":"YulIdentifier","src":"32877:3:54"},{"name":"_1","nativeSrc":"32882:2:54","nodeType":"YulIdentifier","src":"32882:2:54"}],"functionName":{"name":"mstore","nativeSrc":"32870:6:54","nodeType":"YulIdentifier","src":"32870:6:54"},"nativeSrc":"32870:15:54","nodeType":"YulFunctionCall","src":"32870:15:54"},"nativeSrc":"32870:15:54","nodeType":"YulExpressionStatement","src":"32870:15:54"},{"nativeSrc":"32894:19:54","nodeType":"YulAssignment","src":"32894:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"32905:3:54","nodeType":"YulIdentifier","src":"32905:3:54"},{"name":"_2","nativeSrc":"32910:2:54","nodeType":"YulIdentifier","src":"32910:2:54"}],"functionName":{"name":"add","nativeSrc":"32901:3:54","nodeType":"YulIdentifier","src":"32901:3:54"},"nativeSrc":"32901:12:54","nodeType":"YulFunctionCall","src":"32901:12:54"},"variableNames":[{"name":"dst","nativeSrc":"32894:3:54","nodeType":"YulIdentifier","src":"32894:3:54"}]},{"nativeSrc":"32922:46:54","nodeType":"YulVariableDeclaration","src":"32922:46:54","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32944:6:54","nodeType":"YulIdentifier","src":"32944:6:54"},{"arguments":[{"kind":"number","nativeSrc":"32956:1:54","nodeType":"YulLiteral","src":"32956:1:54","type":"","value":"5"},{"name":"_1","nativeSrc":"32959:2:54","nodeType":"YulIdentifier","src":"32959:2:54"}],"functionName":{"name":"shl","nativeSrc":"32952:3:54","nodeType":"YulIdentifier","src":"32952:3:54"},"nativeSrc":"32952:10:54","nodeType":"YulFunctionCall","src":"32952:10:54"}],"functionName":{"name":"add","nativeSrc":"32940:3:54","nodeType":"YulIdentifier","src":"32940:3:54"},"nativeSrc":"32940:23:54","nodeType":"YulFunctionCall","src":"32940:23:54"},{"name":"_2","nativeSrc":"32965:2:54","nodeType":"YulIdentifier","src":"32965:2:54"}],"functionName":{"name":"add","nativeSrc":"32936:3:54","nodeType":"YulIdentifier","src":"32936:3:54"},"nativeSrc":"32936:32:54","nodeType":"YulFunctionCall","src":"32936:32:54"},"variables":[{"name":"srcEnd","nativeSrc":"32926:6:54","nodeType":"YulTypedName","src":"32926:6:54","type":""}]},{"body":{"nativeSrc":"32996:16:54","nodeType":"YulBlock","src":"32996:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33005:1:54","nodeType":"YulLiteral","src":"33005:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"33008:1:54","nodeType":"YulLiteral","src":"33008:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32998:6:54","nodeType":"YulIdentifier","src":"32998:6:54"},"nativeSrc":"32998:12:54","nodeType":"YulFunctionCall","src":"32998:12:54"},"nativeSrc":"32998:12:54","nodeType":"YulExpressionStatement","src":"32998:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"32983:6:54","nodeType":"YulIdentifier","src":"32983:6:54"},{"name":"end","nativeSrc":"32991:3:54","nodeType":"YulIdentifier","src":"32991:3:54"}],"functionName":{"name":"gt","nativeSrc":"32980:2:54","nodeType":"YulIdentifier","src":"32980:2:54"},"nativeSrc":"32980:15:54","nodeType":"YulFunctionCall","src":"32980:15:54"},"nativeSrc":"32977:35:54","nodeType":"YulIf","src":"32977:35:54"},{"nativeSrc":"33021:26:54","nodeType":"YulVariableDeclaration","src":"33021:26:54","value":{"arguments":[{"name":"offset","nativeSrc":"33036:6:54","nodeType":"YulIdentifier","src":"33036:6:54"},{"name":"_2","nativeSrc":"33044:2:54","nodeType":"YulIdentifier","src":"33044:2:54"}],"functionName":{"name":"add","nativeSrc":"33032:3:54","nodeType":"YulIdentifier","src":"33032:3:54"},"nativeSrc":"33032:15:54","nodeType":"YulFunctionCall","src":"33032:15:54"},"variables":[{"name":"src","nativeSrc":"33025:3:54","nodeType":"YulTypedName","src":"33025:3:54","type":""}]},{"body":{"nativeSrc":"33112:316:54","nodeType":"YulBlock","src":"33112:316:54","statements":[{"nativeSrc":"33126:29:54","nodeType":"YulVariableDeclaration","src":"33126:29:54","value":{"arguments":[{"name":"src","nativeSrc":"33151:3:54","nodeType":"YulIdentifier","src":"33151:3:54"}],"functionName":{"name":"mload","nativeSrc":"33145:5:54","nodeType":"YulIdentifier","src":"33145:5:54"},"nativeSrc":"33145:10:54","nodeType":"YulFunctionCall","src":"33145:10:54"},"variables":[{"name":"innerOffset","nativeSrc":"33130:11:54","nodeType":"YulTypedName","src":"33130:11:54","type":""}]},{"body":{"nativeSrc":"33219:74:54","nodeType":"YulBlock","src":"33219:74:54","statements":[{"nativeSrc":"33237:11:54","nodeType":"YulVariableDeclaration","src":"33237:11:54","value":{"kind":"number","nativeSrc":"33247:1:54","nodeType":"YulLiteral","src":"33247:1:54","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"33241:2:54","nodeType":"YulTypedName","src":"33241:2:54","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"33272:2:54","nodeType":"YulIdentifier","src":"33272:2:54"},{"name":"_3","nativeSrc":"33276:2:54","nodeType":"YulIdentifier","src":"33276:2:54"}],"functionName":{"name":"revert","nativeSrc":"33265:6:54","nodeType":"YulIdentifier","src":"33265:6:54"},"nativeSrc":"33265:14:54","nodeType":"YulFunctionCall","src":"33265:14:54"},"nativeSrc":"33265:14:54","nodeType":"YulExpressionStatement","src":"33265:14:54"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"33174:11:54","nodeType":"YulIdentifier","src":"33174:11:54"},{"kind":"number","nativeSrc":"33187:18:54","nodeType":"YulLiteral","src":"33187:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"33171:2:54","nodeType":"YulIdentifier","src":"33171:2:54"},"nativeSrc":"33171:35:54","nodeType":"YulFunctionCall","src":"33171:35:54"},"nativeSrc":"33168:125:54","nodeType":"YulIf","src":"33168:125:54"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"33313:3:54","nodeType":"YulIdentifier","src":"33313:3:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"33354:6:54","nodeType":"YulIdentifier","src":"33354:6:54"},{"name":"innerOffset","nativeSrc":"33362:11:54","nodeType":"YulIdentifier","src":"33362:11:54"}],"functionName":{"name":"add","nativeSrc":"33350:3:54","nodeType":"YulIdentifier","src":"33350:3:54"},"nativeSrc":"33350:24:54","nodeType":"YulFunctionCall","src":"33350:24:54"},{"name":"_2","nativeSrc":"33376:2:54","nodeType":"YulIdentifier","src":"33376:2:54"}],"functionName":{"name":"add","nativeSrc":"33346:3:54","nodeType":"YulIdentifier","src":"33346:3:54"},"nativeSrc":"33346:33:54","nodeType":"YulFunctionCall","src":"33346:33:54"},{"name":"end","nativeSrc":"33381:3:54","nodeType":"YulIdentifier","src":"33381:3:54"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"33318:27:54","nodeType":"YulIdentifier","src":"33318:27:54"},"nativeSrc":"33318:67:54","nodeType":"YulFunctionCall","src":"33318:67:54"}],"functionName":{"name":"mstore","nativeSrc":"33306:6:54","nodeType":"YulIdentifier","src":"33306:6:54"},"nativeSrc":"33306:80:54","nodeType":"YulFunctionCall","src":"33306:80:54"},"nativeSrc":"33306:80:54","nodeType":"YulExpressionStatement","src":"33306:80:54"},{"nativeSrc":"33399:19:54","nodeType":"YulAssignment","src":"33399:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"33410:3:54","nodeType":"YulIdentifier","src":"33410:3:54"},{"name":"_2","nativeSrc":"33415:2:54","nodeType":"YulIdentifier","src":"33415:2:54"}],"functionName":{"name":"add","nativeSrc":"33406:3:54","nodeType":"YulIdentifier","src":"33406:3:54"},"nativeSrc":"33406:12:54","nodeType":"YulFunctionCall","src":"33406:12:54"},"variableNames":[{"name":"dst","nativeSrc":"33399:3:54","nodeType":"YulIdentifier","src":"33399:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"33067:3:54","nodeType":"YulIdentifier","src":"33067:3:54"},{"name":"srcEnd","nativeSrc":"33072:6:54","nodeType":"YulIdentifier","src":"33072:6:54"}],"functionName":{"name":"lt","nativeSrc":"33064:2:54","nodeType":"YulIdentifier","src":"33064:2:54"},"nativeSrc":"33064:15:54","nodeType":"YulFunctionCall","src":"33064:15:54"},"nativeSrc":"33056:372:54","nodeType":"YulForLoop","post":{"nativeSrc":"33080:23:54","nodeType":"YulBlock","src":"33080:23:54","statements":[{"nativeSrc":"33082:19:54","nodeType":"YulAssignment","src":"33082:19:54","value":{"arguments":[{"name":"src","nativeSrc":"33093:3:54","nodeType":"YulIdentifier","src":"33093:3:54"},{"name":"_2","nativeSrc":"33098:2:54","nodeType":"YulIdentifier","src":"33098:2:54"}],"functionName":{"name":"add","nativeSrc":"33089:3:54","nodeType":"YulIdentifier","src":"33089:3:54"},"nativeSrc":"33089:12:54","nodeType":"YulFunctionCall","src":"33089:12:54"},"variableNames":[{"name":"src","nativeSrc":"33082:3:54","nodeType":"YulIdentifier","src":"33082:3:54"}]}]},"pre":{"nativeSrc":"33060:3:54","nodeType":"YulBlock","src":"33060:3:54","statements":[]},"src":"33056:372:54"},{"nativeSrc":"33437:14:54","nodeType":"YulAssignment","src":"33437:14:54","value":{"name":"dst_1","nativeSrc":"33446:5:54","nodeType":"YulIdentifier","src":"33446:5:54"},"variableNames":[{"name":"array","nativeSrc":"33437:5:54","nodeType":"YulIdentifier","src":"33437:5:54"}]}]},"name":"abi_decode_array_bytes_dyn_fromMemory","nativeSrc":"32552:905:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"32599:6:54","nodeType":"YulTypedName","src":"32599:6:54","type":""},{"name":"end","nativeSrc":"32607:3:54","nodeType":"YulTypedName","src":"32607:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"32615:5:54","nodeType":"YulTypedName","src":"32615:5:54","type":""}],"src":"32552:905:54"},{"body":{"nativeSrc":"33520:76:54","nodeType":"YulBlock","src":"33520:76:54","statements":[{"nativeSrc":"33530:22:54","nodeType":"YulAssignment","src":"33530:22:54","value":{"arguments":[{"name":"offset","nativeSrc":"33545:6:54","nodeType":"YulIdentifier","src":"33545:6:54"}],"functionName":{"name":"mload","nativeSrc":"33539:5:54","nodeType":"YulIdentifier","src":"33539:5:54"},"nativeSrc":"33539:13:54","nodeType":"YulFunctionCall","src":"33539:13:54"},"variableNames":[{"name":"value","nativeSrc":"33530:5:54","nodeType":"YulIdentifier","src":"33530:5:54"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"33584:5:54","nodeType":"YulIdentifier","src":"33584:5:54"}],"functionName":{"name":"validator_revert_uint8","nativeSrc":"33561:22:54","nodeType":"YulIdentifier","src":"33561:22:54"},"nativeSrc":"33561:29:54","nodeType":"YulFunctionCall","src":"33561:29:54"},"nativeSrc":"33561:29:54","nodeType":"YulExpressionStatement","src":"33561:29:54"}]},"name":"abi_decode_uint8_fromMemory","nativeSrc":"33462:134:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"33499:6:54","nodeType":"YulTypedName","src":"33499:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"33510:5:54","nodeType":"YulTypedName","src":"33510:5:54","type":""}],"src":"33462:134:54"},{"body":{"nativeSrc":"33867:1513:54","nodeType":"YulBlock","src":"33867:1513:54","statements":[{"body":{"nativeSrc":"33914:16:54","nodeType":"YulBlock","src":"33914:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33923:1:54","nodeType":"YulLiteral","src":"33923:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"33926:1:54","nodeType":"YulLiteral","src":"33926:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33916:6:54","nodeType":"YulIdentifier","src":"33916:6:54"},"nativeSrc":"33916:12:54","nodeType":"YulFunctionCall","src":"33916:12:54"},"nativeSrc":"33916:12:54","nodeType":"YulExpressionStatement","src":"33916:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33888:7:54","nodeType":"YulIdentifier","src":"33888:7:54"},{"name":"headStart","nativeSrc":"33897:9:54","nodeType":"YulIdentifier","src":"33897:9:54"}],"functionName":{"name":"sub","nativeSrc":"33884:3:54","nodeType":"YulIdentifier","src":"33884:3:54"},"nativeSrc":"33884:23:54","nodeType":"YulFunctionCall","src":"33884:23:54"},{"kind":"number","nativeSrc":"33909:3:54","nodeType":"YulLiteral","src":"33909:3:54","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"33880:3:54","nodeType":"YulIdentifier","src":"33880:3:54"},"nativeSrc":"33880:33:54","nodeType":"YulFunctionCall","src":"33880:33:54"},"nativeSrc":"33877:53:54","nodeType":"YulIf","src":"33877:53:54"},{"nativeSrc":"33939:30:54","nodeType":"YulVariableDeclaration","src":"33939:30:54","value":{"arguments":[{"name":"headStart","nativeSrc":"33959:9:54","nodeType":"YulIdentifier","src":"33959:9:54"}],"functionName":{"name":"mload","nativeSrc":"33953:5:54","nodeType":"YulIdentifier","src":"33953:5:54"},"nativeSrc":"33953:16:54","nodeType":"YulFunctionCall","src":"33953:16:54"},"variables":[{"name":"offset","nativeSrc":"33943:6:54","nodeType":"YulTypedName","src":"33943:6:54","type":""}]},{"nativeSrc":"33978:28:54","nodeType":"YulVariableDeclaration","src":"33978:28:54","value":{"kind":"number","nativeSrc":"33988:18:54","nodeType":"YulLiteral","src":"33988:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"33982:2:54","nodeType":"YulTypedName","src":"33982:2:54","type":""}]},{"body":{"nativeSrc":"34033:16:54","nodeType":"YulBlock","src":"34033:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34042:1:54","nodeType":"YulLiteral","src":"34042:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"34045:1:54","nodeType":"YulLiteral","src":"34045:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34035:6:54","nodeType":"YulIdentifier","src":"34035:6:54"},"nativeSrc":"34035:12:54","nodeType":"YulFunctionCall","src":"34035:12:54"},"nativeSrc":"34035:12:54","nodeType":"YulExpressionStatement","src":"34035:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"34021:6:54","nodeType":"YulIdentifier","src":"34021:6:54"},{"name":"_1","nativeSrc":"34029:2:54","nodeType":"YulIdentifier","src":"34029:2:54"}],"functionName":{"name":"gt","nativeSrc":"34018:2:54","nodeType":"YulIdentifier","src":"34018:2:54"},"nativeSrc":"34018:14:54","nodeType":"YulFunctionCall","src":"34018:14:54"},"nativeSrc":"34015:34:54","nodeType":"YulIf","src":"34015:34:54"},{"nativeSrc":"34058:32:54","nodeType":"YulVariableDeclaration","src":"34058:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"34072:9:54","nodeType":"YulIdentifier","src":"34072:9:54"},{"name":"offset","nativeSrc":"34083:6:54","nodeType":"YulIdentifier","src":"34083:6:54"}],"functionName":{"name":"add","nativeSrc":"34068:3:54","nodeType":"YulIdentifier","src":"34068:3:54"},"nativeSrc":"34068:22:54","nodeType":"YulFunctionCall","src":"34068:22:54"},"variables":[{"name":"_2","nativeSrc":"34062:2:54","nodeType":"YulTypedName","src":"34062:2:54","type":""}]},{"body":{"nativeSrc":"34138:16:54","nodeType":"YulBlock","src":"34138:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34147:1:54","nodeType":"YulLiteral","src":"34147:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"34150:1:54","nodeType":"YulLiteral","src":"34150:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34140:6:54","nodeType":"YulIdentifier","src":"34140:6:54"},"nativeSrc":"34140:12:54","nodeType":"YulFunctionCall","src":"34140:12:54"},"nativeSrc":"34140:12:54","nodeType":"YulExpressionStatement","src":"34140:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"34117:2:54","nodeType":"YulIdentifier","src":"34117:2:54"},{"kind":"number","nativeSrc":"34121:4:54","nodeType":"YulLiteral","src":"34121:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"34113:3:54","nodeType":"YulIdentifier","src":"34113:3:54"},"nativeSrc":"34113:13:54","nodeType":"YulFunctionCall","src":"34113:13:54"},{"name":"dataEnd","nativeSrc":"34128:7:54","nodeType":"YulIdentifier","src":"34128:7:54"}],"functionName":{"name":"slt","nativeSrc":"34109:3:54","nodeType":"YulIdentifier","src":"34109:3:54"},"nativeSrc":"34109:27:54","nodeType":"YulFunctionCall","src":"34109:27:54"}],"functionName":{"name":"iszero","nativeSrc":"34102:6:54","nodeType":"YulIdentifier","src":"34102:6:54"},"nativeSrc":"34102:35:54","nodeType":"YulFunctionCall","src":"34102:35:54"},"nativeSrc":"34099:55:54","nodeType":"YulIf","src":"34099:55:54"},{"nativeSrc":"34163:19:54","nodeType":"YulVariableDeclaration","src":"34163:19:54","value":{"arguments":[{"name":"_2","nativeSrc":"34179:2:54","nodeType":"YulIdentifier","src":"34179:2:54"}],"functionName":{"name":"mload","nativeSrc":"34173:5:54","nodeType":"YulIdentifier","src":"34173:5:54"},"nativeSrc":"34173:9:54","nodeType":"YulFunctionCall","src":"34173:9:54"},"variables":[{"name":"_3","nativeSrc":"34167:2:54","nodeType":"YulTypedName","src":"34167:2:54","type":""}]},{"nativeSrc":"34191:14:54","nodeType":"YulVariableDeclaration","src":"34191:14:54","value":{"kind":"number","nativeSrc":"34201:4:54","nodeType":"YulLiteral","src":"34201:4:54","type":"","value":"0x20"},"variables":[{"name":"_4","nativeSrc":"34195:2:54","nodeType":"YulTypedName","src":"34195:2:54","type":""}]},{"nativeSrc":"34214:82:54","nodeType":"YulVariableDeclaration","src":"34214:82:54","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"34292:2:54","nodeType":"YulIdentifier","src":"34292:2:54"}],"functionName":{"name":"array_allocation_size_array_contract_ITimelock_dyn","nativeSrc":"34241:50:54","nodeType":"YulIdentifier","src":"34241:50:54"},"nativeSrc":"34241:54:54","nodeType":"YulFunctionCall","src":"34241:54:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"34225:15:54","nodeType":"YulIdentifier","src":"34225:15:54"},"nativeSrc":"34225:71:54","nodeType":"YulFunctionCall","src":"34225:71:54"},"variables":[{"name":"dst","nativeSrc":"34218:3:54","nodeType":"YulTypedName","src":"34218:3:54","type":""}]},{"nativeSrc":"34305:16:54","nodeType":"YulVariableDeclaration","src":"34305:16:54","value":{"name":"dst","nativeSrc":"34318:3:54","nodeType":"YulIdentifier","src":"34318:3:54"},"variables":[{"name":"dst_1","nativeSrc":"34309:5:54","nodeType":"YulTypedName","src":"34309:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34337:3:54","nodeType":"YulIdentifier","src":"34337:3:54"},{"name":"_3","nativeSrc":"34342:2:54","nodeType":"YulIdentifier","src":"34342:2:54"}],"functionName":{"name":"mstore","nativeSrc":"34330:6:54","nodeType":"YulIdentifier","src":"34330:6:54"},"nativeSrc":"34330:15:54","nodeType":"YulFunctionCall","src":"34330:15:54"},"nativeSrc":"34330:15:54","nodeType":"YulExpressionStatement","src":"34330:15:54"},{"nativeSrc":"34354:19:54","nodeType":"YulAssignment","src":"34354:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"34365:3:54","nodeType":"YulIdentifier","src":"34365:3:54"},{"name":"_4","nativeSrc":"34370:2:54","nodeType":"YulIdentifier","src":"34370:2:54"}],"functionName":{"name":"add","nativeSrc":"34361:3:54","nodeType":"YulIdentifier","src":"34361:3:54"},"nativeSrc":"34361:12:54","nodeType":"YulFunctionCall","src":"34361:12:54"},"variableNames":[{"name":"dst","nativeSrc":"34354:3:54","nodeType":"YulIdentifier","src":"34354:3:54"}]},{"nativeSrc":"34382:42:54","nodeType":"YulVariableDeclaration","src":"34382:42:54","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"34404:2:54","nodeType":"YulIdentifier","src":"34404:2:54"},{"arguments":[{"kind":"number","nativeSrc":"34412:1:54","nodeType":"YulLiteral","src":"34412:1:54","type":"","value":"5"},{"name":"_3","nativeSrc":"34415:2:54","nodeType":"YulIdentifier","src":"34415:2:54"}],"functionName":{"name":"shl","nativeSrc":"34408:3:54","nodeType":"YulIdentifier","src":"34408:3:54"},"nativeSrc":"34408:10:54","nodeType":"YulFunctionCall","src":"34408:10:54"}],"functionName":{"name":"add","nativeSrc":"34400:3:54","nodeType":"YulIdentifier","src":"34400:3:54"},"nativeSrc":"34400:19:54","nodeType":"YulFunctionCall","src":"34400:19:54"},{"name":"_4","nativeSrc":"34421:2:54","nodeType":"YulIdentifier","src":"34421:2:54"}],"functionName":{"name":"add","nativeSrc":"34396:3:54","nodeType":"YulIdentifier","src":"34396:3:54"},"nativeSrc":"34396:28:54","nodeType":"YulFunctionCall","src":"34396:28:54"},"variables":[{"name":"srcEnd","nativeSrc":"34386:6:54","nodeType":"YulTypedName","src":"34386:6:54","type":""}]},{"body":{"nativeSrc":"34456:16:54","nodeType":"YulBlock","src":"34456:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34465:1:54","nodeType":"YulLiteral","src":"34465:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"34468:1:54","nodeType":"YulLiteral","src":"34468:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34458:6:54","nodeType":"YulIdentifier","src":"34458:6:54"},"nativeSrc":"34458:12:54","nodeType":"YulFunctionCall","src":"34458:12:54"},"nativeSrc":"34458:12:54","nodeType":"YulExpressionStatement","src":"34458:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"34439:6:54","nodeType":"YulIdentifier","src":"34439:6:54"},{"name":"dataEnd","nativeSrc":"34447:7:54","nodeType":"YulIdentifier","src":"34447:7:54"}],"functionName":{"name":"gt","nativeSrc":"34436:2:54","nodeType":"YulIdentifier","src":"34436:2:54"},"nativeSrc":"34436:19:54","nodeType":"YulFunctionCall","src":"34436:19:54"},"nativeSrc":"34433:39:54","nodeType":"YulIf","src":"34433:39:54"},{"nativeSrc":"34481:22:54","nodeType":"YulVariableDeclaration","src":"34481:22:54","value":{"arguments":[{"name":"_2","nativeSrc":"34496:2:54","nodeType":"YulIdentifier","src":"34496:2:54"},{"name":"_4","nativeSrc":"34500:2:54","nodeType":"YulIdentifier","src":"34500:2:54"}],"functionName":{"name":"add","nativeSrc":"34492:3:54","nodeType":"YulIdentifier","src":"34492:3:54"},"nativeSrc":"34492:11:54","nodeType":"YulFunctionCall","src":"34492:11:54"},"variables":[{"name":"src","nativeSrc":"34485:3:54","nodeType":"YulTypedName","src":"34485:3:54","type":""}]},{"body":{"nativeSrc":"34568:154:54","nodeType":"YulBlock","src":"34568:154:54","statements":[{"nativeSrc":"34582:23:54","nodeType":"YulVariableDeclaration","src":"34582:23:54","value":{"arguments":[{"name":"src","nativeSrc":"34601:3:54","nodeType":"YulIdentifier","src":"34601:3:54"}],"functionName":{"name":"mload","nativeSrc":"34595:5:54","nodeType":"YulIdentifier","src":"34595:5:54"},"nativeSrc":"34595:10:54","nodeType":"YulFunctionCall","src":"34595:10:54"},"variables":[{"name":"value","nativeSrc":"34586:5:54","nodeType":"YulTypedName","src":"34586:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"34643:5:54","nodeType":"YulIdentifier","src":"34643:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"34618:24:54","nodeType":"YulIdentifier","src":"34618:24:54"},"nativeSrc":"34618:31:54","nodeType":"YulFunctionCall","src":"34618:31:54"},"nativeSrc":"34618:31:54","nodeType":"YulExpressionStatement","src":"34618:31:54"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34669:3:54","nodeType":"YulIdentifier","src":"34669:3:54"},{"name":"value","nativeSrc":"34674:5:54","nodeType":"YulIdentifier","src":"34674:5:54"}],"functionName":{"name":"mstore","nativeSrc":"34662:6:54","nodeType":"YulIdentifier","src":"34662:6:54"},"nativeSrc":"34662:18:54","nodeType":"YulFunctionCall","src":"34662:18:54"},"nativeSrc":"34662:18:54","nodeType":"YulExpressionStatement","src":"34662:18:54"},{"nativeSrc":"34693:19:54","nodeType":"YulAssignment","src":"34693:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"34704:3:54","nodeType":"YulIdentifier","src":"34704:3:54"},{"name":"_4","nativeSrc":"34709:2:54","nodeType":"YulIdentifier","src":"34709:2:54"}],"functionName":{"name":"add","nativeSrc":"34700:3:54","nodeType":"YulIdentifier","src":"34700:3:54"},"nativeSrc":"34700:12:54","nodeType":"YulFunctionCall","src":"34700:12:54"},"variableNames":[{"name":"dst","nativeSrc":"34693:3:54","nodeType":"YulIdentifier","src":"34693:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"34523:3:54","nodeType":"YulIdentifier","src":"34523:3:54"},{"name":"srcEnd","nativeSrc":"34528:6:54","nodeType":"YulIdentifier","src":"34528:6:54"}],"functionName":{"name":"lt","nativeSrc":"34520:2:54","nodeType":"YulIdentifier","src":"34520:2:54"},"nativeSrc":"34520:15:54","nodeType":"YulFunctionCall","src":"34520:15:54"},"nativeSrc":"34512:210:54","nodeType":"YulForLoop","post":{"nativeSrc":"34536:23:54","nodeType":"YulBlock","src":"34536:23:54","statements":[{"nativeSrc":"34538:19:54","nodeType":"YulAssignment","src":"34538:19:54","value":{"arguments":[{"name":"src","nativeSrc":"34549:3:54","nodeType":"YulIdentifier","src":"34549:3:54"},{"name":"_4","nativeSrc":"34554:2:54","nodeType":"YulIdentifier","src":"34554:2:54"}],"functionName":{"name":"add","nativeSrc":"34545:3:54","nodeType":"YulIdentifier","src":"34545:3:54"},"nativeSrc":"34545:12:54","nodeType":"YulFunctionCall","src":"34545:12:54"},"variableNames":[{"name":"src","nativeSrc":"34538:3:54","nodeType":"YulIdentifier","src":"34538:3:54"}]}]},"pre":{"nativeSrc":"34516:3:54","nodeType":"YulBlock","src":"34516:3:54","statements":[]},"src":"34512:210:54"},{"nativeSrc":"34731:15:54","nodeType":"YulAssignment","src":"34731:15:54","value":{"name":"dst_1","nativeSrc":"34741:5:54","nodeType":"YulIdentifier","src":"34741:5:54"},"variableNames":[{"name":"value0","nativeSrc":"34731:6:54","nodeType":"YulIdentifier","src":"34731:6:54"}]},{"nativeSrc":"34755:41:54","nodeType":"YulVariableDeclaration","src":"34755:41:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34781:9:54","nodeType":"YulIdentifier","src":"34781:9:54"},{"name":"_4","nativeSrc":"34792:2:54","nodeType":"YulIdentifier","src":"34792:2:54"}],"functionName":{"name":"add","nativeSrc":"34777:3:54","nodeType":"YulIdentifier","src":"34777:3:54"},"nativeSrc":"34777:18:54","nodeType":"YulFunctionCall","src":"34777:18:54"}],"functionName":{"name":"mload","nativeSrc":"34771:5:54","nodeType":"YulIdentifier","src":"34771:5:54"},"nativeSrc":"34771:25:54","nodeType":"YulFunctionCall","src":"34771:25:54"},"variables":[{"name":"offset_1","nativeSrc":"34759:8:54","nodeType":"YulTypedName","src":"34759:8:54","type":""}]},{"body":{"nativeSrc":"34825:16:54","nodeType":"YulBlock","src":"34825:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34834:1:54","nodeType":"YulLiteral","src":"34834:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"34837:1:54","nodeType":"YulLiteral","src":"34837:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34827:6:54","nodeType":"YulIdentifier","src":"34827:6:54"},"nativeSrc":"34827:12:54","nodeType":"YulFunctionCall","src":"34827:12:54"},"nativeSrc":"34827:12:54","nodeType":"YulExpressionStatement","src":"34827:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"34811:8:54","nodeType":"YulIdentifier","src":"34811:8:54"},{"name":"_1","nativeSrc":"34821:2:54","nodeType":"YulIdentifier","src":"34821:2:54"}],"functionName":{"name":"gt","nativeSrc":"34808:2:54","nodeType":"YulIdentifier","src":"34808:2:54"},"nativeSrc":"34808:16:54","nodeType":"YulFunctionCall","src":"34808:16:54"},"nativeSrc":"34805:36:54","nodeType":"YulIf","src":"34805:36:54"},{"nativeSrc":"34850:84:54","nodeType":"YulAssignment","src":"34850:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34904:9:54","nodeType":"YulIdentifier","src":"34904:9:54"},{"name":"offset_1","nativeSrc":"34915:8:54","nodeType":"YulIdentifier","src":"34915:8:54"}],"functionName":{"name":"add","nativeSrc":"34900:3:54","nodeType":"YulIdentifier","src":"34900:3:54"},"nativeSrc":"34900:24:54","nodeType":"YulFunctionCall","src":"34900:24:54"},{"name":"dataEnd","nativeSrc":"34926:7:54","nodeType":"YulIdentifier","src":"34926:7:54"}],"functionName":{"name":"abi_decode_array_uint256_dyn_fromMemory","nativeSrc":"34860:39:54","nodeType":"YulIdentifier","src":"34860:39:54"},"nativeSrc":"34860:74:54","nodeType":"YulFunctionCall","src":"34860:74:54"},"variableNames":[{"name":"value1","nativeSrc":"34850:6:54","nodeType":"YulIdentifier","src":"34850:6:54"}]},{"nativeSrc":"34943:41:54","nodeType":"YulVariableDeclaration","src":"34943:41:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34969:9:54","nodeType":"YulIdentifier","src":"34969:9:54"},{"kind":"number","nativeSrc":"34980:2:54","nodeType":"YulLiteral","src":"34980:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34965:3:54","nodeType":"YulIdentifier","src":"34965:3:54"},"nativeSrc":"34965:18:54","nodeType":"YulFunctionCall","src":"34965:18:54"}],"functionName":{"name":"mload","nativeSrc":"34959:5:54","nodeType":"YulIdentifier","src":"34959:5:54"},"nativeSrc":"34959:25:54","nodeType":"YulFunctionCall","src":"34959:25:54"},"variables":[{"name":"offset_2","nativeSrc":"34947:8:54","nodeType":"YulTypedName","src":"34947:8:54","type":""}]},{"body":{"nativeSrc":"35013:16:54","nodeType":"YulBlock","src":"35013:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35022:1:54","nodeType":"YulLiteral","src":"35022:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"35025:1:54","nodeType":"YulLiteral","src":"35025:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35015:6:54","nodeType":"YulIdentifier","src":"35015:6:54"},"nativeSrc":"35015:12:54","nodeType":"YulFunctionCall","src":"35015:12:54"},"nativeSrc":"35015:12:54","nodeType":"YulExpressionStatement","src":"35015:12:54"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"34999:8:54","nodeType":"YulIdentifier","src":"34999:8:54"},{"name":"_1","nativeSrc":"35009:2:54","nodeType":"YulIdentifier","src":"35009:2:54"}],"functionName":{"name":"gt","nativeSrc":"34996:2:54","nodeType":"YulIdentifier","src":"34996:2:54"},"nativeSrc":"34996:16:54","nodeType":"YulFunctionCall","src":"34996:16:54"},"nativeSrc":"34993:36:54","nodeType":"YulIf","src":"34993:36:54"},{"nativeSrc":"35038:83:54","nodeType":"YulAssignment","src":"35038:83:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35091:9:54","nodeType":"YulIdentifier","src":"35091:9:54"},{"name":"offset_2","nativeSrc":"35102:8:54","nodeType":"YulIdentifier","src":"35102:8:54"}],"functionName":{"name":"add","nativeSrc":"35087:3:54","nodeType":"YulIdentifier","src":"35087:3:54"},"nativeSrc":"35087:24:54","nodeType":"YulFunctionCall","src":"35087:24:54"},{"name":"dataEnd","nativeSrc":"35113:7:54","nodeType":"YulIdentifier","src":"35113:7:54"}],"functionName":{"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"35048:38:54","nodeType":"YulIdentifier","src":"35048:38:54"},"nativeSrc":"35048:73:54","nodeType":"YulFunctionCall","src":"35048:73:54"},"variableNames":[{"name":"value2","nativeSrc":"35038:6:54","nodeType":"YulIdentifier","src":"35038:6:54"}]},{"nativeSrc":"35130:41:54","nodeType":"YulVariableDeclaration","src":"35130:41:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35156:9:54","nodeType":"YulIdentifier","src":"35156:9:54"},{"kind":"number","nativeSrc":"35167:2:54","nodeType":"YulLiteral","src":"35167:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35152:3:54","nodeType":"YulIdentifier","src":"35152:3:54"},"nativeSrc":"35152:18:54","nodeType":"YulFunctionCall","src":"35152:18:54"}],"functionName":{"name":"mload","nativeSrc":"35146:5:54","nodeType":"YulIdentifier","src":"35146:5:54"},"nativeSrc":"35146:25:54","nodeType":"YulFunctionCall","src":"35146:25:54"},"variables":[{"name":"offset_3","nativeSrc":"35134:8:54","nodeType":"YulTypedName","src":"35134:8:54","type":""}]},{"body":{"nativeSrc":"35200:16:54","nodeType":"YulBlock","src":"35200:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35209:1:54","nodeType":"YulLiteral","src":"35209:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"35212:1:54","nodeType":"YulLiteral","src":"35212:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35202:6:54","nodeType":"YulIdentifier","src":"35202:6:54"},"nativeSrc":"35202:12:54","nodeType":"YulFunctionCall","src":"35202:12:54"},"nativeSrc":"35202:12:54","nodeType":"YulExpressionStatement","src":"35202:12:54"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"35186:8:54","nodeType":"YulIdentifier","src":"35186:8:54"},{"name":"_1","nativeSrc":"35196:2:54","nodeType":"YulIdentifier","src":"35196:2:54"}],"functionName":{"name":"gt","nativeSrc":"35183:2:54","nodeType":"YulIdentifier","src":"35183:2:54"},"nativeSrc":"35183:16:54","nodeType":"YulFunctionCall","src":"35183:16:54"},"nativeSrc":"35180:36:54","nodeType":"YulIf","src":"35180:36:54"},{"nativeSrc":"35225:82:54","nodeType":"YulAssignment","src":"35225:82:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35277:9:54","nodeType":"YulIdentifier","src":"35277:9:54"},{"name":"offset_3","nativeSrc":"35288:8:54","nodeType":"YulIdentifier","src":"35288:8:54"}],"functionName":{"name":"add","nativeSrc":"35273:3:54","nodeType":"YulIdentifier","src":"35273:3:54"},"nativeSrc":"35273:24:54","nodeType":"YulFunctionCall","src":"35273:24:54"},{"name":"dataEnd","nativeSrc":"35299:7:54","nodeType":"YulIdentifier","src":"35299:7:54"}],"functionName":{"name":"abi_decode_array_bytes_dyn_fromMemory","nativeSrc":"35235:37:54","nodeType":"YulIdentifier","src":"35235:37:54"},"nativeSrc":"35235:72:54","nodeType":"YulFunctionCall","src":"35235:72:54"},"variableNames":[{"name":"value3","nativeSrc":"35225:6:54","nodeType":"YulIdentifier","src":"35225:6:54"}]},{"nativeSrc":"35316:58:54","nodeType":"YulAssignment","src":"35316:58:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35358:9:54","nodeType":"YulIdentifier","src":"35358:9:54"},{"kind":"number","nativeSrc":"35369:3:54","nodeType":"YulLiteral","src":"35369:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35354:3:54","nodeType":"YulIdentifier","src":"35354:3:54"},"nativeSrc":"35354:19:54","nodeType":"YulFunctionCall","src":"35354:19:54"}],"functionName":{"name":"abi_decode_uint8_fromMemory","nativeSrc":"35326:27:54","nodeType":"YulIdentifier","src":"35326:27:54"},"nativeSrc":"35326:48:54","nodeType":"YulFunctionCall","src":"35326:48:54"},"variableNames":[{"name":"value4","nativeSrc":"35316:6:54","nodeType":"YulIdentifier","src":"35316:6:54"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory","nativeSrc":"33601:1779:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33801:9:54","nodeType":"YulTypedName","src":"33801:9:54","type":""},{"name":"dataEnd","nativeSrc":"33812:7:54","nodeType":"YulTypedName","src":"33812:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33824:6:54","nodeType":"YulTypedName","src":"33824:6:54","type":""},{"name":"value1","nativeSrc":"33832:6:54","nodeType":"YulTypedName","src":"33832:6:54","type":""},{"name":"value2","nativeSrc":"33840:6:54","nodeType":"YulTypedName","src":"33840:6:54","type":""},{"name":"value3","nativeSrc":"33848:6:54","nodeType":"YulTypedName","src":"33848:6:54","type":""},{"name":"value4","nativeSrc":"33856:6:54","nodeType":"YulTypedName","src":"33856:6:54","type":""}],"src":"33601:1779:54"},{"body":{"nativeSrc":"35559:300:54","nodeType":"YulBlock","src":"35559:300:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35576:9:54","nodeType":"YulIdentifier","src":"35576:9:54"},{"kind":"number","nativeSrc":"35587:2:54","nodeType":"YulLiteral","src":"35587:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35569:6:54","nodeType":"YulIdentifier","src":"35569:6:54"},"nativeSrc":"35569:21:54","nodeType":"YulFunctionCall","src":"35569:21:54"},"nativeSrc":"35569:21:54","nodeType":"YulExpressionStatement","src":"35569:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35610:9:54","nodeType":"YulIdentifier","src":"35610:9:54"},{"kind":"number","nativeSrc":"35621:2:54","nodeType":"YulLiteral","src":"35621:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35606:3:54","nodeType":"YulIdentifier","src":"35606:3:54"},"nativeSrc":"35606:18:54","nodeType":"YulFunctionCall","src":"35606:18:54"},{"kind":"number","nativeSrc":"35626:2:54","nodeType":"YulLiteral","src":"35626:2:54","type":"","value":"70"}],"functionName":{"name":"mstore","nativeSrc":"35599:6:54","nodeType":"YulIdentifier","src":"35599:6:54"},"nativeSrc":"35599:30:54","nodeType":"YulFunctionCall","src":"35599:30:54"},"nativeSrc":"35599:30:54","nodeType":"YulExpressionStatement","src":"35599:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35649:9:54","nodeType":"YulIdentifier","src":"35649:9:54"},{"kind":"number","nativeSrc":"35660:2:54","nodeType":"YulLiteral","src":"35660:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35645:3:54","nodeType":"YulIdentifier","src":"35645:3:54"},"nativeSrc":"35645:18:54","nodeType":"YulFunctionCall","src":"35645:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f","kind":"string","nativeSrc":"35665:34:54","nodeType":"YulLiteral","src":"35665:34:54","type":"","value":"OmnichainGovernanceExecutor::_no"}],"functionName":{"name":"mstore","nativeSrc":"35638:6:54","nodeType":"YulIdentifier","src":"35638:6:54"},"nativeSrc":"35638:62:54","nodeType":"YulFunctionCall","src":"35638:62:54"},"nativeSrc":"35638:62:54","nodeType":"YulExpressionStatement","src":"35638:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35720:9:54","nodeType":"YulIdentifier","src":"35720:9:54"},{"kind":"number","nativeSrc":"35731:2:54","nodeType":"YulLiteral","src":"35731:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35716:3:54","nodeType":"YulIdentifier","src":"35716:3:54"},"nativeSrc":"35716:18:54","nodeType":"YulFunctionCall","src":"35716:18:54"},{"hexValue":"6e626c6f636b696e674c7a526563656976653a206475706c6963617465207072","kind":"string","nativeSrc":"35736:34:54","nodeType":"YulLiteral","src":"35736:34:54","type":"","value":"nblockingLzReceive: duplicate pr"}],"functionName":{"name":"mstore","nativeSrc":"35709:6:54","nodeType":"YulIdentifier","src":"35709:6:54"},"nativeSrc":"35709:62:54","nodeType":"YulFunctionCall","src":"35709:62:54"},"nativeSrc":"35709:62:54","nodeType":"YulExpressionStatement","src":"35709:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35791:9:54","nodeType":"YulIdentifier","src":"35791:9:54"},{"kind":"number","nativeSrc":"35802:3:54","nodeType":"YulLiteral","src":"35802:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35787:3:54","nodeType":"YulIdentifier","src":"35787:3:54"},"nativeSrc":"35787:19:54","nodeType":"YulFunctionCall","src":"35787:19:54"},{"hexValue":"6f706f73616c","kind":"string","nativeSrc":"35808:8:54","nodeType":"YulLiteral","src":"35808:8:54","type":"","value":"oposal"}],"functionName":{"name":"mstore","nativeSrc":"35780:6:54","nodeType":"YulIdentifier","src":"35780:6:54"},"nativeSrc":"35780:37:54","nodeType":"YulFunctionCall","src":"35780:37:54"},"nativeSrc":"35780:37:54","nodeType":"YulExpressionStatement","src":"35780:37:54"},{"nativeSrc":"35826:27:54","nodeType":"YulAssignment","src":"35826:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"35838:9:54","nodeType":"YulIdentifier","src":"35838:9:54"},{"kind":"number","nativeSrc":"35849:3:54","nodeType":"YulLiteral","src":"35849:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"35834:3:54","nodeType":"YulIdentifier","src":"35834:3:54"},"nativeSrc":"35834:19:54","nodeType":"YulFunctionCall","src":"35834:19:54"},"variableNames":[{"name":"tail","nativeSrc":"35826:4:54","nodeType":"YulIdentifier","src":"35826:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35385:474:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35536:9:54","nodeType":"YulTypedName","src":"35536:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35550:4:54","nodeType":"YulTypedName","src":"35550:4:54","type":""}],"src":"35385:474:54"},{"body":{"nativeSrc":"36038:326:54","nodeType":"YulBlock","src":"36038:326:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36055:9:54","nodeType":"YulIdentifier","src":"36055:9:54"},{"kind":"number","nativeSrc":"36066:2:54","nodeType":"YulLiteral","src":"36066:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36048:6:54","nodeType":"YulIdentifier","src":"36048:6:54"},"nativeSrc":"36048:21:54","nodeType":"YulFunctionCall","src":"36048:21:54"},"nativeSrc":"36048:21:54","nodeType":"YulExpressionStatement","src":"36048:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36089:9:54","nodeType":"YulIdentifier","src":"36089:9:54"},{"kind":"number","nativeSrc":"36100:2:54","nodeType":"YulLiteral","src":"36100:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36085:3:54","nodeType":"YulIdentifier","src":"36085:3:54"},"nativeSrc":"36085:18:54","nodeType":"YulFunctionCall","src":"36085:18:54"},{"kind":"number","nativeSrc":"36105:2:54","nodeType":"YulLiteral","src":"36105:2:54","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"36078:6:54","nodeType":"YulIdentifier","src":"36078:6:54"},"nativeSrc":"36078:30:54","nodeType":"YulFunctionCall","src":"36078:30:54"},"nativeSrc":"36078:30:54","nodeType":"YulExpressionStatement","src":"36078:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36128:9:54","nodeType":"YulIdentifier","src":"36128:9:54"},{"kind":"number","nativeSrc":"36139:2:54","nodeType":"YulLiteral","src":"36139:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36124:3:54","nodeType":"YulIdentifier","src":"36124:3:54"},"nativeSrc":"36124:18:54","nodeType":"YulFunctionCall","src":"36124:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f","kind":"string","nativeSrc":"36144:34:54","nodeType":"YulLiteral","src":"36144:34:54","type":"","value":"OmnichainGovernanceExecutor::_no"}],"functionName":{"name":"mstore","nativeSrc":"36117:6:54","nodeType":"YulIdentifier","src":"36117:6:54"},"nativeSrc":"36117:62:54","nodeType":"YulFunctionCall","src":"36117:62:54"},"nativeSrc":"36117:62:54","nodeType":"YulExpressionStatement","src":"36117:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36199:9:54","nodeType":"YulIdentifier","src":"36199:9:54"},{"kind":"number","nativeSrc":"36210:2:54","nodeType":"YulLiteral","src":"36210:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36195:3:54","nodeType":"YulIdentifier","src":"36195:3:54"},"nativeSrc":"36195:18:54","nodeType":"YulFunctionCall","src":"36195:18:54"},{"hexValue":"6e626c6f636b696e674c7a526563656976653a2070726f706f73616c2066756e","kind":"string","nativeSrc":"36215:34:54","nodeType":"YulLiteral","src":"36215:34:54","type":"","value":"nblockingLzReceive: proposal fun"}],"functionName":{"name":"mstore","nativeSrc":"36188:6:54","nodeType":"YulIdentifier","src":"36188:6:54"},"nativeSrc":"36188:62:54","nodeType":"YulFunctionCall","src":"36188:62:54"},"nativeSrc":"36188:62:54","nodeType":"YulExpressionStatement","src":"36188:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36270:9:54","nodeType":"YulIdentifier","src":"36270:9:54"},{"kind":"number","nativeSrc":"36281:3:54","nodeType":"YulLiteral","src":"36281:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36266:3:54","nodeType":"YulIdentifier","src":"36266:3:54"},"nativeSrc":"36266:19:54","nodeType":"YulFunctionCall","src":"36266:19:54"},{"hexValue":"6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","kind":"string","nativeSrc":"36287:34:54","nodeType":"YulLiteral","src":"36287:34:54","type":"","value":"ction information arity mismatch"}],"functionName":{"name":"mstore","nativeSrc":"36259:6:54","nodeType":"YulIdentifier","src":"36259:6:54"},"nativeSrc":"36259:63:54","nodeType":"YulFunctionCall","src":"36259:63:54"},"nativeSrc":"36259:63:54","nodeType":"YulExpressionStatement","src":"36259:63:54"},{"nativeSrc":"36331:27:54","nodeType":"YulAssignment","src":"36331:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"36343:9:54","nodeType":"YulIdentifier","src":"36343:9:54"},{"kind":"number","nativeSrc":"36354:3:54","nodeType":"YulLiteral","src":"36354:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"36339:3:54","nodeType":"YulIdentifier","src":"36339:3:54"},"nativeSrc":"36339:19:54","nodeType":"YulFunctionCall","src":"36339:19:54"},"variableNames":[{"name":"tail","nativeSrc":"36331:4:54","nodeType":"YulIdentifier","src":"36331:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35864:500:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36015:9:54","nodeType":"YulTypedName","src":"36015:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36029:4:54","nodeType":"YulTypedName","src":"36029:4:54","type":""}],"src":"35864:500:54"},{"body":{"nativeSrc":"36543:303:54","nodeType":"YulBlock","src":"36543:303:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36560:9:54","nodeType":"YulIdentifier","src":"36560:9:54"},{"kind":"number","nativeSrc":"36571:2:54","nodeType":"YulLiteral","src":"36571:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36553:6:54","nodeType":"YulIdentifier","src":"36553:6:54"},"nativeSrc":"36553:21:54","nodeType":"YulFunctionCall","src":"36553:21:54"},"nativeSrc":"36553:21:54","nodeType":"YulExpressionStatement","src":"36553:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36594:9:54","nodeType":"YulIdentifier","src":"36594:9:54"},{"kind":"number","nativeSrc":"36605:2:54","nodeType":"YulLiteral","src":"36605:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36590:3:54","nodeType":"YulIdentifier","src":"36590:3:54"},"nativeSrc":"36590:18:54","nodeType":"YulFunctionCall","src":"36590:18:54"},{"kind":"number","nativeSrc":"36610:2:54","nodeType":"YulLiteral","src":"36610:2:54","type":"","value":"73"}],"functionName":{"name":"mstore","nativeSrc":"36583:6:54","nodeType":"YulIdentifier","src":"36583:6:54"},"nativeSrc":"36583:30:54","nodeType":"YulFunctionCall","src":"36583:30:54"},"nativeSrc":"36583:30:54","nodeType":"YulExpressionStatement","src":"36583:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36633:9:54","nodeType":"YulIdentifier","src":"36633:9:54"},{"kind":"number","nativeSrc":"36644:2:54","nodeType":"YulLiteral","src":"36644:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36629:3:54","nodeType":"YulIdentifier","src":"36629:3:54"},"nativeSrc":"36629:18:54","nodeType":"YulFunctionCall","src":"36629:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f","kind":"string","nativeSrc":"36649:34:54","nodeType":"YulLiteral","src":"36649:34:54","type":"","value":"OmnichainGovernanceExecutor::_no"}],"functionName":{"name":"mstore","nativeSrc":"36622:6:54","nodeType":"YulIdentifier","src":"36622:6:54"},"nativeSrc":"36622:62:54","nodeType":"YulFunctionCall","src":"36622:62:54"},"nativeSrc":"36622:62:54","nodeType":"YulExpressionStatement","src":"36622:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36704:9:54","nodeType":"YulIdentifier","src":"36704:9:54"},{"kind":"number","nativeSrc":"36715:2:54","nodeType":"YulLiteral","src":"36715:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36700:3:54","nodeType":"YulIdentifier","src":"36700:3:54"},"nativeSrc":"36700:18:54","nodeType":"YulFunctionCall","src":"36700:18:54"},{"hexValue":"6e626c6f636b696e674c7a526563656976653a20696e76616c69642070726f70","kind":"string","nativeSrc":"36720:34:54","nodeType":"YulLiteral","src":"36720:34:54","type":"","value":"nblockingLzReceive: invalid prop"}],"functionName":{"name":"mstore","nativeSrc":"36693:6:54","nodeType":"YulIdentifier","src":"36693:6:54"},"nativeSrc":"36693:62:54","nodeType":"YulFunctionCall","src":"36693:62:54"},"nativeSrc":"36693:62:54","nodeType":"YulExpressionStatement","src":"36693:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36775:9:54","nodeType":"YulIdentifier","src":"36775:9:54"},{"kind":"number","nativeSrc":"36786:3:54","nodeType":"YulLiteral","src":"36786:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"36771:3:54","nodeType":"YulIdentifier","src":"36771:3:54"},"nativeSrc":"36771:19:54","nodeType":"YulFunctionCall","src":"36771:19:54"},{"hexValue":"6f73616c2074797065","kind":"string","nativeSrc":"36792:11:54","nodeType":"YulLiteral","src":"36792:11:54","type":"","value":"osal type"}],"functionName":{"name":"mstore","nativeSrc":"36764:6:54","nodeType":"YulIdentifier","src":"36764:6:54"},"nativeSrc":"36764:40:54","nodeType":"YulFunctionCall","src":"36764:40:54"},"nativeSrc":"36764:40:54","nodeType":"YulExpressionStatement","src":"36764:40:54"},{"nativeSrc":"36813:27:54","nodeType":"YulAssignment","src":"36813:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"36825:9:54","nodeType":"YulIdentifier","src":"36825:9:54"},{"kind":"number","nativeSrc":"36836:3:54","nodeType":"YulLiteral","src":"36836:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"36821:3:54","nodeType":"YulIdentifier","src":"36821:3:54"},"nativeSrc":"36821:19:54","nodeType":"YulFunctionCall","src":"36821:19:54"},"variableNames":[{"name":"tail","nativeSrc":"36813:4:54","nodeType":"YulIdentifier","src":"36813:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36369:477:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36520:9:54","nodeType":"YulTypedName","src":"36520:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36534:4:54","nodeType":"YulTypedName","src":"36534:4:54","type":""}],"src":"36369:477:54"},{"body":{"nativeSrc":"36911:596:54","nodeType":"YulBlock","src":"36911:596:54","statements":[{"nativeSrc":"36921:16:54","nodeType":"YulVariableDeclaration","src":"36921:16:54","value":{"name":"pos","nativeSrc":"36934:3:54","nodeType":"YulIdentifier","src":"36934:3:54"},"variables":[{"name":"pos_1","nativeSrc":"36925:5:54","nodeType":"YulTypedName","src":"36925:5:54","type":""}]},{"nativeSrc":"36946:26:54","nodeType":"YulVariableDeclaration","src":"36946:26:54","value":{"arguments":[{"name":"value","nativeSrc":"36966:5:54","nodeType":"YulIdentifier","src":"36966:5:54"}],"functionName":{"name":"mload","nativeSrc":"36960:5:54","nodeType":"YulIdentifier","src":"36960:5:54"},"nativeSrc":"36960:12:54","nodeType":"YulFunctionCall","src":"36960:12:54"},"variables":[{"name":"length","nativeSrc":"36950:6:54","nodeType":"YulTypedName","src":"36950:6:54","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"36988:3:54","nodeType":"YulIdentifier","src":"36988:3:54"},{"name":"length","nativeSrc":"36993:6:54","nodeType":"YulIdentifier","src":"36993:6:54"}],"functionName":{"name":"mstore","nativeSrc":"36981:6:54","nodeType":"YulIdentifier","src":"36981:6:54"},"nativeSrc":"36981:19:54","nodeType":"YulFunctionCall","src":"36981:19:54"},"nativeSrc":"36981:19:54","nodeType":"YulExpressionStatement","src":"36981:19:54"},{"nativeSrc":"37009:14:54","nodeType":"YulVariableDeclaration","src":"37009:14:54","value":{"kind":"number","nativeSrc":"37019:4:54","nodeType":"YulLiteral","src":"37019:4:54","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"37013:2:54","nodeType":"YulTypedName","src":"37013:2:54","type":""}]},{"nativeSrc":"37032:21:54","nodeType":"YulAssignment","src":"37032:21:54","value":{"arguments":[{"name":"pos","nativeSrc":"37043:3:54","nodeType":"YulIdentifier","src":"37043:3:54"},{"kind":"number","nativeSrc":"37048:4:54","nodeType":"YulLiteral","src":"37048:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37039:3:54","nodeType":"YulIdentifier","src":"37039:3:54"},"nativeSrc":"37039:14:54","nodeType":"YulFunctionCall","src":"37039:14:54"},"variableNames":[{"name":"pos","nativeSrc":"37032:3:54","nodeType":"YulIdentifier","src":"37032:3:54"}]},{"nativeSrc":"37062:49:54","nodeType":"YulVariableDeclaration","src":"37062:49:54","value":{"arguments":[{"arguments":[{"name":"pos_1","nativeSrc":"37082:5:54","nodeType":"YulIdentifier","src":"37082:5:54"},{"arguments":[{"kind":"number","nativeSrc":"37093:1:54","nodeType":"YulLiteral","src":"37093:1:54","type":"","value":"5"},{"name":"length","nativeSrc":"37096:6:54","nodeType":"YulIdentifier","src":"37096:6:54"}],"functionName":{"name":"shl","nativeSrc":"37089:3:54","nodeType":"YulIdentifier","src":"37089:3:54"},"nativeSrc":"37089:14:54","nodeType":"YulFunctionCall","src":"37089:14:54"}],"functionName":{"name":"add","nativeSrc":"37078:3:54","nodeType":"YulIdentifier","src":"37078:3:54"},"nativeSrc":"37078:26:54","nodeType":"YulFunctionCall","src":"37078:26:54"},{"kind":"number","nativeSrc":"37106:4:54","nodeType":"YulLiteral","src":"37106:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37074:3:54","nodeType":"YulIdentifier","src":"37074:3:54"},"nativeSrc":"37074:37:54","nodeType":"YulFunctionCall","src":"37074:37:54"},"variables":[{"name":"tail","nativeSrc":"37066:4:54","nodeType":"YulTypedName","src":"37066:4:54","type":""}]},{"nativeSrc":"37120:30:54","nodeType":"YulVariableDeclaration","src":"37120:30:54","value":{"arguments":[{"name":"value","nativeSrc":"37138:5:54","nodeType":"YulIdentifier","src":"37138:5:54"},{"kind":"number","nativeSrc":"37145:4:54","nodeType":"YulLiteral","src":"37145:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37134:3:54","nodeType":"YulIdentifier","src":"37134:3:54"},"nativeSrc":"37134:16:54","nodeType":"YulFunctionCall","src":"37134:16:54"},"variables":[{"name":"srcPtr","nativeSrc":"37124:6:54","nodeType":"YulTypedName","src":"37124:6:54","type":""}]},{"nativeSrc":"37159:10:54","nodeType":"YulVariableDeclaration","src":"37159:10:54","value":{"kind":"number","nativeSrc":"37168:1:54","nodeType":"YulLiteral","src":"37168:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"37163:1:54","nodeType":"YulTypedName","src":"37163:1:54","type":""}]},{"body":{"nativeSrc":"37227:254:54","nodeType":"YulBlock","src":"37227:254:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"37248:3:54","nodeType":"YulIdentifier","src":"37248:3:54"},{"arguments":[{"arguments":[{"name":"tail","nativeSrc":"37261:4:54","nodeType":"YulIdentifier","src":"37261:4:54"},{"name":"pos_1","nativeSrc":"37267:5:54","nodeType":"YulIdentifier","src":"37267:5:54"}],"functionName":{"name":"sub","nativeSrc":"37257:3:54","nodeType":"YulIdentifier","src":"37257:3:54"},"nativeSrc":"37257:16:54","nodeType":"YulFunctionCall","src":"37257:16:54"},{"kind":"number","nativeSrc":"37275:66:54","nodeType":"YulLiteral","src":"37275:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"add","nativeSrc":"37253:3:54","nodeType":"YulIdentifier","src":"37253:3:54"},"nativeSrc":"37253:89:54","nodeType":"YulFunctionCall","src":"37253:89:54"}],"functionName":{"name":"mstore","nativeSrc":"37241:6:54","nodeType":"YulIdentifier","src":"37241:6:54"},"nativeSrc":"37241:102:54","nodeType":"YulFunctionCall","src":"37241:102:54"},"nativeSrc":"37241:102:54","nodeType":"YulExpressionStatement","src":"37241:102:54"},{"nativeSrc":"37356:45:54","nodeType":"YulAssignment","src":"37356:45:54","value":{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"37387:6:54","nodeType":"YulIdentifier","src":"37387:6:54"}],"functionName":{"name":"mload","nativeSrc":"37381:5:54","nodeType":"YulIdentifier","src":"37381:5:54"},"nativeSrc":"37381:13:54","nodeType":"YulFunctionCall","src":"37381:13:54"},{"name":"tail","nativeSrc":"37396:4:54","nodeType":"YulIdentifier","src":"37396:4:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"37364:16:54","nodeType":"YulIdentifier","src":"37364:16:54"},"nativeSrc":"37364:37:54","nodeType":"YulFunctionCall","src":"37364:37:54"},"variableNames":[{"name":"tail","nativeSrc":"37356:4:54","nodeType":"YulIdentifier","src":"37356:4:54"}]},{"nativeSrc":"37414:25:54","nodeType":"YulAssignment","src":"37414:25:54","value":{"arguments":[{"name":"srcPtr","nativeSrc":"37428:6:54","nodeType":"YulIdentifier","src":"37428:6:54"},{"name":"_1","nativeSrc":"37436:2:54","nodeType":"YulIdentifier","src":"37436:2:54"}],"functionName":{"name":"add","nativeSrc":"37424:3:54","nodeType":"YulIdentifier","src":"37424:3:54"},"nativeSrc":"37424:15:54","nodeType":"YulFunctionCall","src":"37424:15:54"},"variableNames":[{"name":"srcPtr","nativeSrc":"37414:6:54","nodeType":"YulIdentifier","src":"37414:6:54"}]},{"nativeSrc":"37452:19:54","nodeType":"YulAssignment","src":"37452:19:54","value":{"arguments":[{"name":"pos","nativeSrc":"37463:3:54","nodeType":"YulIdentifier","src":"37463:3:54"},{"name":"_1","nativeSrc":"37468:2:54","nodeType":"YulIdentifier","src":"37468:2:54"}],"functionName":{"name":"add","nativeSrc":"37459:3:54","nodeType":"YulIdentifier","src":"37459:3:54"},"nativeSrc":"37459:12:54","nodeType":"YulFunctionCall","src":"37459:12:54"},"variableNames":[{"name":"pos","nativeSrc":"37452:3:54","nodeType":"YulIdentifier","src":"37452:3:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"37189:1:54","nodeType":"YulIdentifier","src":"37189:1:54"},{"name":"length","nativeSrc":"37192:6:54","nodeType":"YulIdentifier","src":"37192:6:54"}],"functionName":{"name":"lt","nativeSrc":"37186:2:54","nodeType":"YulIdentifier","src":"37186:2:54"},"nativeSrc":"37186:13:54","nodeType":"YulFunctionCall","src":"37186:13:54"},"nativeSrc":"37178:303:54","nodeType":"YulForLoop","post":{"nativeSrc":"37200:18:54","nodeType":"YulBlock","src":"37200:18:54","statements":[{"nativeSrc":"37202:14:54","nodeType":"YulAssignment","src":"37202:14:54","value":{"arguments":[{"name":"i","nativeSrc":"37211:1:54","nodeType":"YulIdentifier","src":"37211:1:54"},{"kind":"number","nativeSrc":"37214:1:54","nodeType":"YulLiteral","src":"37214:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"37207:3:54","nodeType":"YulIdentifier","src":"37207:3:54"},"nativeSrc":"37207:9:54","nodeType":"YulFunctionCall","src":"37207:9:54"},"variableNames":[{"name":"i","nativeSrc":"37202:1:54","nodeType":"YulIdentifier","src":"37202:1:54"}]}]},"pre":{"nativeSrc":"37182:3:54","nodeType":"YulBlock","src":"37182:3:54","statements":[]},"src":"37178:303:54"},{"nativeSrc":"37490:11:54","nodeType":"YulAssignment","src":"37490:11:54","value":{"name":"tail","nativeSrc":"37497:4:54","nodeType":"YulIdentifier","src":"37497:4:54"},"variableNames":[{"name":"end","nativeSrc":"37490:3:54","nodeType":"YulIdentifier","src":"37490:3:54"}]}]},"name":"abi_encode_array_string_dyn","nativeSrc":"36851:656:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"36888:5:54","nodeType":"YulTypedName","src":"36888:5:54","type":""},{"name":"pos","nativeSrc":"36895:3:54","nodeType":"YulTypedName","src":"36895:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"36903:3:54","nodeType":"YulTypedName","src":"36903:3:54","type":""}],"src":"36851:656:54"},{"body":{"nativeSrc":"37959:1249:54","nodeType":"YulBlock","src":"37959:1249:54","statements":[{"nativeSrc":"37969:33:54","nodeType":"YulVariableDeclaration","src":"37969:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"37987:9:54","nodeType":"YulIdentifier","src":"37987:9:54"},{"kind":"number","nativeSrc":"37998:3:54","nodeType":"YulLiteral","src":"37998:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"37983:3:54","nodeType":"YulIdentifier","src":"37983:3:54"},"nativeSrc":"37983:19:54","nodeType":"YulFunctionCall","src":"37983:19:54"},"variables":[{"name":"tail_1","nativeSrc":"37973:6:54","nodeType":"YulTypedName","src":"37973:6:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"38018:9:54","nodeType":"YulIdentifier","src":"38018:9:54"},{"kind":"number","nativeSrc":"38029:3:54","nodeType":"YulLiteral","src":"38029:3:54","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"38011:6:54","nodeType":"YulIdentifier","src":"38011:6:54"},"nativeSrc":"38011:22:54","nodeType":"YulFunctionCall","src":"38011:22:54"},"nativeSrc":"38011:22:54","nodeType":"YulExpressionStatement","src":"38011:22:54"},{"nativeSrc":"38042:17:54","nodeType":"YulVariableDeclaration","src":"38042:17:54","value":{"name":"tail_1","nativeSrc":"38053:6:54","nodeType":"YulIdentifier","src":"38053:6:54"},"variables":[{"name":"pos","nativeSrc":"38046:3:54","nodeType":"YulTypedName","src":"38046:3:54","type":""}]},{"nativeSrc":"38068:27:54","nodeType":"YulVariableDeclaration","src":"38068:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"38088:6:54","nodeType":"YulIdentifier","src":"38088:6:54"}],"functionName":{"name":"mload","nativeSrc":"38082:5:54","nodeType":"YulIdentifier","src":"38082:5:54"},"nativeSrc":"38082:13:54","nodeType":"YulFunctionCall","src":"38082:13:54"},"variables":[{"name":"length","nativeSrc":"38072:6:54","nodeType":"YulTypedName","src":"38072:6:54","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"38111:6:54","nodeType":"YulIdentifier","src":"38111:6:54"},{"name":"length","nativeSrc":"38119:6:54","nodeType":"YulIdentifier","src":"38119:6:54"}],"functionName":{"name":"mstore","nativeSrc":"38104:6:54","nodeType":"YulIdentifier","src":"38104:6:54"},"nativeSrc":"38104:22:54","nodeType":"YulFunctionCall","src":"38104:22:54"},"nativeSrc":"38104:22:54","nodeType":"YulExpressionStatement","src":"38104:22:54"},{"nativeSrc":"38135:26:54","nodeType":"YulAssignment","src":"38135:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"38146:9:54","nodeType":"YulIdentifier","src":"38146:9:54"},{"kind":"number","nativeSrc":"38157:3:54","nodeType":"YulLiteral","src":"38157:3:54","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"38142:3:54","nodeType":"YulIdentifier","src":"38142:3:54"},"nativeSrc":"38142:19:54","nodeType":"YulFunctionCall","src":"38142:19:54"},"variableNames":[{"name":"pos","nativeSrc":"38135:3:54","nodeType":"YulIdentifier","src":"38135:3:54"}]},{"nativeSrc":"38170:14:54","nodeType":"YulVariableDeclaration","src":"38170:14:54","value":{"kind":"number","nativeSrc":"38180:4:54","nodeType":"YulLiteral","src":"38180:4:54","type":"","value":"0x20"},"variables":[{"name":"_1","nativeSrc":"38174:2:54","nodeType":"YulTypedName","src":"38174:2:54","type":""}]},{"nativeSrc":"38193:29:54","nodeType":"YulVariableDeclaration","src":"38193:29:54","value":{"arguments":[{"name":"value0","nativeSrc":"38211:6:54","nodeType":"YulIdentifier","src":"38211:6:54"},{"name":"_1","nativeSrc":"38219:2:54","nodeType":"YulIdentifier","src":"38219:2:54"}],"functionName":{"name":"add","nativeSrc":"38207:3:54","nodeType":"YulIdentifier","src":"38207:3:54"},"nativeSrc":"38207:15:54","nodeType":"YulFunctionCall","src":"38207:15:54"},"variables":[{"name":"srcPtr","nativeSrc":"38197:6:54","nodeType":"YulTypedName","src":"38197:6:54","type":""}]},{"nativeSrc":"38231:10:54","nodeType":"YulVariableDeclaration","src":"38231:10:54","value":{"kind":"number","nativeSrc":"38240:1:54","nodeType":"YulLiteral","src":"38240:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"38235:1:54","nodeType":"YulTypedName","src":"38235:1:54","type":""}]},{"body":{"nativeSrc":"38299:169:54","nodeType":"YulBlock","src":"38299:169:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"38320:3:54","nodeType":"YulIdentifier","src":"38320:3:54"},{"arguments":[{"arguments":[{"name":"srcPtr","nativeSrc":"38335:6:54","nodeType":"YulIdentifier","src":"38335:6:54"}],"functionName":{"name":"mload","nativeSrc":"38329:5:54","nodeType":"YulIdentifier","src":"38329:5:54"},"nativeSrc":"38329:13:54","nodeType":"YulFunctionCall","src":"38329:13:54"},{"kind":"number","nativeSrc":"38344:42:54","nodeType":"YulLiteral","src":"38344:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"38325:3:54","nodeType":"YulIdentifier","src":"38325:3:54"},"nativeSrc":"38325:62:54","nodeType":"YulFunctionCall","src":"38325:62:54"}],"functionName":{"name":"mstore","nativeSrc":"38313:6:54","nodeType":"YulIdentifier","src":"38313:6:54"},"nativeSrc":"38313:75:54","nodeType":"YulFunctionCall","src":"38313:75:54"},"nativeSrc":"38313:75:54","nodeType":"YulExpressionStatement","src":"38313:75:54"},{"nativeSrc":"38401:19:54","nodeType":"YulAssignment","src":"38401:19:54","value":{"arguments":[{"name":"pos","nativeSrc":"38412:3:54","nodeType":"YulIdentifier","src":"38412:3:54"},{"name":"_1","nativeSrc":"38417:2:54","nodeType":"YulIdentifier","src":"38417:2:54"}],"functionName":{"name":"add","nativeSrc":"38408:3:54","nodeType":"YulIdentifier","src":"38408:3:54"},"nativeSrc":"38408:12:54","nodeType":"YulFunctionCall","src":"38408:12:54"},"variableNames":[{"name":"pos","nativeSrc":"38401:3:54","nodeType":"YulIdentifier","src":"38401:3:54"}]},{"nativeSrc":"38433:25:54","nodeType":"YulAssignment","src":"38433:25:54","value":{"arguments":[{"name":"srcPtr","nativeSrc":"38447:6:54","nodeType":"YulIdentifier","src":"38447:6:54"},{"name":"_1","nativeSrc":"38455:2:54","nodeType":"YulIdentifier","src":"38455:2:54"}],"functionName":{"name":"add","nativeSrc":"38443:3:54","nodeType":"YulIdentifier","src":"38443:3:54"},"nativeSrc":"38443:15:54","nodeType":"YulFunctionCall","src":"38443:15:54"},"variableNames":[{"name":"srcPtr","nativeSrc":"38433:6:54","nodeType":"YulIdentifier","src":"38433:6:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"38261:1:54","nodeType":"YulIdentifier","src":"38261:1:54"},{"name":"length","nativeSrc":"38264:6:54","nodeType":"YulIdentifier","src":"38264:6:54"}],"functionName":{"name":"lt","nativeSrc":"38258:2:54","nodeType":"YulIdentifier","src":"38258:2:54"},"nativeSrc":"38258:13:54","nodeType":"YulFunctionCall","src":"38258:13:54"},"nativeSrc":"38250:218:54","nodeType":"YulForLoop","post":{"nativeSrc":"38272:18:54","nodeType":"YulBlock","src":"38272:18:54","statements":[{"nativeSrc":"38274:14:54","nodeType":"YulAssignment","src":"38274:14:54","value":{"arguments":[{"name":"i","nativeSrc":"38283:1:54","nodeType":"YulIdentifier","src":"38283:1:54"},{"kind":"number","nativeSrc":"38286:1:54","nodeType":"YulLiteral","src":"38286:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"38279:3:54","nodeType":"YulIdentifier","src":"38279:3:54"},"nativeSrc":"38279:9:54","nodeType":"YulFunctionCall","src":"38279:9:54"},"variableNames":[{"name":"i","nativeSrc":"38274:1:54","nodeType":"YulIdentifier","src":"38274:1:54"}]}]},"pre":{"nativeSrc":"38254:3:54","nodeType":"YulBlock","src":"38254:3:54","statements":[]},"src":"38250:218:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38488:9:54","nodeType":"YulIdentifier","src":"38488:9:54"},{"name":"_1","nativeSrc":"38499:2:54","nodeType":"YulIdentifier","src":"38499:2:54"}],"functionName":{"name":"add","nativeSrc":"38484:3:54","nodeType":"YulIdentifier","src":"38484:3:54"},"nativeSrc":"38484:18:54","nodeType":"YulFunctionCall","src":"38484:18:54"},{"arguments":[{"name":"pos","nativeSrc":"38508:3:54","nodeType":"YulIdentifier","src":"38508:3:54"},{"name":"headStart","nativeSrc":"38513:9:54","nodeType":"YulIdentifier","src":"38513:9:54"}],"functionName":{"name":"sub","nativeSrc":"38504:3:54","nodeType":"YulIdentifier","src":"38504:3:54"},"nativeSrc":"38504:19:54","nodeType":"YulFunctionCall","src":"38504:19:54"}],"functionName":{"name":"mstore","nativeSrc":"38477:6:54","nodeType":"YulIdentifier","src":"38477:6:54"},"nativeSrc":"38477:47:54","nodeType":"YulFunctionCall","src":"38477:47:54"},"nativeSrc":"38477:47:54","nodeType":"YulExpressionStatement","src":"38477:47:54"},{"nativeSrc":"38533:16:54","nodeType":"YulVariableDeclaration","src":"38533:16:54","value":{"name":"pos","nativeSrc":"38546:3:54","nodeType":"YulIdentifier","src":"38546:3:54"},"variables":[{"name":"pos_1","nativeSrc":"38537:5:54","nodeType":"YulTypedName","src":"38537:5:54","type":""}]},{"nativeSrc":"38558:29:54","nodeType":"YulVariableDeclaration","src":"38558:29:54","value":{"arguments":[{"name":"value1","nativeSrc":"38580:6:54","nodeType":"YulIdentifier","src":"38580:6:54"}],"functionName":{"name":"mload","nativeSrc":"38574:5:54","nodeType":"YulIdentifier","src":"38574:5:54"},"nativeSrc":"38574:13:54","nodeType":"YulFunctionCall","src":"38574:13:54"},"variables":[{"name":"length_1","nativeSrc":"38562:8:54","nodeType":"YulTypedName","src":"38562:8:54","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"38603:3:54","nodeType":"YulIdentifier","src":"38603:3:54"},{"name":"length_1","nativeSrc":"38608:8:54","nodeType":"YulIdentifier","src":"38608:8:54"}],"functionName":{"name":"mstore","nativeSrc":"38596:6:54","nodeType":"YulIdentifier","src":"38596:6:54"},"nativeSrc":"38596:21:54","nodeType":"YulFunctionCall","src":"38596:21:54"},"nativeSrc":"38596:21:54","nodeType":"YulExpressionStatement","src":"38596:21:54"},{"nativeSrc":"38626:21:54","nodeType":"YulAssignment","src":"38626:21:54","value":{"arguments":[{"name":"pos","nativeSrc":"38639:3:54","nodeType":"YulIdentifier","src":"38639:3:54"},{"name":"_1","nativeSrc":"38644:2:54","nodeType":"YulIdentifier","src":"38644:2:54"}],"functionName":{"name":"add","nativeSrc":"38635:3:54","nodeType":"YulIdentifier","src":"38635:3:54"},"nativeSrc":"38635:12:54","nodeType":"YulFunctionCall","src":"38635:12:54"},"variableNames":[{"name":"pos_1","nativeSrc":"38626:5:54","nodeType":"YulIdentifier","src":"38626:5:54"}]},{"nativeSrc":"38656:31:54","nodeType":"YulVariableDeclaration","src":"38656:31:54","value":{"arguments":[{"name":"value1","nativeSrc":"38676:6:54","nodeType":"YulIdentifier","src":"38676:6:54"},{"name":"_1","nativeSrc":"38684:2:54","nodeType":"YulIdentifier","src":"38684:2:54"}],"functionName":{"name":"add","nativeSrc":"38672:3:54","nodeType":"YulIdentifier","src":"38672:3:54"},"nativeSrc":"38672:15:54","nodeType":"YulFunctionCall","src":"38672:15:54"},"variables":[{"name":"srcPtr_1","nativeSrc":"38660:8:54","nodeType":"YulTypedName","src":"38660:8:54","type":""}]},{"nativeSrc":"38696:12:54","nodeType":"YulVariableDeclaration","src":"38696:12:54","value":{"kind":"number","nativeSrc":"38707:1:54","nodeType":"YulLiteral","src":"38707:1:54","type":"","value":"0"},"variables":[{"name":"i_1","nativeSrc":"38700:3:54","nodeType":"YulTypedName","src":"38700:3:54","type":""}]},{"body":{"nativeSrc":"38774:132:54","nodeType":"YulBlock","src":"38774:132:54","statements":[{"expression":{"arguments":[{"name":"pos_1","nativeSrc":"38795:5:54","nodeType":"YulIdentifier","src":"38795:5:54"},{"arguments":[{"name":"srcPtr_1","nativeSrc":"38808:8:54","nodeType":"YulIdentifier","src":"38808:8:54"}],"functionName":{"name":"mload","nativeSrc":"38802:5:54","nodeType":"YulIdentifier","src":"38802:5:54"},"nativeSrc":"38802:15:54","nodeType":"YulFunctionCall","src":"38802:15:54"}],"functionName":{"name":"mstore","nativeSrc":"38788:6:54","nodeType":"YulIdentifier","src":"38788:6:54"},"nativeSrc":"38788:30:54","nodeType":"YulFunctionCall","src":"38788:30:54"},"nativeSrc":"38788:30:54","nodeType":"YulExpressionStatement","src":"38788:30:54"},{"nativeSrc":"38831:23:54","nodeType":"YulAssignment","src":"38831:23:54","value":{"arguments":[{"name":"pos_1","nativeSrc":"38844:5:54","nodeType":"YulIdentifier","src":"38844:5:54"},{"name":"_1","nativeSrc":"38851:2:54","nodeType":"YulIdentifier","src":"38851:2:54"}],"functionName":{"name":"add","nativeSrc":"38840:3:54","nodeType":"YulIdentifier","src":"38840:3:54"},"nativeSrc":"38840:14:54","nodeType":"YulFunctionCall","src":"38840:14:54"},"variableNames":[{"name":"pos_1","nativeSrc":"38831:5:54","nodeType":"YulIdentifier","src":"38831:5:54"}]},{"nativeSrc":"38867:29:54","nodeType":"YulAssignment","src":"38867:29:54","value":{"arguments":[{"name":"srcPtr_1","nativeSrc":"38883:8:54","nodeType":"YulIdentifier","src":"38883:8:54"},{"name":"_1","nativeSrc":"38893:2:54","nodeType":"YulIdentifier","src":"38893:2:54"}],"functionName":{"name":"add","nativeSrc":"38879:3:54","nodeType":"YulIdentifier","src":"38879:3:54"},"nativeSrc":"38879:17:54","nodeType":"YulFunctionCall","src":"38879:17:54"},"variableNames":[{"name":"srcPtr_1","nativeSrc":"38867:8:54","nodeType":"YulIdentifier","src":"38867:8:54"}]}]},"condition":{"arguments":[{"name":"i_1","nativeSrc":"38728:3:54","nodeType":"YulIdentifier","src":"38728:3:54"},{"name":"length_1","nativeSrc":"38733:8:54","nodeType":"YulIdentifier","src":"38733:8:54"}],"functionName":{"name":"lt","nativeSrc":"38725:2:54","nodeType":"YulIdentifier","src":"38725:2:54"},"nativeSrc":"38725:17:54","nodeType":"YulFunctionCall","src":"38725:17:54"},"nativeSrc":"38717:189:54","nodeType":"YulForLoop","post":{"nativeSrc":"38743:22:54","nodeType":"YulBlock","src":"38743:22:54","statements":[{"nativeSrc":"38745:18:54","nodeType":"YulAssignment","src":"38745:18:54","value":{"arguments":[{"name":"i_1","nativeSrc":"38756:3:54","nodeType":"YulIdentifier","src":"38756:3:54"},{"kind":"number","nativeSrc":"38761:1:54","nodeType":"YulLiteral","src":"38761:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"38752:3:54","nodeType":"YulIdentifier","src":"38752:3:54"},"nativeSrc":"38752:11:54","nodeType":"YulFunctionCall","src":"38752:11:54"},"variableNames":[{"name":"i_1","nativeSrc":"38745:3:54","nodeType":"YulIdentifier","src":"38745:3:54"}]}]},"pre":{"nativeSrc":"38721:3:54","nodeType":"YulBlock","src":"38721:3:54","statements":[]},"src":"38717:189:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38926:9:54","nodeType":"YulIdentifier","src":"38926:9:54"},{"kind":"number","nativeSrc":"38937:2:54","nodeType":"YulLiteral","src":"38937:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38922:3:54","nodeType":"YulIdentifier","src":"38922:3:54"},"nativeSrc":"38922:18:54","nodeType":"YulFunctionCall","src":"38922:18:54"},{"arguments":[{"name":"pos_1","nativeSrc":"38946:5:54","nodeType":"YulIdentifier","src":"38946:5:54"},{"name":"headStart","nativeSrc":"38953:9:54","nodeType":"YulIdentifier","src":"38953:9:54"}],"functionName":{"name":"sub","nativeSrc":"38942:3:54","nodeType":"YulIdentifier","src":"38942:3:54"},"nativeSrc":"38942:21:54","nodeType":"YulFunctionCall","src":"38942:21:54"}],"functionName":{"name":"mstore","nativeSrc":"38915:6:54","nodeType":"YulIdentifier","src":"38915:6:54"},"nativeSrc":"38915:49:54","nodeType":"YulFunctionCall","src":"38915:49:54"},"nativeSrc":"38915:49:54","nodeType":"YulExpressionStatement","src":"38915:49:54"},{"nativeSrc":"38973:56:54","nodeType":"YulVariableDeclaration","src":"38973:56:54","value":{"arguments":[{"name":"value2","nativeSrc":"39015:6:54","nodeType":"YulIdentifier","src":"39015:6:54"},{"name":"pos_1","nativeSrc":"39023:5:54","nodeType":"YulIdentifier","src":"39023:5:54"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"38987:27:54","nodeType":"YulIdentifier","src":"38987:27:54"},"nativeSrc":"38987:42:54","nodeType":"YulFunctionCall","src":"38987:42:54"},"variables":[{"name":"tail_2","nativeSrc":"38977:6:54","nodeType":"YulTypedName","src":"38977:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39049:9:54","nodeType":"YulIdentifier","src":"39049:9:54"},{"kind":"number","nativeSrc":"39060:2:54","nodeType":"YulLiteral","src":"39060:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39045:3:54","nodeType":"YulIdentifier","src":"39045:3:54"},"nativeSrc":"39045:18:54","nodeType":"YulFunctionCall","src":"39045:18:54"},{"arguments":[{"name":"tail_2","nativeSrc":"39069:6:54","nodeType":"YulIdentifier","src":"39069:6:54"},{"name":"headStart","nativeSrc":"39077:9:54","nodeType":"YulIdentifier","src":"39077:9:54"}],"functionName":{"name":"sub","nativeSrc":"39065:3:54","nodeType":"YulIdentifier","src":"39065:3:54"},"nativeSrc":"39065:22:54","nodeType":"YulFunctionCall","src":"39065:22:54"}],"functionName":{"name":"mstore","nativeSrc":"39038:6:54","nodeType":"YulIdentifier","src":"39038:6:54"},"nativeSrc":"39038:50:54","nodeType":"YulFunctionCall","src":"39038:50:54"},"nativeSrc":"39038:50:54","nodeType":"YulExpressionStatement","src":"39038:50:54"},{"nativeSrc":"39097:51:54","nodeType":"YulAssignment","src":"39097:51:54","value":{"arguments":[{"name":"value3","nativeSrc":"39133:6:54","nodeType":"YulIdentifier","src":"39133:6:54"},{"name":"tail_2","nativeSrc":"39141:6:54","nodeType":"YulIdentifier","src":"39141:6:54"}],"functionName":{"name":"abi_encode_array_string_dyn","nativeSrc":"39105:27:54","nodeType":"YulIdentifier","src":"39105:27:54"},"nativeSrc":"39105:43:54","nodeType":"YulFunctionCall","src":"39105:43:54"},"variableNames":[{"name":"tail","nativeSrc":"39097:4:54","nodeType":"YulIdentifier","src":"39097:4:54"}]},{"expression":{"arguments":[{"name":"value4","nativeSrc":"39174:6:54","nodeType":"YulIdentifier","src":"39174:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"39186:9:54","nodeType":"YulIdentifier","src":"39186:9:54"},{"kind":"number","nativeSrc":"39197:3:54","nodeType":"YulLiteral","src":"39197:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"39182:3:54","nodeType":"YulIdentifier","src":"39182:3:54"},"nativeSrc":"39182:19:54","nodeType":"YulFunctionCall","src":"39182:19:54"}],"functionName":{"name":"abi_encode_uint8","nativeSrc":"39157:16:54","nodeType":"YulIdentifier","src":"39157:16:54"},"nativeSrc":"39157:45:54","nodeType":"YulFunctionCall","src":"39157:45:54"},"nativeSrc":"39157:45:54","nodeType":"YulExpressionStatement","src":"39157:45:54"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__fromStack_reversed","nativeSrc":"37512:1696:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37896:9:54","nodeType":"YulTypedName","src":"37896:9:54","type":""},{"name":"value4","nativeSrc":"37907:6:54","nodeType":"YulTypedName","src":"37907:6:54","type":""},{"name":"value3","nativeSrc":"37915:6:54","nodeType":"YulTypedName","src":"37915:6:54","type":""},{"name":"value2","nativeSrc":"37923:6:54","nodeType":"YulTypedName","src":"37923:6:54","type":""},{"name":"value1","nativeSrc":"37931:6:54","nodeType":"YulTypedName","src":"37931:6:54","type":""},{"name":"value0","nativeSrc":"37939:6:54","nodeType":"YulTypedName","src":"37939:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37950:4:54","nodeType":"YulTypedName","src":"37950:4:54","type":""}],"src":"37512:1696:54"},{"body":{"nativeSrc":"39261:77:54","nodeType":"YulBlock","src":"39261:77:54","statements":[{"nativeSrc":"39271:16:54","nodeType":"YulAssignment","src":"39271:16:54","value":{"arguments":[{"name":"x","nativeSrc":"39282:1:54","nodeType":"YulIdentifier","src":"39282:1:54"},{"name":"y","nativeSrc":"39285:1:54","nodeType":"YulIdentifier","src":"39285:1:54"}],"functionName":{"name":"add","nativeSrc":"39278:3:54","nodeType":"YulIdentifier","src":"39278:3:54"},"nativeSrc":"39278:9:54","nodeType":"YulFunctionCall","src":"39278:9:54"},"variableNames":[{"name":"sum","nativeSrc":"39271:3:54","nodeType":"YulIdentifier","src":"39271:3:54"}]},{"body":{"nativeSrc":"39310:22:54","nodeType":"YulBlock","src":"39310:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"39312:16:54","nodeType":"YulIdentifier","src":"39312:16:54"},"nativeSrc":"39312:18:54","nodeType":"YulFunctionCall","src":"39312:18:54"},"nativeSrc":"39312:18:54","nodeType":"YulExpressionStatement","src":"39312:18:54"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"39302:1:54","nodeType":"YulIdentifier","src":"39302:1:54"},{"name":"sum","nativeSrc":"39305:3:54","nodeType":"YulIdentifier","src":"39305:3:54"}],"functionName":{"name":"gt","nativeSrc":"39299:2:54","nodeType":"YulIdentifier","src":"39299:2:54"},"nativeSrc":"39299:10:54","nodeType":"YulFunctionCall","src":"39299:10:54"},"nativeSrc":"39296:36:54","nodeType":"YulIf","src":"39296:36:54"}]},"name":"checked_add_t_uint256","nativeSrc":"39213:125:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"39244:1:54","nodeType":"YulTypedName","src":"39244:1:54","type":""},{"name":"y","nativeSrc":"39247:1:54","nodeType":"YulTypedName","src":"39247:1:54","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"39253:3:54","nodeType":"YulTypedName","src":"39253:3:54","type":""}],"src":"39213:125:54"},{"body":{"nativeSrc":"39517:164:54","nodeType":"YulBlock","src":"39517:164:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39534:9:54","nodeType":"YulIdentifier","src":"39534:9:54"},{"kind":"number","nativeSrc":"39545:2:54","nodeType":"YulLiteral","src":"39545:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39527:6:54","nodeType":"YulIdentifier","src":"39527:6:54"},"nativeSrc":"39527:21:54","nodeType":"YulFunctionCall","src":"39527:21:54"},"nativeSrc":"39527:21:54","nodeType":"YulExpressionStatement","src":"39527:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39568:9:54","nodeType":"YulIdentifier","src":"39568:9:54"},{"kind":"number","nativeSrc":"39579:2:54","nodeType":"YulLiteral","src":"39579:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39564:3:54","nodeType":"YulIdentifier","src":"39564:3:54"},"nativeSrc":"39564:18:54","nodeType":"YulFunctionCall","src":"39564:18:54"},{"kind":"number","nativeSrc":"39584:2:54","nodeType":"YulLiteral","src":"39584:2:54","type":"","value":"14"}],"functionName":{"name":"mstore","nativeSrc":"39557:6:54","nodeType":"YulIdentifier","src":"39557:6:54"},"nativeSrc":"39557:30:54","nodeType":"YulFunctionCall","src":"39557:30:54"},"nativeSrc":"39557:30:54","nodeType":"YulExpressionStatement","src":"39557:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39607:9:54","nodeType":"YulIdentifier","src":"39607:9:54"},{"kind":"number","nativeSrc":"39618:2:54","nodeType":"YulLiteral","src":"39618:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39603:3:54","nodeType":"YulIdentifier","src":"39603:3:54"},"nativeSrc":"39603:18:54","nodeType":"YulFunctionCall","src":"39603:18:54"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nativeSrc":"39623:16:54","nodeType":"YulLiteral","src":"39623:16:54","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nativeSrc":"39596:6:54","nodeType":"YulIdentifier","src":"39596:6:54"},"nativeSrc":"39596:44:54","nodeType":"YulFunctionCall","src":"39596:44:54"},"nativeSrc":"39596:44:54","nodeType":"YulExpressionStatement","src":"39596:44:54"},{"nativeSrc":"39649:26:54","nodeType":"YulAssignment","src":"39649:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"39661:9:54","nodeType":"YulIdentifier","src":"39661:9:54"},{"kind":"number","nativeSrc":"39672:2:54","nodeType":"YulLiteral","src":"39672:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"39657:3:54","nodeType":"YulIdentifier","src":"39657:3:54"},"nativeSrc":"39657:18:54","nodeType":"YulFunctionCall","src":"39657:18:54"},"variableNames":[{"name":"tail","nativeSrc":"39649:4:54","nodeType":"YulIdentifier","src":"39649:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39343:338:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39494:9:54","nodeType":"YulTypedName","src":"39494:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39508:4:54","nodeType":"YulTypedName","src":"39508:4:54","type":""}],"src":"39343:338:54"},{"body":{"nativeSrc":"39860:167:54","nodeType":"YulBlock","src":"39860:167:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"39877:9:54","nodeType":"YulIdentifier","src":"39877:9:54"},{"kind":"number","nativeSrc":"39888:2:54","nodeType":"YulLiteral","src":"39888:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"39870:6:54","nodeType":"YulIdentifier","src":"39870:6:54"},"nativeSrc":"39870:21:54","nodeType":"YulFunctionCall","src":"39870:21:54"},"nativeSrc":"39870:21:54","nodeType":"YulExpressionStatement","src":"39870:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39911:9:54","nodeType":"YulIdentifier","src":"39911:9:54"},{"kind":"number","nativeSrc":"39922:2:54","nodeType":"YulLiteral","src":"39922:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39907:3:54","nodeType":"YulIdentifier","src":"39907:3:54"},"nativeSrc":"39907:18:54","nodeType":"YulFunctionCall","src":"39907:18:54"},{"kind":"number","nativeSrc":"39927:2:54","nodeType":"YulLiteral","src":"39927:2:54","type":"","value":"17"}],"functionName":{"name":"mstore","nativeSrc":"39900:6:54","nodeType":"YulIdentifier","src":"39900:6:54"},"nativeSrc":"39900:30:54","nodeType":"YulFunctionCall","src":"39900:30:54"},"nativeSrc":"39900:30:54","nodeType":"YulExpressionStatement","src":"39900:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39950:9:54","nodeType":"YulIdentifier","src":"39950:9:54"},{"kind":"number","nativeSrc":"39961:2:54","nodeType":"YulLiteral","src":"39961:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39946:3:54","nodeType":"YulIdentifier","src":"39946:3:54"},"nativeSrc":"39946:18:54","nodeType":"YulFunctionCall","src":"39946:18:54"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nativeSrc":"39966:19:54","nodeType":"YulLiteral","src":"39966:19:54","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"39939:6:54","nodeType":"YulIdentifier","src":"39939:6:54"},"nativeSrc":"39939:47:54","nodeType":"YulFunctionCall","src":"39939:47:54"},"nativeSrc":"39939:47:54","nodeType":"YulExpressionStatement","src":"39939:47:54"},{"nativeSrc":"39995:26:54","nodeType":"YulAssignment","src":"39995:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"40007:9:54","nodeType":"YulIdentifier","src":"40007:9:54"},{"kind":"number","nativeSrc":"40018:2:54","nodeType":"YulLiteral","src":"40018:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40003:3:54","nodeType":"YulIdentifier","src":"40003:3:54"},"nativeSrc":"40003:18:54","nodeType":"YulFunctionCall","src":"40003:18:54"},"variableNames":[{"name":"tail","nativeSrc":"39995:4:54","nodeType":"YulIdentifier","src":"39995:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39686:341:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39837:9:54","nodeType":"YulTypedName","src":"39837:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39851:4:54","nodeType":"YulTypedName","src":"39851:4:54","type":""}],"src":"39686:341:54"},{"body":{"nativeSrc":"40206:181:54","nodeType":"YulBlock","src":"40206:181:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40223:9:54","nodeType":"YulIdentifier","src":"40223:9:54"},{"kind":"number","nativeSrc":"40234:2:54","nodeType":"YulLiteral","src":"40234:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40216:6:54","nodeType":"YulIdentifier","src":"40216:6:54"},"nativeSrc":"40216:21:54","nodeType":"YulFunctionCall","src":"40216:21:54"},"nativeSrc":"40216:21:54","nodeType":"YulExpressionStatement","src":"40216:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40257:9:54","nodeType":"YulIdentifier","src":"40257:9:54"},{"kind":"number","nativeSrc":"40268:2:54","nodeType":"YulLiteral","src":"40268:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40253:3:54","nodeType":"YulIdentifier","src":"40253:3:54"},"nativeSrc":"40253:18:54","nodeType":"YulFunctionCall","src":"40253:18:54"},{"kind":"number","nativeSrc":"40273:2:54","nodeType":"YulLiteral","src":"40273:2:54","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"40246:6:54","nodeType":"YulIdentifier","src":"40246:6:54"},"nativeSrc":"40246:30:54","nodeType":"YulFunctionCall","src":"40246:30:54"},"nativeSrc":"40246:30:54","nodeType":"YulExpressionStatement","src":"40246:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40296:9:54","nodeType":"YulIdentifier","src":"40296:9:54"},{"kind":"number","nativeSrc":"40307:2:54","nodeType":"YulLiteral","src":"40307:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40292:3:54","nodeType":"YulIdentifier","src":"40292:3:54"},"nativeSrc":"40292:18:54","nodeType":"YulFunctionCall","src":"40292:18:54"},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","kind":"string","nativeSrc":"40312:33:54","nodeType":"YulLiteral","src":"40312:33:54","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nativeSrc":"40285:6:54","nodeType":"YulIdentifier","src":"40285:6:54"},"nativeSrc":"40285:61:54","nodeType":"YulFunctionCall","src":"40285:61:54"},"nativeSrc":"40285:61:54","nodeType":"YulExpressionStatement","src":"40285:61:54"},{"nativeSrc":"40355:26:54","nodeType":"YulAssignment","src":"40355:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"40367:9:54","nodeType":"YulIdentifier","src":"40367:9:54"},{"kind":"number","nativeSrc":"40378:2:54","nodeType":"YulLiteral","src":"40378:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40363:3:54","nodeType":"YulIdentifier","src":"40363:3:54"},"nativeSrc":"40363:18:54","nodeType":"YulFunctionCall","src":"40363:18:54"},"variableNames":[{"name":"tail","nativeSrc":"40355:4:54","nodeType":"YulIdentifier","src":"40355:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40032:355:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40183:9:54","nodeType":"YulTypedName","src":"40183:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40197:4:54","nodeType":"YulTypedName","src":"40197:4:54","type":""}],"src":"40032:355:54"},{"body":{"nativeSrc":"40566:225:54","nodeType":"YulBlock","src":"40566:225:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40583:9:54","nodeType":"YulIdentifier","src":"40583:9:54"},{"kind":"number","nativeSrc":"40594:2:54","nodeType":"YulLiteral","src":"40594:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40576:6:54","nodeType":"YulIdentifier","src":"40576:6:54"},"nativeSrc":"40576:21:54","nodeType":"YulFunctionCall","src":"40576:21:54"},"nativeSrc":"40576:21:54","nodeType":"YulExpressionStatement","src":"40576:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40617:9:54","nodeType":"YulIdentifier","src":"40617:9:54"},{"kind":"number","nativeSrc":"40628:2:54","nodeType":"YulLiteral","src":"40628:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40613:3:54","nodeType":"YulIdentifier","src":"40613:3:54"},"nativeSrc":"40613:18:54","nodeType":"YulFunctionCall","src":"40613:18:54"},{"kind":"number","nativeSrc":"40633:2:54","nodeType":"YulLiteral","src":"40633:2:54","type":"","value":"35"}],"functionName":{"name":"mstore","nativeSrc":"40606:6:54","nodeType":"YulIdentifier","src":"40606:6:54"},"nativeSrc":"40606:30:54","nodeType":"YulFunctionCall","src":"40606:30:54"},"nativeSrc":"40606:30:54","nodeType":"YulExpressionStatement","src":"40606:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40656:9:54","nodeType":"YulIdentifier","src":"40656:9:54"},{"kind":"number","nativeSrc":"40667:2:54","nodeType":"YulLiteral","src":"40667:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40652:3:54","nodeType":"YulIdentifier","src":"40652:3:54"},"nativeSrc":"40652:18:54","nodeType":"YulFunctionCall","src":"40652:18:54"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nativeSrc":"40672:34:54","nodeType":"YulLiteral","src":"40672:34:54","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nativeSrc":"40645:6:54","nodeType":"YulIdentifier","src":"40645:6:54"},"nativeSrc":"40645:62:54","nodeType":"YulFunctionCall","src":"40645:62:54"},"nativeSrc":"40645:62:54","nodeType":"YulExpressionStatement","src":"40645:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40727:9:54","nodeType":"YulIdentifier","src":"40727:9:54"},{"kind":"number","nativeSrc":"40738:2:54","nodeType":"YulLiteral","src":"40738:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40723:3:54","nodeType":"YulIdentifier","src":"40723:3:54"},"nativeSrc":"40723:18:54","nodeType":"YulFunctionCall","src":"40723:18:54"},{"hexValue":"616765","kind":"string","nativeSrc":"40743:5:54","nodeType":"YulLiteral","src":"40743:5:54","type":"","value":"age"}],"functionName":{"name":"mstore","nativeSrc":"40716:6:54","nodeType":"YulIdentifier","src":"40716:6:54"},"nativeSrc":"40716:33:54","nodeType":"YulFunctionCall","src":"40716:33:54"},"nativeSrc":"40716:33:54","nodeType":"YulExpressionStatement","src":"40716:33:54"},{"nativeSrc":"40758:27:54","nodeType":"YulAssignment","src":"40758:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"40770:9:54","nodeType":"YulIdentifier","src":"40770:9:54"},{"kind":"number","nativeSrc":"40781:3:54","nodeType":"YulLiteral","src":"40781:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"40766:3:54","nodeType":"YulIdentifier","src":"40766:3:54"},"nativeSrc":"40766:19:54","nodeType":"YulFunctionCall","src":"40766:19:54"},"variableNames":[{"name":"tail","nativeSrc":"40758:4:54","nodeType":"YulIdentifier","src":"40758:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40392:399:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40543:9:54","nodeType":"YulTypedName","src":"40543:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40557:4:54","nodeType":"YulTypedName","src":"40557:4:54","type":""}],"src":"40392:399:54"},{"body":{"nativeSrc":"40970:223:54","nodeType":"YulBlock","src":"40970:223:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"40987:9:54","nodeType":"YulIdentifier","src":"40987:9:54"},{"kind":"number","nativeSrc":"40998:2:54","nodeType":"YulLiteral","src":"40998:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"40980:6:54","nodeType":"YulIdentifier","src":"40980:6:54"},"nativeSrc":"40980:21:54","nodeType":"YulFunctionCall","src":"40980:21:54"},"nativeSrc":"40980:21:54","nodeType":"YulExpressionStatement","src":"40980:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41021:9:54","nodeType":"YulIdentifier","src":"41021:9:54"},{"kind":"number","nativeSrc":"41032:2:54","nodeType":"YulLiteral","src":"41032:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41017:3:54","nodeType":"YulIdentifier","src":"41017:3:54"},"nativeSrc":"41017:18:54","nodeType":"YulFunctionCall","src":"41017:18:54"},{"kind":"number","nativeSrc":"41037:2:54","nodeType":"YulLiteral","src":"41037:2:54","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"41010:6:54","nodeType":"YulIdentifier","src":"41010:6:54"},"nativeSrc":"41010:30:54","nodeType":"YulFunctionCall","src":"41010:30:54"},"nativeSrc":"41010:30:54","nodeType":"YulExpressionStatement","src":"41010:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41060:9:54","nodeType":"YulIdentifier","src":"41060:9:54"},{"kind":"number","nativeSrc":"41071:2:54","nodeType":"YulLiteral","src":"41071:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41056:3:54","nodeType":"YulIdentifier","src":"41056:3:54"},"nativeSrc":"41056:18:54","nodeType":"YulFunctionCall","src":"41056:18:54"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nativeSrc":"41076:34:54","nodeType":"YulLiteral","src":"41076:34:54","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nativeSrc":"41049:6:54","nodeType":"YulIdentifier","src":"41049:6:54"},"nativeSrc":"41049:62:54","nodeType":"YulFunctionCall","src":"41049:62:54"},"nativeSrc":"41049:62:54","nodeType":"YulExpressionStatement","src":"41049:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41131:9:54","nodeType":"YulIdentifier","src":"41131:9:54"},{"kind":"number","nativeSrc":"41142:2:54","nodeType":"YulLiteral","src":"41142:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41127:3:54","nodeType":"YulIdentifier","src":"41127:3:54"},"nativeSrc":"41127:18:54","nodeType":"YulFunctionCall","src":"41127:18:54"},{"hexValue":"64","kind":"string","nativeSrc":"41147:3:54","nodeType":"YulLiteral","src":"41147:3:54","type":"","value":"d"}],"functionName":{"name":"mstore","nativeSrc":"41120:6:54","nodeType":"YulIdentifier","src":"41120:6:54"},"nativeSrc":"41120:31:54","nodeType":"YulFunctionCall","src":"41120:31:54"},"nativeSrc":"41120:31:54","nodeType":"YulExpressionStatement","src":"41120:31:54"},{"nativeSrc":"41160:27:54","nodeType":"YulAssignment","src":"41160:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"41172:9:54","nodeType":"YulIdentifier","src":"41172:9:54"},{"kind":"number","nativeSrc":"41183:3:54","nodeType":"YulLiteral","src":"41183:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"41168:3:54","nodeType":"YulIdentifier","src":"41168:3:54"},"nativeSrc":"41168:19:54","nodeType":"YulFunctionCall","src":"41168:19:54"},"variableNames":[{"name":"tail","nativeSrc":"41160:4:54","nodeType":"YulIdentifier","src":"41160:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40796:397:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40947:9:54","nodeType":"YulTypedName","src":"40947:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40961:4:54","nodeType":"YulTypedName","src":"40961:4:54","type":""}],"src":"40796:397:54"},{"body":{"nativeSrc":"41407:284:54","nodeType":"YulBlock","src":"41407:284:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41424:9:54","nodeType":"YulIdentifier","src":"41424:9:54"},{"arguments":[{"name":"value0","nativeSrc":"41439:6:54","nodeType":"YulIdentifier","src":"41439:6:54"},{"kind":"number","nativeSrc":"41447:6:54","nodeType":"YulLiteral","src":"41447:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"41435:3:54","nodeType":"YulIdentifier","src":"41435:3:54"},"nativeSrc":"41435:19:54","nodeType":"YulFunctionCall","src":"41435:19:54"}],"functionName":{"name":"mstore","nativeSrc":"41417:6:54","nodeType":"YulIdentifier","src":"41417:6:54"},"nativeSrc":"41417:38:54","nodeType":"YulFunctionCall","src":"41417:38:54"},"nativeSrc":"41417:38:54","nodeType":"YulExpressionStatement","src":"41417:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41475:9:54","nodeType":"YulIdentifier","src":"41475:9:54"},{"kind":"number","nativeSrc":"41486:2:54","nodeType":"YulLiteral","src":"41486:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41471:3:54","nodeType":"YulIdentifier","src":"41471:3:54"},"nativeSrc":"41471:18:54","nodeType":"YulFunctionCall","src":"41471:18:54"},{"kind":"number","nativeSrc":"41491:3:54","nodeType":"YulLiteral","src":"41491:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"41464:6:54","nodeType":"YulIdentifier","src":"41464:6:54"},"nativeSrc":"41464:31:54","nodeType":"YulFunctionCall","src":"41464:31:54"},"nativeSrc":"41464:31:54","nodeType":"YulExpressionStatement","src":"41464:31:54"},{"nativeSrc":"41504:70:54","nodeType":"YulAssignment","src":"41504:70:54","value":{"arguments":[{"name":"value1","nativeSrc":"41538:6:54","nodeType":"YulIdentifier","src":"41538:6:54"},{"name":"value2","nativeSrc":"41546:6:54","nodeType":"YulIdentifier","src":"41546:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"41558:9:54","nodeType":"YulIdentifier","src":"41558:9:54"},{"kind":"number","nativeSrc":"41569:3:54","nodeType":"YulLiteral","src":"41569:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"41554:3:54","nodeType":"YulIdentifier","src":"41554:3:54"},"nativeSrc":"41554:19:54","nodeType":"YulFunctionCall","src":"41554:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"41512:25:54","nodeType":"YulIdentifier","src":"41512:25:54"},"nativeSrc":"41512:62:54","nodeType":"YulFunctionCall","src":"41512:62:54"},"variableNames":[{"name":"tail","nativeSrc":"41504:4:54","nodeType":"YulIdentifier","src":"41504:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41594:9:54","nodeType":"YulIdentifier","src":"41594:9:54"},{"kind":"number","nativeSrc":"41605:2:54","nodeType":"YulLiteral","src":"41605:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41590:3:54","nodeType":"YulIdentifier","src":"41590:3:54"},"nativeSrc":"41590:18:54","nodeType":"YulFunctionCall","src":"41590:18:54"},{"arguments":[{"name":"value3","nativeSrc":"41614:6:54","nodeType":"YulIdentifier","src":"41614:6:54"},{"kind":"number","nativeSrc":"41622:18:54","nodeType":"YulLiteral","src":"41622:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"41610:3:54","nodeType":"YulIdentifier","src":"41610:3:54"},"nativeSrc":"41610:31:54","nodeType":"YulFunctionCall","src":"41610:31:54"}],"functionName":{"name":"mstore","nativeSrc":"41583:6:54","nodeType":"YulIdentifier","src":"41583:6:54"},"nativeSrc":"41583:59:54","nodeType":"YulFunctionCall","src":"41583:59:54"},"nativeSrc":"41583:59:54","nodeType":"YulExpressionStatement","src":"41583:59:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41662:9:54","nodeType":"YulIdentifier","src":"41662:9:54"},{"kind":"number","nativeSrc":"41673:2:54","nodeType":"YulLiteral","src":"41673:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"41658:3:54","nodeType":"YulIdentifier","src":"41658:3:54"},"nativeSrc":"41658:18:54","nodeType":"YulFunctionCall","src":"41658:18:54"},{"name":"value4","nativeSrc":"41678:6:54","nodeType":"YulIdentifier","src":"41678:6:54"}],"functionName":{"name":"mstore","nativeSrc":"41651:6:54","nodeType":"YulIdentifier","src":"41651:6:54"},"nativeSrc":"41651:34:54","nodeType":"YulFunctionCall","src":"41651:34:54"},"nativeSrc":"41651:34:54","nodeType":"YulExpressionStatement","src":"41651:34:54"}]},"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":"41198:493:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41344:9:54","nodeType":"YulTypedName","src":"41344:9:54","type":""},{"name":"value4","nativeSrc":"41355:6:54","nodeType":"YulTypedName","src":"41355:6:54","type":""},{"name":"value3","nativeSrc":"41363:6:54","nodeType":"YulTypedName","src":"41363:6:54","type":""},{"name":"value2","nativeSrc":"41371:6:54","nodeType":"YulTypedName","src":"41371:6:54","type":""},{"name":"value1","nativeSrc":"41379:6:54","nodeType":"YulTypedName","src":"41379:6:54","type":""},{"name":"value0","nativeSrc":"41387:6:54","nodeType":"YulTypedName","src":"41387:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41398:4:54","nodeType":"YulTypedName","src":"41398:4:54","type":""}],"src":"41198:493:54"},{"body":{"nativeSrc":"41870:170:54","nodeType":"YulBlock","src":"41870:170:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"41887:9:54","nodeType":"YulIdentifier","src":"41887:9:54"},{"kind":"number","nativeSrc":"41898:2:54","nodeType":"YulLiteral","src":"41898:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"41880:6:54","nodeType":"YulIdentifier","src":"41880:6:54"},"nativeSrc":"41880:21:54","nodeType":"YulFunctionCall","src":"41880:21:54"},"nativeSrc":"41880:21:54","nodeType":"YulExpressionStatement","src":"41880:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41921:9:54","nodeType":"YulIdentifier","src":"41921:9:54"},{"kind":"number","nativeSrc":"41932:2:54","nodeType":"YulLiteral","src":"41932:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41917:3:54","nodeType":"YulIdentifier","src":"41917:3:54"},"nativeSrc":"41917:18:54","nodeType":"YulFunctionCall","src":"41917:18:54"},{"kind":"number","nativeSrc":"41937:2:54","nodeType":"YulLiteral","src":"41937:2:54","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"41910:6:54","nodeType":"YulIdentifier","src":"41910:6:54"},"nativeSrc":"41910:30:54","nodeType":"YulFunctionCall","src":"41910:30:54"},"nativeSrc":"41910:30:54","nodeType":"YulExpressionStatement","src":"41910:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41960:9:54","nodeType":"YulIdentifier","src":"41960:9:54"},{"kind":"number","nativeSrc":"41971:2:54","nodeType":"YulLiteral","src":"41971:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41956:3:54","nodeType":"YulIdentifier","src":"41956:3:54"},"nativeSrc":"41956:18:54","nodeType":"YulFunctionCall","src":"41956:18:54"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"41976:22:54","nodeType":"YulLiteral","src":"41976:22:54","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"41949:6:54","nodeType":"YulIdentifier","src":"41949:6:54"},"nativeSrc":"41949:50:54","nodeType":"YulFunctionCall","src":"41949:50:54"},"nativeSrc":"41949:50:54","nodeType":"YulExpressionStatement","src":"41949:50:54"},{"nativeSrc":"42008:26:54","nodeType":"YulAssignment","src":"42008:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"42020:9:54","nodeType":"YulIdentifier","src":"42020:9:54"},{"kind":"number","nativeSrc":"42031:2:54","nodeType":"YulLiteral","src":"42031:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42016:3:54","nodeType":"YulIdentifier","src":"42016:3:54"},"nativeSrc":"42016:18:54","nodeType":"YulFunctionCall","src":"42016:18:54"},"variableNames":[{"name":"tail","nativeSrc":"42008:4:54","nodeType":"YulIdentifier","src":"42008:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41696:344:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41847:9:54","nodeType":"YulTypedName","src":"41847:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41861:4:54","nodeType":"YulTypedName","src":"41861:4:54","type":""}],"src":"41696:344:54"},{"body":{"nativeSrc":"42219:166:54","nodeType":"YulBlock","src":"42219:166:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"42236:9:54","nodeType":"YulIdentifier","src":"42236:9:54"},{"kind":"number","nativeSrc":"42247:2:54","nodeType":"YulLiteral","src":"42247:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"42229:6:54","nodeType":"YulIdentifier","src":"42229:6:54"},"nativeSrc":"42229:21:54","nodeType":"YulFunctionCall","src":"42229:21:54"},"nativeSrc":"42229:21:54","nodeType":"YulExpressionStatement","src":"42229:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42270:9:54","nodeType":"YulIdentifier","src":"42270:9:54"},{"kind":"number","nativeSrc":"42281:2:54","nodeType":"YulLiteral","src":"42281:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42266:3:54","nodeType":"YulIdentifier","src":"42266:3:54"},"nativeSrc":"42266:18:54","nodeType":"YulFunctionCall","src":"42266:18:54"},{"kind":"number","nativeSrc":"42286:2:54","nodeType":"YulLiteral","src":"42286:2:54","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"42259:6:54","nodeType":"YulIdentifier","src":"42259:6:54"},"nativeSrc":"42259:30:54","nodeType":"YulFunctionCall","src":"42259:30:54"},"nativeSrc":"42259:30:54","nodeType":"YulExpressionStatement","src":"42259:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42309:9:54","nodeType":"YulIdentifier","src":"42309:9:54"},{"kind":"number","nativeSrc":"42320:2:54","nodeType":"YulLiteral","src":"42320:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"42305:3:54","nodeType":"YulIdentifier","src":"42305:3:54"},"nativeSrc":"42305:18:54","nodeType":"YulFunctionCall","src":"42305:18:54"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"42325:18:54","nodeType":"YulLiteral","src":"42325:18:54","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"42298:6:54","nodeType":"YulIdentifier","src":"42298:6:54"},"nativeSrc":"42298:46:54","nodeType":"YulFunctionCall","src":"42298:46:54"},"nativeSrc":"42298:46:54","nodeType":"YulExpressionStatement","src":"42298:46:54"},{"nativeSrc":"42353:26:54","nodeType":"YulAssignment","src":"42353:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"42365:9:54","nodeType":"YulIdentifier","src":"42365:9:54"},{"kind":"number","nativeSrc":"42376:2:54","nodeType":"YulLiteral","src":"42376:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42361:3:54","nodeType":"YulIdentifier","src":"42361:3:54"},"nativeSrc":"42361:18:54","nodeType":"YulFunctionCall","src":"42361:18:54"},"variableNames":[{"name":"tail","nativeSrc":"42353:4:54","nodeType":"YulIdentifier","src":"42353:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"42045:340:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42196:9:54","nodeType":"YulTypedName","src":"42196:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"42210:4:54","nodeType":"YulTypedName","src":"42210:4:54","type":""}],"src":"42045:340:54"},{"body":{"nativeSrc":"42564:182:54","nodeType":"YulBlock","src":"42564:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"42581:9:54","nodeType":"YulIdentifier","src":"42581:9:54"},{"kind":"number","nativeSrc":"42592:2:54","nodeType":"YulLiteral","src":"42592:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"42574:6:54","nodeType":"YulIdentifier","src":"42574:6:54"},"nativeSrc":"42574:21:54","nodeType":"YulFunctionCall","src":"42574:21:54"},"nativeSrc":"42574:21:54","nodeType":"YulExpressionStatement","src":"42574:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42615:9:54","nodeType":"YulIdentifier","src":"42615:9:54"},{"kind":"number","nativeSrc":"42626:2:54","nodeType":"YulLiteral","src":"42626:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42611:3:54","nodeType":"YulIdentifier","src":"42611:3:54"},"nativeSrc":"42611:18:54","nodeType":"YulFunctionCall","src":"42611:18:54"},{"kind":"number","nativeSrc":"42631:2:54","nodeType":"YulLiteral","src":"42631:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"42604:6:54","nodeType":"YulIdentifier","src":"42604:6:54"},"nativeSrc":"42604:30:54","nodeType":"YulFunctionCall","src":"42604:30:54"},"nativeSrc":"42604:30:54","nodeType":"YulExpressionStatement","src":"42604:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42654:9:54","nodeType":"YulIdentifier","src":"42654:9:54"},{"kind":"number","nativeSrc":"42665:2:54","nodeType":"YulLiteral","src":"42665:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"42650:3:54","nodeType":"YulIdentifier","src":"42650:3:54"},"nativeSrc":"42650:18:54","nodeType":"YulFunctionCall","src":"42650:18:54"},{"hexValue":"4461696c79205472616e73616374696f6e204c696d6974204578636565646564","kind":"string","nativeSrc":"42670:34:54","nodeType":"YulLiteral","src":"42670:34:54","type":"","value":"Daily Transaction Limit Exceeded"}],"functionName":{"name":"mstore","nativeSrc":"42643:6:54","nodeType":"YulIdentifier","src":"42643:6:54"},"nativeSrc":"42643:62:54","nodeType":"YulFunctionCall","src":"42643:62:54"},"nativeSrc":"42643:62:54","nodeType":"YulExpressionStatement","src":"42643:62:54"},{"nativeSrc":"42714:26:54","nodeType":"YulAssignment","src":"42714:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"42726:9:54","nodeType":"YulIdentifier","src":"42726:9:54"},{"kind":"number","nativeSrc":"42737:2:54","nodeType":"YulLiteral","src":"42737:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"42722:3:54","nodeType":"YulIdentifier","src":"42722:3:54"},"nativeSrc":"42722:18:54","nodeType":"YulFunctionCall","src":"42722:18:54"},"variableNames":[{"name":"tail","nativeSrc":"42714:4:54","nodeType":"YulIdentifier","src":"42714:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"42390:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42541:9:54","nodeType":"YulTypedName","src":"42541:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"42555:4:54","nodeType":"YulTypedName","src":"42555:4:54","type":""}],"src":"42390:356:54"},{"body":{"nativeSrc":"42832:103:54","nodeType":"YulBlock","src":"42832:103:54","statements":[{"body":{"nativeSrc":"42878:16:54","nodeType":"YulBlock","src":"42878:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42887:1:54","nodeType":"YulLiteral","src":"42887:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"42890:1:54","nodeType":"YulLiteral","src":"42890:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"42880:6:54","nodeType":"YulIdentifier","src":"42880:6:54"},"nativeSrc":"42880:12:54","nodeType":"YulFunctionCall","src":"42880:12:54"},"nativeSrc":"42880:12:54","nodeType":"YulExpressionStatement","src":"42880:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"42853:7:54","nodeType":"YulIdentifier","src":"42853:7:54"},{"name":"headStart","nativeSrc":"42862:9:54","nodeType":"YulIdentifier","src":"42862:9:54"}],"functionName":{"name":"sub","nativeSrc":"42849:3:54","nodeType":"YulIdentifier","src":"42849:3:54"},"nativeSrc":"42849:23:54","nodeType":"YulFunctionCall","src":"42849:23:54"},{"kind":"number","nativeSrc":"42874:2:54","nodeType":"YulLiteral","src":"42874:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"42845:3:54","nodeType":"YulIdentifier","src":"42845:3:54"},"nativeSrc":"42845:32:54","nodeType":"YulFunctionCall","src":"42845:32:54"},"nativeSrc":"42842:52:54","nodeType":"YulIf","src":"42842:52:54"},{"nativeSrc":"42903:26:54","nodeType":"YulAssignment","src":"42903:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"42919:9:54","nodeType":"YulIdentifier","src":"42919:9:54"}],"functionName":{"name":"mload","nativeSrc":"42913:5:54","nodeType":"YulIdentifier","src":"42913:5:54"},"nativeSrc":"42913:16:54","nodeType":"YulFunctionCall","src":"42913:16:54"},"variableNames":[{"name":"value0","nativeSrc":"42903:6:54","nodeType":"YulIdentifier","src":"42903:6:54"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"42751:184:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42798:9:54","nodeType":"YulTypedName","src":"42798:9:54","type":""},{"name":"dataEnd","nativeSrc":"42809:7:54","nodeType":"YulTypedName","src":"42809:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"42821:6:54","nodeType":"YulTypedName","src":"42821:6:54","type":""}],"src":"42751:184:54"},{"body":{"nativeSrc":"43191:393:54","nodeType":"YulBlock","src":"43191:393:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"43208:9:54","nodeType":"YulIdentifier","src":"43208:9:54"},{"arguments":[{"name":"value0","nativeSrc":"43223:6:54","nodeType":"YulIdentifier","src":"43223:6:54"},{"kind":"number","nativeSrc":"43231:42:54","nodeType":"YulLiteral","src":"43231:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"43219:3:54","nodeType":"YulIdentifier","src":"43219:3:54"},"nativeSrc":"43219:55:54","nodeType":"YulFunctionCall","src":"43219:55:54"}],"functionName":{"name":"mstore","nativeSrc":"43201:6:54","nodeType":"YulIdentifier","src":"43201:6:54"},"nativeSrc":"43201:74:54","nodeType":"YulFunctionCall","src":"43201:74:54"},"nativeSrc":"43201:74:54","nodeType":"YulExpressionStatement","src":"43201:74:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43295:9:54","nodeType":"YulIdentifier","src":"43295:9:54"},{"kind":"number","nativeSrc":"43306:2:54","nodeType":"YulLiteral","src":"43306:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43291:3:54","nodeType":"YulIdentifier","src":"43291:3:54"},"nativeSrc":"43291:18:54","nodeType":"YulFunctionCall","src":"43291:18:54"},{"name":"value1","nativeSrc":"43311:6:54","nodeType":"YulIdentifier","src":"43311:6:54"}],"functionName":{"name":"mstore","nativeSrc":"43284:6:54","nodeType":"YulIdentifier","src":"43284:6:54"},"nativeSrc":"43284:34:54","nodeType":"YulFunctionCall","src":"43284:34:54"},"nativeSrc":"43284:34:54","nodeType":"YulExpressionStatement","src":"43284:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43338:9:54","nodeType":"YulIdentifier","src":"43338:9:54"},{"kind":"number","nativeSrc":"43349:2:54","nodeType":"YulLiteral","src":"43349:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"43334:3:54","nodeType":"YulIdentifier","src":"43334:3:54"},"nativeSrc":"43334:18:54","nodeType":"YulFunctionCall","src":"43334:18:54"},{"kind":"number","nativeSrc":"43354:3:54","nodeType":"YulLiteral","src":"43354:3:54","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"43327:6:54","nodeType":"YulIdentifier","src":"43327:6:54"},"nativeSrc":"43327:31:54","nodeType":"YulFunctionCall","src":"43327:31:54"},"nativeSrc":"43327:31:54","nodeType":"YulExpressionStatement","src":"43327:31:54"},{"nativeSrc":"43367:59:54","nodeType":"YulVariableDeclaration","src":"43367:59:54","value":{"arguments":[{"name":"value2","nativeSrc":"43398:6:54","nodeType":"YulIdentifier","src":"43398:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"43410:9:54","nodeType":"YulIdentifier","src":"43410:9:54"},{"kind":"number","nativeSrc":"43421:3:54","nodeType":"YulLiteral","src":"43421:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"43406:3:54","nodeType":"YulIdentifier","src":"43406:3:54"},"nativeSrc":"43406:19:54","nodeType":"YulFunctionCall","src":"43406:19:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"43381:16:54","nodeType":"YulIdentifier","src":"43381:16:54"},"nativeSrc":"43381:45:54","nodeType":"YulFunctionCall","src":"43381:45:54"},"variables":[{"name":"tail_1","nativeSrc":"43371:6:54","nodeType":"YulTypedName","src":"43371:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43446:9:54","nodeType":"YulIdentifier","src":"43446:9:54"},{"kind":"number","nativeSrc":"43457:2:54","nodeType":"YulLiteral","src":"43457:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"43442:3:54","nodeType":"YulIdentifier","src":"43442:3:54"},"nativeSrc":"43442:18:54","nodeType":"YulFunctionCall","src":"43442:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"43466:6:54","nodeType":"YulIdentifier","src":"43466:6:54"},{"name":"headStart","nativeSrc":"43474:9:54","nodeType":"YulIdentifier","src":"43474:9:54"}],"functionName":{"name":"sub","nativeSrc":"43462:3:54","nodeType":"YulIdentifier","src":"43462:3:54"},"nativeSrc":"43462:22:54","nodeType":"YulFunctionCall","src":"43462:22:54"}],"functionName":{"name":"mstore","nativeSrc":"43435:6:54","nodeType":"YulIdentifier","src":"43435:6:54"},"nativeSrc":"43435:50:54","nodeType":"YulFunctionCall","src":"43435:50:54"},"nativeSrc":"43435:50:54","nodeType":"YulExpressionStatement","src":"43435:50:54"},{"nativeSrc":"43494:40:54","nodeType":"YulAssignment","src":"43494:40:54","value":{"arguments":[{"name":"value3","nativeSrc":"43519:6:54","nodeType":"YulIdentifier","src":"43519:6:54"},{"name":"tail_1","nativeSrc":"43527:6:54","nodeType":"YulIdentifier","src":"43527:6:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"43502:16:54","nodeType":"YulIdentifier","src":"43502:16:54"},"nativeSrc":"43502:32:54","nodeType":"YulFunctionCall","src":"43502:32:54"},"variableNames":[{"name":"tail","nativeSrc":"43494:4:54","nodeType":"YulIdentifier","src":"43494:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43554:9:54","nodeType":"YulIdentifier","src":"43554:9:54"},{"kind":"number","nativeSrc":"43565:3:54","nodeType":"YulLiteral","src":"43565:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"43550:3:54","nodeType":"YulIdentifier","src":"43550:3:54"},"nativeSrc":"43550:19:54","nodeType":"YulFunctionCall","src":"43550:19:54"},{"name":"value4","nativeSrc":"43571:6:54","nodeType":"YulIdentifier","src":"43571:6:54"}],"functionName":{"name":"mstore","nativeSrc":"43543:6:54","nodeType":"YulIdentifier","src":"43543:6:54"},"nativeSrc":"43543:35:54","nodeType":"YulFunctionCall","src":"43543:35:54"},"nativeSrc":"43543:35:54","nodeType":"YulExpressionStatement","src":"43543:35:54"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"42940:644:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43128:9:54","nodeType":"YulTypedName","src":"43128:9:54","type":""},{"name":"value4","nativeSrc":"43139:6:54","nodeType":"YulTypedName","src":"43139:6:54","type":""},{"name":"value3","nativeSrc":"43147:6:54","nodeType":"YulTypedName","src":"43147:6:54","type":""},{"name":"value2","nativeSrc":"43155:6:54","nodeType":"YulTypedName","src":"43155:6:54","type":""},{"name":"value1","nativeSrc":"43163:6:54","nodeType":"YulTypedName","src":"43163:6:54","type":""},{"name":"value0","nativeSrc":"43171:6:54","nodeType":"YulTypedName","src":"43171:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"43182:4:54","nodeType":"YulTypedName","src":"43182:4:54","type":""}],"src":"42940:644:54"},{"body":{"nativeSrc":"43667:199:54","nodeType":"YulBlock","src":"43667:199:54","statements":[{"body":{"nativeSrc":"43713:16:54","nodeType":"YulBlock","src":"43713:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43722:1:54","nodeType":"YulLiteral","src":"43722:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"43725:1:54","nodeType":"YulLiteral","src":"43725:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"43715:6:54","nodeType":"YulIdentifier","src":"43715:6:54"},"nativeSrc":"43715:12:54","nodeType":"YulFunctionCall","src":"43715:12:54"},"nativeSrc":"43715:12:54","nodeType":"YulExpressionStatement","src":"43715:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"43688:7:54","nodeType":"YulIdentifier","src":"43688:7:54"},{"name":"headStart","nativeSrc":"43697:9:54","nodeType":"YulIdentifier","src":"43697:9:54"}],"functionName":{"name":"sub","nativeSrc":"43684:3:54","nodeType":"YulIdentifier","src":"43684:3:54"},"nativeSrc":"43684:23:54","nodeType":"YulFunctionCall","src":"43684:23:54"},{"kind":"number","nativeSrc":"43709:2:54","nodeType":"YulLiteral","src":"43709:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"43680:3:54","nodeType":"YulIdentifier","src":"43680:3:54"},"nativeSrc":"43680:32:54","nodeType":"YulFunctionCall","src":"43680:32:54"},"nativeSrc":"43677:52:54","nodeType":"YulIf","src":"43677:52:54"},{"nativeSrc":"43738:29:54","nodeType":"YulVariableDeclaration","src":"43738:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"43757:9:54","nodeType":"YulIdentifier","src":"43757:9:54"}],"functionName":{"name":"mload","nativeSrc":"43751:5:54","nodeType":"YulIdentifier","src":"43751:5:54"},"nativeSrc":"43751:16:54","nodeType":"YulFunctionCall","src":"43751:16:54"},"variables":[{"name":"value","nativeSrc":"43742:5:54","nodeType":"YulTypedName","src":"43742:5:54","type":""}]},{"body":{"nativeSrc":"43820:16:54","nodeType":"YulBlock","src":"43820:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43829:1:54","nodeType":"YulLiteral","src":"43829:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"43832:1:54","nodeType":"YulLiteral","src":"43832:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"43822:6:54","nodeType":"YulIdentifier","src":"43822:6:54"},"nativeSrc":"43822:12:54","nodeType":"YulFunctionCall","src":"43822:12:54"},"nativeSrc":"43822:12:54","nodeType":"YulExpressionStatement","src":"43822:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"43789:5:54","nodeType":"YulIdentifier","src":"43789:5:54"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"43810:5:54","nodeType":"YulIdentifier","src":"43810:5:54"}],"functionName":{"name":"iszero","nativeSrc":"43803:6:54","nodeType":"YulIdentifier","src":"43803:6:54"},"nativeSrc":"43803:13:54","nodeType":"YulFunctionCall","src":"43803:13:54"}],"functionName":{"name":"iszero","nativeSrc":"43796:6:54","nodeType":"YulIdentifier","src":"43796:6:54"},"nativeSrc":"43796:21:54","nodeType":"YulFunctionCall","src":"43796:21:54"}],"functionName":{"name":"eq","nativeSrc":"43786:2:54","nodeType":"YulIdentifier","src":"43786:2:54"},"nativeSrc":"43786:32:54","nodeType":"YulFunctionCall","src":"43786:32:54"}],"functionName":{"name":"iszero","nativeSrc":"43779:6:54","nodeType":"YulIdentifier","src":"43779:6:54"},"nativeSrc":"43779:40:54","nodeType":"YulFunctionCall","src":"43779:40:54"},"nativeSrc":"43776:60:54","nodeType":"YulIf","src":"43776:60:54"},{"nativeSrc":"43845:15:54","nodeType":"YulAssignment","src":"43845:15:54","value":{"name":"value","nativeSrc":"43855:5:54","nodeType":"YulIdentifier","src":"43855:5:54"},"variableNames":[{"name":"value0","nativeSrc":"43845:6:54","nodeType":"YulIdentifier","src":"43845:6:54"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"43589:277:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43633:9:54","nodeType":"YulTypedName","src":"43633:9:54","type":""},{"name":"dataEnd","nativeSrc":"43644:7:54","nodeType":"YulTypedName","src":"43644:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"43656:6:54","nodeType":"YulTypedName","src":"43656:6:54","type":""}],"src":"43589:277:54"},{"body":{"nativeSrc":"44045:369:54","nodeType":"YulBlock","src":"44045:369:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"44062:9:54","nodeType":"YulIdentifier","src":"44062:9:54"},{"kind":"number","nativeSrc":"44073:2:54","nodeType":"YulLiteral","src":"44073:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"44055:6:54","nodeType":"YulIdentifier","src":"44055:6:54"},"nativeSrc":"44055:21:54","nodeType":"YulFunctionCall","src":"44055:21:54"},"nativeSrc":"44055:21:54","nodeType":"YulExpressionStatement","src":"44055:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44096:9:54","nodeType":"YulIdentifier","src":"44096:9:54"},{"kind":"number","nativeSrc":"44107:2:54","nodeType":"YulLiteral","src":"44107:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"44092:3:54","nodeType":"YulIdentifier","src":"44092:3:54"},"nativeSrc":"44092:18:54","nodeType":"YulFunctionCall","src":"44092:18:54"},{"kind":"number","nativeSrc":"44112:2:54","nodeType":"YulLiteral","src":"44112:2:54","type":"","value":"99"}],"functionName":{"name":"mstore","nativeSrc":"44085:6:54","nodeType":"YulIdentifier","src":"44085:6:54"},"nativeSrc":"44085:30:54","nodeType":"YulFunctionCall","src":"44085:30:54"},"nativeSrc":"44085:30:54","nodeType":"YulExpressionStatement","src":"44085:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44135:9:54","nodeType":"YulIdentifier","src":"44135:9:54"},{"kind":"number","nativeSrc":"44146:2:54","nodeType":"YulLiteral","src":"44146:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"44131:3:54","nodeType":"YulIdentifier","src":"44131:3:54"},"nativeSrc":"44131:18:54","nodeType":"YulFunctionCall","src":"44131:18:54"},{"hexValue":"4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a717565","kind":"string","nativeSrc":"44151:34:54","nodeType":"YulLiteral","src":"44151:34:54","type":"","value":"OmnichainGovernanceExecutor::que"}],"functionName":{"name":"mstore","nativeSrc":"44124:6:54","nodeType":"YulIdentifier","src":"44124:6:54"},"nativeSrc":"44124:62:54","nodeType":"YulFunctionCall","src":"44124:62:54"},"nativeSrc":"44124:62:54","nodeType":"YulExpressionStatement","src":"44124:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44206:9:54","nodeType":"YulIdentifier","src":"44206:9:54"},{"kind":"number","nativeSrc":"44217:2:54","nodeType":"YulLiteral","src":"44217:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"44202:3:54","nodeType":"YulIdentifier","src":"44202:3:54"},"nativeSrc":"44202:18:54","nodeType":"YulFunctionCall","src":"44202:18:54"},{"hexValue":"75654f72526576657274496e7465726e616c3a206964656e746963616c207072","kind":"string","nativeSrc":"44222:34:54","nodeType":"YulLiteral","src":"44222:34:54","type":"","value":"ueOrRevertInternal: identical pr"}],"functionName":{"name":"mstore","nativeSrc":"44195:6:54","nodeType":"YulIdentifier","src":"44195:6:54"},"nativeSrc":"44195:62:54","nodeType":"YulFunctionCall","src":"44195:62:54"},"nativeSrc":"44195:62:54","nodeType":"YulExpressionStatement","src":"44195:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44277:9:54","nodeType":"YulIdentifier","src":"44277:9:54"},{"kind":"number","nativeSrc":"44288:3:54","nodeType":"YulLiteral","src":"44288:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"44273:3:54","nodeType":"YulIdentifier","src":"44273:3:54"},"nativeSrc":"44273:19:54","nodeType":"YulFunctionCall","src":"44273:19:54"},{"hexValue":"6f706f73616c20616374696f6e20616c72656164792071756575656420617420","kind":"string","nativeSrc":"44294:34:54","nodeType":"YulLiteral","src":"44294:34:54","type":"","value":"oposal action already queued at "}],"functionName":{"name":"mstore","nativeSrc":"44266:6:54","nodeType":"YulIdentifier","src":"44266:6:54"},"nativeSrc":"44266:63:54","nodeType":"YulFunctionCall","src":"44266:63:54"},"nativeSrc":"44266:63:54","nodeType":"YulExpressionStatement","src":"44266:63:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44349:9:54","nodeType":"YulIdentifier","src":"44349:9:54"},{"kind":"number","nativeSrc":"44360:3:54","nodeType":"YulLiteral","src":"44360:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"44345:3:54","nodeType":"YulIdentifier","src":"44345:3:54"},"nativeSrc":"44345:19:54","nodeType":"YulFunctionCall","src":"44345:19:54"},{"hexValue":"657461","kind":"string","nativeSrc":"44366:5:54","nodeType":"YulLiteral","src":"44366:5:54","type":"","value":"eta"}],"functionName":{"name":"mstore","nativeSrc":"44338:6:54","nodeType":"YulIdentifier","src":"44338:6:54"},"nativeSrc":"44338:34:54","nodeType":"YulFunctionCall","src":"44338:34:54"},"nativeSrc":"44338:34:54","nodeType":"YulExpressionStatement","src":"44338:34:54"},{"nativeSrc":"44381:27:54","nodeType":"YulAssignment","src":"44381:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"44393:9:54","nodeType":"YulIdentifier","src":"44393:9:54"},{"kind":"number","nativeSrc":"44404:3:54","nodeType":"YulLiteral","src":"44404:3:54","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"44389:3:54","nodeType":"YulIdentifier","src":"44389:3:54"},"nativeSrc":"44389:19:54","nodeType":"YulFunctionCall","src":"44389:19:54"},"variableNames":[{"name":"tail","nativeSrc":"44381:4:54","nodeType":"YulIdentifier","src":"44381:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"43871:543:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"44022:9:54","nodeType":"YulTypedName","src":"44022:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"44036:4:54","nodeType":"YulTypedName","src":"44036:4:54","type":""}],"src":"43871:543:54"},{"body":{"nativeSrc":"44500:103:54","nodeType":"YulBlock","src":"44500:103:54","statements":[{"body":{"nativeSrc":"44546:16:54","nodeType":"YulBlock","src":"44546:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"44555:1:54","nodeType":"YulLiteral","src":"44555:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"44558:1:54","nodeType":"YulLiteral","src":"44558:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"44548:6:54","nodeType":"YulIdentifier","src":"44548:6:54"},"nativeSrc":"44548:12:54","nodeType":"YulFunctionCall","src":"44548:12:54"},"nativeSrc":"44548:12:54","nodeType":"YulExpressionStatement","src":"44548:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"44521:7:54","nodeType":"YulIdentifier","src":"44521:7:54"},{"name":"headStart","nativeSrc":"44530:9:54","nodeType":"YulIdentifier","src":"44530:9:54"}],"functionName":{"name":"sub","nativeSrc":"44517:3:54","nodeType":"YulIdentifier","src":"44517:3:54"},"nativeSrc":"44517:23:54","nodeType":"YulFunctionCall","src":"44517:23:54"},{"kind":"number","nativeSrc":"44542:2:54","nodeType":"YulLiteral","src":"44542:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"44513:3:54","nodeType":"YulIdentifier","src":"44513:3:54"},"nativeSrc":"44513:32:54","nodeType":"YulFunctionCall","src":"44513:32:54"},"nativeSrc":"44510:52:54","nodeType":"YulIf","src":"44510:52:54"},{"nativeSrc":"44571:26:54","nodeType":"YulAssignment","src":"44571:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"44587:9:54","nodeType":"YulIdentifier","src":"44587:9:54"}],"functionName":{"name":"mload","nativeSrc":"44581:5:54","nodeType":"YulIdentifier","src":"44581:5:54"},"nativeSrc":"44581:16:54","nodeType":"YulFunctionCall","src":"44581:16:54"},"variableNames":[{"name":"value0","nativeSrc":"44571:6:54","nodeType":"YulIdentifier","src":"44571:6:54"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"44419:184:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"44466:9:54","nodeType":"YulTypedName","src":"44466:9:54","type":""},{"name":"dataEnd","nativeSrc":"44477:7:54","nodeType":"YulTypedName","src":"44477:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"44489:6:54","nodeType":"YulTypedName","src":"44489:6:54","type":""}],"src":"44419:184:54"},{"body":{"nativeSrc":"44704:1367:54","nodeType":"YulBlock","src":"44704:1367:54","statements":[{"nativeSrc":"44714:24:54","nodeType":"YulVariableDeclaration","src":"44714:24:54","value":{"arguments":[{"name":"src","nativeSrc":"44734:3:54","nodeType":"YulIdentifier","src":"44734:3:54"}],"functionName":{"name":"mload","nativeSrc":"44728:5:54","nodeType":"YulIdentifier","src":"44728:5:54"},"nativeSrc":"44728:10:54","nodeType":"YulFunctionCall","src":"44728:10:54"},"variables":[{"name":"newLen","nativeSrc":"44718:6:54","nodeType":"YulTypedName","src":"44718:6:54","type":""}]},{"body":{"nativeSrc":"44781:22:54","nodeType":"YulBlock","src":"44781:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"44783:16:54","nodeType":"YulIdentifier","src":"44783:16:54"},"nativeSrc":"44783:18:54","nodeType":"YulFunctionCall","src":"44783:18:54"},"nativeSrc":"44783:18:54","nodeType":"YulExpressionStatement","src":"44783:18:54"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"44753:6:54","nodeType":"YulIdentifier","src":"44753:6:54"},{"kind":"number","nativeSrc":"44761:18:54","nodeType":"YulLiteral","src":"44761:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"44750:2:54","nodeType":"YulIdentifier","src":"44750:2:54"},"nativeSrc":"44750:30:54","nodeType":"YulFunctionCall","src":"44750:30:54"},"nativeSrc":"44747:56:54","nodeType":"YulIf","src":"44747:56:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"44855:4:54","nodeType":"YulIdentifier","src":"44855:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"44893:4:54","nodeType":"YulIdentifier","src":"44893:4:54"}],"functionName":{"name":"sload","nativeSrc":"44887:5:54","nodeType":"YulIdentifier","src":"44887:5:54"},"nativeSrc":"44887:11:54","nodeType":"YulFunctionCall","src":"44887:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"44861:25:54","nodeType":"YulIdentifier","src":"44861:25:54"},"nativeSrc":"44861:38:54","nodeType":"YulFunctionCall","src":"44861:38:54"},{"name":"newLen","nativeSrc":"44901:6:54","nodeType":"YulIdentifier","src":"44901:6:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"44812:42:54","nodeType":"YulIdentifier","src":"44812:42:54"},"nativeSrc":"44812:96:54","nodeType":"YulFunctionCall","src":"44812:96:54"},"nativeSrc":"44812:96:54","nodeType":"YulExpressionStatement","src":"44812:96:54"},{"nativeSrc":"44917:18:54","nodeType":"YulVariableDeclaration","src":"44917:18:54","value":{"kind":"number","nativeSrc":"44934:1:54","nodeType":"YulLiteral","src":"44934:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"44921:9:54","nodeType":"YulTypedName","src":"44921:9:54","type":""}]},{"nativeSrc":"44944:23:54","nodeType":"YulVariableDeclaration","src":"44944:23:54","value":{"kind":"number","nativeSrc":"44963:4:54","nodeType":"YulLiteral","src":"44963:4:54","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"44948:11:54","nodeType":"YulTypedName","src":"44948:11:54","type":""}]},{"nativeSrc":"44976:17:54","nodeType":"YulAssignment","src":"44976:17:54","value":{"kind":"number","nativeSrc":"44989:4:54","nodeType":"YulLiteral","src":"44989:4:54","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"44976:9:54","nodeType":"YulIdentifier","src":"44976:9:54"}]},{"cases":[{"body":{"nativeSrc":"45039:775:54","nodeType":"YulBlock","src":"45039:775:54","statements":[{"nativeSrc":"45053:94:54","nodeType":"YulVariableDeclaration","src":"45053:94:54","value":{"arguments":[{"name":"newLen","nativeSrc":"45072:6:54","nodeType":"YulIdentifier","src":"45072:6:54"},{"kind":"number","nativeSrc":"45080:66:54","nodeType":"YulLiteral","src":"45080:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"45068:3:54","nodeType":"YulIdentifier","src":"45068:3:54"},"nativeSrc":"45068:79:54","nodeType":"YulFunctionCall","src":"45068:79:54"},"variables":[{"name":"loopEnd","nativeSrc":"45057:7:54","nodeType":"YulTypedName","src":"45057:7:54","type":""}]},{"nativeSrc":"45160:49:54","nodeType":"YulVariableDeclaration","src":"45160:49:54","value":{"arguments":[{"name":"slot","nativeSrc":"45204:4:54","nodeType":"YulIdentifier","src":"45204:4:54"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"45174:29:54","nodeType":"YulIdentifier","src":"45174:29:54"},"nativeSrc":"45174:35:54","nodeType":"YulFunctionCall","src":"45174:35:54"},"variables":[{"name":"dstPtr","nativeSrc":"45164:6:54","nodeType":"YulTypedName","src":"45164:6:54","type":""}]},{"nativeSrc":"45222:10:54","nodeType":"YulVariableDeclaration","src":"45222:10:54","value":{"kind":"number","nativeSrc":"45231:1:54","nodeType":"YulLiteral","src":"45231:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"45226:1:54","nodeType":"YulTypedName","src":"45226:1:54","type":""}]},{"body":{"nativeSrc":"45309:172:54","nodeType":"YulBlock","src":"45309:172:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"45334:6:54","nodeType":"YulIdentifier","src":"45334:6:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"45352:3:54","nodeType":"YulIdentifier","src":"45352:3:54"},{"name":"srcOffset","nativeSrc":"45357:9:54","nodeType":"YulIdentifier","src":"45357:9:54"}],"functionName":{"name":"add","nativeSrc":"45348:3:54","nodeType":"YulIdentifier","src":"45348:3:54"},"nativeSrc":"45348:19:54","nodeType":"YulFunctionCall","src":"45348:19:54"}],"functionName":{"name":"mload","nativeSrc":"45342:5:54","nodeType":"YulIdentifier","src":"45342:5:54"},"nativeSrc":"45342:26:54","nodeType":"YulFunctionCall","src":"45342:26:54"}],"functionName":{"name":"sstore","nativeSrc":"45327:6:54","nodeType":"YulIdentifier","src":"45327:6:54"},"nativeSrc":"45327:42:54","nodeType":"YulFunctionCall","src":"45327:42:54"},"nativeSrc":"45327:42:54","nodeType":"YulExpressionStatement","src":"45327:42:54"},{"nativeSrc":"45386:24:54","nodeType":"YulAssignment","src":"45386:24:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"45400:6:54","nodeType":"YulIdentifier","src":"45400:6:54"},{"kind":"number","nativeSrc":"45408:1:54","nodeType":"YulLiteral","src":"45408:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45396:3:54","nodeType":"YulIdentifier","src":"45396:3:54"},"nativeSrc":"45396:14:54","nodeType":"YulFunctionCall","src":"45396:14:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"45386:6:54","nodeType":"YulIdentifier","src":"45386:6:54"}]},{"nativeSrc":"45427:40:54","nodeType":"YulAssignment","src":"45427:40:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"45444:9:54","nodeType":"YulIdentifier","src":"45444:9:54"},{"name":"srcOffset_1","nativeSrc":"45455:11:54","nodeType":"YulIdentifier","src":"45455:11:54"}],"functionName":{"name":"add","nativeSrc":"45440:3:54","nodeType":"YulIdentifier","src":"45440:3:54"},"nativeSrc":"45440:27:54","nodeType":"YulFunctionCall","src":"45440:27:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"45427:9:54","nodeType":"YulIdentifier","src":"45427:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"45256:1:54","nodeType":"YulIdentifier","src":"45256:1:54"},{"name":"loopEnd","nativeSrc":"45259:7:54","nodeType":"YulIdentifier","src":"45259:7:54"}],"functionName":{"name":"lt","nativeSrc":"45253:2:54","nodeType":"YulIdentifier","src":"45253:2:54"},"nativeSrc":"45253:14:54","nodeType":"YulFunctionCall","src":"45253:14:54"},"nativeSrc":"45245:236:54","nodeType":"YulForLoop","post":{"nativeSrc":"45268:28:54","nodeType":"YulBlock","src":"45268:28:54","statements":[{"nativeSrc":"45270:24:54","nodeType":"YulAssignment","src":"45270:24:54","value":{"arguments":[{"name":"i","nativeSrc":"45279:1:54","nodeType":"YulIdentifier","src":"45279:1:54"},{"name":"srcOffset_1","nativeSrc":"45282:11:54","nodeType":"YulIdentifier","src":"45282:11:54"}],"functionName":{"name":"add","nativeSrc":"45275:3:54","nodeType":"YulIdentifier","src":"45275:3:54"},"nativeSrc":"45275:19:54","nodeType":"YulFunctionCall","src":"45275:19:54"},"variableNames":[{"name":"i","nativeSrc":"45270:1:54","nodeType":"YulIdentifier","src":"45270:1:54"}]}]},"pre":{"nativeSrc":"45249:3:54","nodeType":"YulBlock","src":"45249:3:54","statements":[]},"src":"45245:236:54"},{"body":{"nativeSrc":"45529:226:54","nodeType":"YulBlock","src":"45529:226:54","statements":[{"nativeSrc":"45547:43:54","nodeType":"YulVariableDeclaration","src":"45547:43:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"45574:3:54","nodeType":"YulIdentifier","src":"45574:3:54"},{"name":"srcOffset","nativeSrc":"45579:9:54","nodeType":"YulIdentifier","src":"45579:9:54"}],"functionName":{"name":"add","nativeSrc":"45570:3:54","nodeType":"YulIdentifier","src":"45570:3:54"},"nativeSrc":"45570:19:54","nodeType":"YulFunctionCall","src":"45570:19:54"}],"functionName":{"name":"mload","nativeSrc":"45564:5:54","nodeType":"YulIdentifier","src":"45564:5:54"},"nativeSrc":"45564:26:54","nodeType":"YulFunctionCall","src":"45564:26:54"},"variables":[{"name":"lastValue","nativeSrc":"45551:9:54","nodeType":"YulTypedName","src":"45551:9:54","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"45614:6:54","nodeType":"YulIdentifier","src":"45614:6:54"},{"arguments":[{"name":"lastValue","nativeSrc":"45626:9:54","nodeType":"YulIdentifier","src":"45626:9:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"45653:1:54","nodeType":"YulLiteral","src":"45653:1:54","type":"","value":"3"},{"name":"newLen","nativeSrc":"45656:6:54","nodeType":"YulIdentifier","src":"45656:6:54"}],"functionName":{"name":"shl","nativeSrc":"45649:3:54","nodeType":"YulIdentifier","src":"45649:3:54"},"nativeSrc":"45649:14:54","nodeType":"YulFunctionCall","src":"45649:14:54"},{"kind":"number","nativeSrc":"45665:3:54","nodeType":"YulLiteral","src":"45665:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"45645:3:54","nodeType":"YulIdentifier","src":"45645:3:54"},"nativeSrc":"45645:24:54","nodeType":"YulFunctionCall","src":"45645:24:54"},{"kind":"number","nativeSrc":"45671:66:54","nodeType":"YulLiteral","src":"45671:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"45641:3:54","nodeType":"YulIdentifier","src":"45641:3:54"},"nativeSrc":"45641:97:54","nodeType":"YulFunctionCall","src":"45641:97:54"}],"functionName":{"name":"not","nativeSrc":"45637:3:54","nodeType":"YulIdentifier","src":"45637:3:54"},"nativeSrc":"45637:102:54","nodeType":"YulFunctionCall","src":"45637:102:54"}],"functionName":{"name":"and","nativeSrc":"45622:3:54","nodeType":"YulIdentifier","src":"45622:3:54"},"nativeSrc":"45622:118:54","nodeType":"YulFunctionCall","src":"45622:118:54"}],"functionName":{"name":"sstore","nativeSrc":"45607:6:54","nodeType":"YulIdentifier","src":"45607:6:54"},"nativeSrc":"45607:134:54","nodeType":"YulFunctionCall","src":"45607:134:54"},"nativeSrc":"45607:134:54","nodeType":"YulExpressionStatement","src":"45607:134:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"45500:7:54","nodeType":"YulIdentifier","src":"45500:7:54"},{"name":"newLen","nativeSrc":"45509:6:54","nodeType":"YulIdentifier","src":"45509:6:54"}],"functionName":{"name":"lt","nativeSrc":"45497:2:54","nodeType":"YulIdentifier","src":"45497:2:54"},"nativeSrc":"45497:19:54","nodeType":"YulFunctionCall","src":"45497:19:54"},"nativeSrc":"45494:261:54","nodeType":"YulIf","src":"45494:261:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"45775:4:54","nodeType":"YulIdentifier","src":"45775:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"45789:1:54","nodeType":"YulLiteral","src":"45789:1:54","type":"","value":"1"},{"name":"newLen","nativeSrc":"45792:6:54","nodeType":"YulIdentifier","src":"45792:6:54"}],"functionName":{"name":"shl","nativeSrc":"45785:3:54","nodeType":"YulIdentifier","src":"45785:3:54"},"nativeSrc":"45785:14:54","nodeType":"YulFunctionCall","src":"45785:14:54"},{"kind":"number","nativeSrc":"45801:1:54","nodeType":"YulLiteral","src":"45801:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45781:3:54","nodeType":"YulIdentifier","src":"45781:3:54"},"nativeSrc":"45781:22:54","nodeType":"YulFunctionCall","src":"45781:22:54"}],"functionName":{"name":"sstore","nativeSrc":"45768:6:54","nodeType":"YulIdentifier","src":"45768:6:54"},"nativeSrc":"45768:36:54","nodeType":"YulFunctionCall","src":"45768:36:54"},"nativeSrc":"45768:36:54","nodeType":"YulExpressionStatement","src":"45768:36:54"}]},"nativeSrc":"45032:782:54","nodeType":"YulCase","src":"45032:782:54","value":{"kind":"number","nativeSrc":"45037:1:54","nodeType":"YulLiteral","src":"45037:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"45831:234:54","nodeType":"YulBlock","src":"45831:234:54","statements":[{"nativeSrc":"45845:14:54","nodeType":"YulVariableDeclaration","src":"45845:14:54","value":{"kind":"number","nativeSrc":"45858:1:54","nodeType":"YulLiteral","src":"45858:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"45849:5:54","nodeType":"YulTypedName","src":"45849:5:54","type":""}]},{"body":{"nativeSrc":"45894:67:54","nodeType":"YulBlock","src":"45894:67:54","statements":[{"nativeSrc":"45912:35:54","nodeType":"YulAssignment","src":"45912:35:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"45931:3:54","nodeType":"YulIdentifier","src":"45931:3:54"},{"name":"srcOffset","nativeSrc":"45936:9:54","nodeType":"YulIdentifier","src":"45936:9:54"}],"functionName":{"name":"add","nativeSrc":"45927:3:54","nodeType":"YulIdentifier","src":"45927:3:54"},"nativeSrc":"45927:19:54","nodeType":"YulFunctionCall","src":"45927:19:54"}],"functionName":{"name":"mload","nativeSrc":"45921:5:54","nodeType":"YulIdentifier","src":"45921:5:54"},"nativeSrc":"45921:26:54","nodeType":"YulFunctionCall","src":"45921:26:54"},"variableNames":[{"name":"value","nativeSrc":"45912:5:54","nodeType":"YulIdentifier","src":"45912:5:54"}]}]},"condition":{"name":"newLen","nativeSrc":"45875:6:54","nodeType":"YulIdentifier","src":"45875:6:54"},"nativeSrc":"45872:89:54","nodeType":"YulIf","src":"45872:89:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"45981:4:54","nodeType":"YulIdentifier","src":"45981:4:54"},{"arguments":[{"name":"value","nativeSrc":"46040:5:54","nodeType":"YulIdentifier","src":"46040:5:54"},{"name":"newLen","nativeSrc":"46047:6:54","nodeType":"YulIdentifier","src":"46047:6:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"45987:52:54","nodeType":"YulIdentifier","src":"45987:52:54"},"nativeSrc":"45987:67:54","nodeType":"YulFunctionCall","src":"45987:67:54"}],"functionName":{"name":"sstore","nativeSrc":"45974:6:54","nodeType":"YulIdentifier","src":"45974:6:54"},"nativeSrc":"45974:81:54","nodeType":"YulFunctionCall","src":"45974:81:54"},"nativeSrc":"45974:81:54","nodeType":"YulExpressionStatement","src":"45974:81:54"}]},"nativeSrc":"45823:242:54","nodeType":"YulCase","src":"45823:242:54","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"45012:6:54","nodeType":"YulIdentifier","src":"45012:6:54"},{"kind":"number","nativeSrc":"45020:2:54","nodeType":"YulLiteral","src":"45020:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"45009:2:54","nodeType":"YulIdentifier","src":"45009:2:54"},"nativeSrc":"45009:14:54","nodeType":"YulFunctionCall","src":"45009:14:54"},"nativeSrc":"45002:1063:54","nodeType":"YulSwitch","src":"45002:1063:54"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"44608:1463:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"44689:4:54","nodeType":"YulTypedName","src":"44689:4:54","type":""},{"name":"src","nativeSrc":"44695:3:54","nodeType":"YulTypedName","src":"44695:3:54","type":""}],"src":"44608:1463:54"}]},"contents":"{\n    { }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        value3 := abi_decode_uint64(add(headStart, 64))\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_uint8(value, pos)\n    { mstore(pos, and(value, 0xff)) }\n    function abi_encode_tuple_t_uint256_t_uint256_t_bool_t_bool_t_uint8__to_t_uint256_t_uint256_t_bool_t_bool_t_uint8__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), iszero(iszero(value2)))\n        mstore(add(headStart, 96), iszero(iszero(value3)))\n        mstore(add(headStart, 128), and(value4, 0xff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function abi_decode_tuple_t_uint16t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_enum$_ProposalState_$6248__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        if iszero(lt(value0, 3))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20)\n    }\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := calldataload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(array, 32), add(_1, 32), _2)\n        mstore(add(add(array, _2), 32), 0)\n        value1 := array\n        value2 := abi_decode_uint64(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\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    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function array_allocation_size_array_contract_ITimelock_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_tuple_t_array$_t_contract$_ITimelock_$8011_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_2, shl(5, _3)), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value0 := dst_1\n    }\n    function abi_encode_tuple_t_contract$_ITimelock_$8011__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function validator_revert_uint8(value)\n    {\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_uint8(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        validator_revert_address(value)\n        value2 := value\n        value3 := calldataload(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"LzApp: invalid endpoint caller\")\n        tail := add(headStart, 96)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\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        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"LzApp: invalid source sending co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4258c99d44f362f78e979b44d639851c2c0ef199c76ece73b41f8dc6845abafe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 79)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::can\")\n        mstore(add(headStart, 96), \"cel: proposal should be queued a\")\n        mstore(add(headStart, 128), \"nd not executed\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_fb16e4905cd1d461f30a69908479246c84efc58d7cbdb9b1113d7d74e2108621__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 60)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::can\")\n        mstore(add(headStart, 96), \"cel: sender must be guardian\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function abi_encode_string_storage(value, pos) -> ret\n    {\n        let slotValue := sload(value)\n        let length := extract_byte_array_length(slotValue)\n        mstore(pos, length)\n        let _1 := 0x20\n        let _2 := 1\n        switch and(slotValue, 1)\n        case 0 {\n            mstore(add(pos, _1), and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(add(pos, shl(5, iszero(iszero(length)))), _1)\n        }\n        case 1 {\n            mstore(0, value)\n            let dataPos := keccak256(0, _1)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _1) }\n            {\n                mstore(add(add(pos, i), _1), sload(dataPos))\n                dataPos := add(dataPos, _2)\n            }\n            ret := add(add(pos, i), _1)\n        }\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string_storage(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string_storage(value3, tail_1)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"NonblockingLzApp: caller must be\")\n        mstore(add(headStart, 96), \" LzApp\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dcd823307e0cf8e2924ffc4da406ac40a542bd139ef180667b9ac44d3c4e1ed9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 64)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::set\")\n        mstore(add(headStart, 96), \"Guardian: owner or guardian only\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"LzApp: no trusted path record\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\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        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, and(shl(96, value2), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        end := add(_1, 20)\n    }\n    function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\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    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    {\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n    }\n    function abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let ret := 0\n        let slotValue := sload(value0)\n        let length := extract_byte_array_length(slotValue)\n        let _1 := 1\n        switch and(slotValue, 1)\n        case 0 {\n            mstore(pos, and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(pos, mul(length, iszero(iszero(length))))\n        }\n        case 1 {\n            mstore(0, value0)\n            let _2 := 0x20\n            let dataPos := keccak256(0, 0x20)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _2) }\n            {\n                mstore(add(pos, i), sload(dataPos))\n                dataPos := add(dataPos, _1)\n            }\n            ret := add(pos, length)\n        }\n        end := ret\n    }\n    function abi_encode_tuple_t_stringliteral_8604b21a2334391c4295b76ee13c85fa92759d2c1e0134eda5b5a12de87b6756__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 63)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::ret\")\n        mstore(add(headStart, 96), \"ryMessage: not a trusted remote\")\n        tail := add(headStart, 128)\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    {\n        tail := add(headStart, 96)\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function checked_add_t_uint8(x, y) -> sum\n    {\n        sum := add(and(x, 0xff), and(y, 0xff))\n        if gt(sum, 0xff) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_32080da14e7022f3ae138ecc980607030d5549ab2e1d714a8c2cbabbb48261e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 106)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::add\")\n        mstore(add(headStart, 96), \"Timelocks:number of timelocks sh\")\n        mstore(add(headStart, 128), \"ould match the number of governa\")\n        mstore(add(headStart, 160), \"nce routes\")\n        tail := add(headStart, 192)\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f08e2b8e61b5846c8974e694064edfd99da14433722704c9122062e543c20627__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 75)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::set\")\n        mstore(add(headStart, 96), \"TimelockPendingAdmin: invalid pr\")\n        mstore(add(headStart, 128), \"oposal type\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xff))\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    {\n        tail := add(headStart, 128)\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_decode_available_length_bytes_fromMemory(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(src, add(array, 0x20), length)\n    }\n    function abi_decode_bytes_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_bytes_fromMemory(add(offset, 0x20), mload(offset), end)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_e4bcaaea546383f3f12ee7e8affb6838fe2629172da652fe547c7dfbf4d39f35__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 83)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::exe\")\n        mstore(add(headStart, 96), \"cute: proposal can only be execu\")\n        mstore(add(headStart, 128), \"ted if it is queued\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_d275682feaebe22ea68148a3f20b1a2d3f04f7bd9d77ea436ebdac94de138df7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 72)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::_bl\")\n        mstore(add(headStart, 96), \"ockingLzReceive: invalid source \")\n        mstore(add(headStart, 128), \"chain id\")\n        tail := add(headStart, 160)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value3, tail_1)\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        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_uint64_t_bytes_memory_ptr__to_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptrt_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, _1)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_string_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            let _4 := add(offset, innerOffset)\n            if iszero(slt(add(_4, 63), end))\n            {\n                let _5 := 0\n                revert(_5, _5)\n            }\n            mstore(dst, abi_decode_available_length_bytes_fromMemory(add(_4, 64), mload(add(_4, _2)), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_bytes_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            mstore(dst, abi_decode_bytes_fromMemory(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_uint8_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_uint8(value)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ITimelock_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := dst_1\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n        let offset_2 := mload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value2 := abi_decode_array_string_dyn_fromMemory(add(headStart, offset_2), dataEnd)\n        let offset_3 := mload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(0, 0) }\n        value3 := abi_decode_array_bytes_dyn_fromMemory(add(headStart, offset_3), dataEnd)\n        value4 := abi_decode_uint8_fromMemory(add(headStart, 128))\n    }\n    function abi_encode_tuple_t_stringliteral_2803d9538cd5469ac5fa2c9532b3ddc0b845796807f5a1c18ddcf2f3ee49776b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 70)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::_no\")\n        mstore(add(headStart, 96), \"nblockingLzReceive: duplicate pr\")\n        mstore(add(headStart, 128), \"oposal\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_73269ca63e07077728e117499df129cf16ffbb7f2e384ee0422cb3a9906cbd6f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 96)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::_no\")\n        mstore(add(headStart, 96), \"nblockingLzReceive: proposal fun\")\n        mstore(add(headStart, 128), \"ction information arity mismatch\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_6f48fffb767fcd1a10142050a1c2f0fa4d3752673ff6e94ff8b534dd8a3a82bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 73)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::_no\")\n        mstore(add(headStart, 96), \"nblockingLzReceive: invalid prop\")\n        mstore(add(headStart, 128), \"osal type\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_array_string_dyn(value, pos) -> end\n    {\n        let pos_1 := pos\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, 0x20)\n        let tail := add(add(pos_1, shl(5, length)), 0x20)\n        let srcPtr := add(value, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail, pos_1), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n            tail := abi_encode_bytes(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint8__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 160)\n        mstore(headStart, 160)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 192)\n        let _1 := 0x20\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, _1), sub(pos, headStart))\n        let pos_1 := pos\n        let length_1 := mload(value1)\n        mstore(pos, length_1)\n        pos_1 := add(pos, _1)\n        let srcPtr_1 := add(value1, _1)\n        let i_1 := 0\n        for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n        {\n            mstore(pos_1, mload(srcPtr_1))\n            pos_1 := add(pos_1, _1)\n            srcPtr_1 := add(srcPtr_1, _1)\n        }\n        mstore(add(headStart, 64), sub(pos_1, headStart))\n        let tail_2 := abi_encode_array_string_dyn(value2, pos_1)\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_array_string_dyn(value3, tail_2)\n        abi_encode_uint8(value4, add(headStart, 128))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"slice_overflow\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"slice_outOfBounds\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"NonblockingLzApp: no stored mess\")\n        mstore(add(headStart, 96), \"age\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"NonblockingLzApp: invalid payloa\")\n        mstore(add(headStart, 96), \"d\")\n        tail := add(headStart, 128)\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    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 96), value4)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Daily Transaction Limit Exceeded\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_bytes(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_bytes(value3, tail_1)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_8864d14fd204ea66650b5ca543c106bdc1f9dca39811219c69678312ec6eb275__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 99)\n        mstore(add(headStart, 64), \"OmnichainGovernanceExecutor::que\")\n        mstore(add(headStart, 96), \"ueOrRevertInternal: identical pr\")\n        mstore(add(headStart, 128), \"oposal action already queued at \")\n        mstore(add(headStart, 160), \"eta\")\n        tail := add(headStart, 192)\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\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}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"451":[{"length":32,"start":2052},{"length":32,"start":2517},{"length":32,"start":3169},{"length":32,"start":3375},{"length":32,"start":4658},{"length":32,"start":6343},{"length":32,"start":8057}]},"linkReferences":{},"object":"6080604052600436106102f15760003560e01c8063876919e81161018f578063c4461834116100e1578063ed66039b1161008a578063f4fcfcca11610064578063f4fcfcca14610972578063f5ecbdbc14610992578063fe0d94c1146109b257600080fd5b8063ed66039b146108ef578063ee9799ee1461090f578063f2fde38b1461095257600080fd5b8063d1deba1f116100bb578063d1deba1f1461089c578063df2a5b3b146108af578063eb8d72b7146108cf57600080fd5b8063c446183414610846578063c8b42e5b1461085c578063cbed8b9c1461087c57600080fd5b8063950c8a7411610143578063a6c3d1651161011d578063a6c3d165146107d2578063b353aaa7146107f2578063baf3292d1461082657600080fd5b8063950c8a74146107555780639f0c3101146107825780639f38369a146107b257600080fd5b80638cfd8f5c116101745780638cfd8f5c146106d25780638da5cb5b1461070a5780639493ffad1461073557600080fd5b8063876919e81461069c5780638a0dac4a146106b257600080fd5b806342d65a8d116102485780635c975abb116101fc578063715018a6116101d6578063715018a61461064e5780637533d7881461065a5780638456cb591461068757600080fd5b80635c975abb1461060057806366ad5c8a1461061857806370f6ad9a1461063857600080fd5b8063452a93201161022d578063452a93201461051957806349d126051461056b5780635b8c41e6146105b157600080fd5b806342d65a8d146104e35780634406baaf1461050357600080fd5b806310ddb137116102aa5780633f1f4fa4116102845780633f1f4fa4146104815780633f4ba83a146104ae57806340e58ee5146104c357600080fd5b806310ddb137146104045780633d8b38f6146104245780633e4f49e61461045457600080fd5b80630435bb56116102db5780630435bb56146103a057806307e0db17146103c45780630df37483146103e457600080fd5b80621d3567146102f6578063013cf08b14610318575b600080fd5b34801561030257600080fd5b506103166103113660046137db565b6109d2565b005b34801561032457600080fd5b5061036a61033336600461386f565b600d6020526000908152604090208054600182015460069092015490919060ff808216916101008104821691620100009091041685565b60408051958652602086019490945291151592840192909252901515606083015260ff16608082015260a0015b60405180910390f35b3480156103ac57600080fd5b506103b660085481565b604051908152602001610397565b3480156103d057600080fd5b506103166103df366004613888565b610c27565b3480156103f057600080fd5b506103166103ff3660046138a3565b610cd6565b34801561041057600080fd5b5061031661041f366004613888565b610cf5565b34801561043057600080fd5b5061044461043f3660046138cd565b610d73565b6040519015158152602001610397565b34801561046057600080fd5b5061047461046f36600461386f565b610e40565b604051610397919061394f565b34801561048d57600080fd5b506103b661049c366004613888565b60046020526000908152604090205481565b3480156104ba57600080fd5b50610316610ed7565b3480156104cf57600080fd5b506103166104de36600461386f565b610ee9565b3480156104ef57600080fd5b506103166104fe3660046138cd565b6111ed565b34801561050f57600080fd5b506103b6600c5481565b34801561052557600080fd5b50600b546105469073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610397565b34801561057757600080fd5b50600b5461059e9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610397565b3480156105bd57600080fd5b506103b66105cc366004613a18565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561060c57600080fd5b5060075460ff16610444565b34801561062457600080fd5b506103166106333660046137db565b611299565b34801561064457600080fd5b506103b660095481565b34801561031657600080fd5b34801561066657600080fd5b5061067a610675366004613888565b61138c565b6040516103979190613b09565b34801561069357600080fd5b50610316611426565b3480156106a857600080fd5b506103b6600a5481565b3480156106be57600080fd5b506103166106cd366004613b3e565b611436565b3480156106de57600080fd5b506103b66106ed366004613b5b565b600360209081526000928352604080842090915290825290205481565b34801561071657600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff16610546565b34801561074157600080fd5b5061031661075036600461386f565b61157e565b34801561076157600080fd5b506005546105469073ffffffffffffffffffffffffffffffffffffffff1681565b34801561078e57600080fd5b5061044461079d36600461386f565b600f6020526000908152604090205460ff1681565b3480156107be57600080fd5b5061067a6107cd366004613888565b6115c7565b3480156107de57600080fd5b506103166107ed3660046138cd565b6116d6565b3480156107fe57600080fd5b506105467f000000000000000000000000000000000000000000000000000000000000000081565b34801561083257600080fd5b50610316610841366004613b3e565b61175f565b34801561085257600080fd5b506103b661271081565b34801561086857600080fd5b50610316610877366004613888565b6117e0565b34801561088857600080fd5b50610316610897366004613b8e565b611882565b6103166108aa3660046137db565b61193d565b3480156108bb57600080fd5b506103166108ca366004613bfd565b611a19565b3480156108db57600080fd5b506103166108ea3660046138cd565b611a83565b3480156108fb57600080fd5b5061031661090a366004613c5d565b611add565b34801561091b57600080fd5b5061054661092a36600461386f565b600e6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561095e57600080fd5b5061031661096d366004613b3e565b611cf4565b34801561097e57600080fd5b5061031661098d366004613d06565b611d91565b34801561099e57600080fd5b5061067a6109ad366004613d3f565b611f2f565b3480156109be57600080fd5b506103166109cd36600461386f565b612006565b337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610a5c5760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526002602052604081208054610a7a90613d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa690613d8c565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b50505050509050805186869050148015610b0e575060008151115b8015610b36575080516020820120604051610b2c9088908890613dd9565b6040518091039020145b610ba85760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610a53565b610c1e8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506122bf92505050565b50505050505050565b610c2f6124b9565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307e0db17906024015b600060405180830381600087803b158015610cbb57600080fd5b505af1158015610ccf573d6000803e3d6000fd5b5050505050565b610cde6124b9565b61ffff909116600090815260046020526040902055565b610cfd6124b9565b6040517f10ddb13700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906310ddb13790602401610ca1565b61ffff831660009081526002602052604081208054829190610d9490613d8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc090613d8c565b8015610e0d5780601f10610de257610100808354040283529160200191610e0d565b820191906000526020600020905b815481529060010190602001808311610df057829003601f168201915b505050505090508383604051610e24929190613dd9565b60405180910390208180519060200120149150505b9392505050565b6000818152600d60205260408120600681015460ff1615610e645750600092915050565b6006810154610100900460ff1615610e7f5750600292915050565b6000838152600f602052604090205460ff1615610e9f5750600192915050565b6040517f0992f7ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b610edf6124b9565b610ee7612520565b565b6001610ef482610e40565b6002811115610f0557610f05613920565b14610f9e5760405162461bcd60e51b815260206004820152604f60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e60448201527f63656c3a2070726f706f73616c2073686f756c6420626520717565756564206160648201527f6e64206e6f742065786563757465640000000000000000000000000000000000608482015260a401610a53565b6000818152600d60205260409020600b5473ffffffffffffffffffffffffffffffffffffffff1633146110395760405162461bcd60e51b815260206004820152603c60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a63616e60448201527f63656c3a2073656e646572206d75737420626520677561726469616e000000006064820152608401610a53565b60068101805460ff19166001908117918290556201000090910460ff166000908152600e602052604080822054928401546002850154915173ffffffffffffffffffffffffffffffffffffffff90941693909286917f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c9190a260005b818110156111d0578373ffffffffffffffffffffffffffffffffffffffff1663591fcdfe8660020183815481106110ee576110ee613de9565b60009182526020909120015460038801805473ffffffffffffffffffffffffffffffffffffffff909216918590811061112957611129613de9565b906000526020600020015488600401858154811061114957611149613de9565b9060005260206000200189600501868154811061116857611168613de9565b90600052602060002001886040518663ffffffff1660e01b8152600401611193959493929190613e95565b600060405180830381600087803b1580156111ad57600080fd5b505af11580156111c1573d6000803e3d6000fd5b505050508060010190506110b5565b50505060009283525050600f60205260409020805460ff19169055565b6111f56124b9565b6040517f42d65a8d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061126b90869086908690600401613f1a565b600060405180830381600087803b15801561128557600080fd5b505af1158015610c1e573d6000803e3d6000fd5b33301461130e5760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560448201527f204c7a41707000000000000000000000000000000000000000000000000000006064820152608401610a53565b6113848686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061257f92505050565b505050505050565b600260205260009081526040902080546113a590613d8c565b80601f01602080910402602001604051908101604052809291908181526020018280546113d190613d8c565b801561141e5780601f106113f35761010080835404028352916020019161141e565b820191906000526020600020905b81548152906001019060200180831161140157829003601f168201915b505050505081565b61142e6124b9565b610ee76129b1565b600b5473ffffffffffffffffffffffffffffffffffffffff16331480611473575060015473ffffffffffffffffffffffffffffffffffffffff1633145b6114e7576040805162461bcd60e51b81526020600482015260248101919091527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657460448201527f477561726469616e3a206f776e6572206f7220677561726469616e206f6e6c796064820152608401610a53565b6114f0816129ee565b600b5460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e390600090a3600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6115866124b9565b60085460408051918252602082018390527f0a653bb1a57e62cfd43f0dc557c7223e8b58896238b5f9b300ef646d37b82d1b910160405180910390a1600855565b61ffff81166000908152600260205260408120805460609291906115ea90613d8c565b80601f016020809104026020016040519081016040528092919081815260200182805461161690613d8c565b80156116635780601f1061163857610100808354040283529160200191611663565b820191906000526020600020905b81548152906001019060200180831161164657829003601f168201915b5050505050905080516000036116bb5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606401610a53565b610e396000601483516116ce9190613f67565b839190612a3b565b6116de6124b9565b8181306040516020016116f393929190613f80565b60408051601f1981840301815291815261ffff851660009081526002602052209061171e9082614001565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161175293929190613f1a565b60405180910390a1505050565b6117676124b9565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b6117e86124b9565b600b5460405161ffff8084169274010000000000000000000000000000000000000000900416907fb17c58d5977290696b6eea77c81c725f3dc83e426252bd9ece6287c1b8d0e96890600090a3600b805461ffff90921674010000000000000000000000000000000000000000027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b61188a6124b9565b6040517fcbed8b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c9061190490889088908890889088906004016140fd565b600060405180830381600087803b15801561191e57600080fd5b505af1158015611932573d6000803e3d6000fd5b505050505050505050565b6119456124b9565b61194d612b63565b848460405161195d929190613dd9565b6040805191829003822061ffff891660009081526002602052919091209091611986919061412b565b604051809103902014611a015760405162461bcd60e51b815260206004820152603f60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a72657460448201527f72794d6573736167653a206e6f74206120747275737465642072656d6f7465006064820152608401610a53565b611a0f868686868686612bbc565b6113846001600055565b611a216124b9565b61ffff83811660008181526003602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001611752565b611a8b6124b9565b61ffff83166000908152600260205260409020611aa98284836141a1565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161175293929190613f1a565b611ae56124b9565b6000611af36002600161429d565b90508060ff16825114611bba5760405162461bcd60e51b815260206004820152606a60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a61646460448201527f54696d656c6f636b733a6e756d626572206f662074696d656c6f636b7320736860648201527f6f756c64206d6174636820746865206e756d626572206f6620676f7665726e6160848201527f6e636520726f757465730000000000000000000000000000000000000000000060a482015260c401610a53565b60005b8160ff168160ff161015611cef57611bf0838260ff1681518110611be357611be3613de9565b60200260200101516129ee565b828160ff1681518110611c0557611c05613de9565b60209081029190910181015160ff83166000818152600e845260409081902054905191825273ffffffffffffffffffffffffffffffffffffffff928316939216917ffc45ae51ac4893a3f843d030fbfd4037c0c196109c9e667645b8f144c83c16ea910160405180910390a3828160ff1681518110611c8657611c86613de9565b60209081029190910181015160ff83166000908152600e909252604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055600101611bbd565b505050565b611cfc6124b9565b73ffffffffffffffffffffffffffffffffffffffff8116611d855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a53565b611d8e81612e0a565b50565b611d996124b9565b6000611da76002600161429d565b90508060ff168260ff1610611e4a5760405162461bcd60e51b815260206004820152604b60248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a73657460448201527f54696d656c6f636b50656e64696e6741646d696e3a20696e76616c696420707260648201527f6f706f73616c2074797065000000000000000000000000000000000000000000608482015260a401610a53565b60ff82166000908152600e6020526040908190205490517f4dd18bf500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911690634dd18bf590602401600060405180830381600087803b158015611ec857600080fd5b505af1158015611edc573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8716815260ff861660208201527f6ac0b2c896b49975f12891f83c573bdf05490fe6b707cbaa2ba84c36094cbaec9350019050611752565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808616600483015284166024820152306044820152606481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5ecbdbc90608401600060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffd9190810190614306565b95945050505050565b61200e612b63565b600161201982610e40565b600281111561202a5761202a613920565b146120c35760405162461bcd60e51b815260206004820152605360248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a65786560448201527f637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637560648201527f7465642069662069742069732071756575656400000000000000000000000000608482015260a401610a53565b6000818152600d602090815260408083206006810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179081905562010000900460ff168452600e90925280832054600183015460028401549251939473ffffffffffffffffffffffffffffffffffffffff9092169390929186917f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9190a260005b81811015612299578373ffffffffffffffffffffffffffffffffffffffff16630825f38f8660020183815481106121a4576121a4613de9565b60009182526020909120015460038801805473ffffffffffffffffffffffffffffffffffffffff90921691859081106121df576121df613de9565b90600052602060002001548860040185815481106121ff576121ff613de9565b9060005260206000200189600501868154811061221e5761221e613de9565b90600052602060002001886040518663ffffffff1660e01b8152600401612249959493929190613e95565b6000604051808303816000875af1158015612268573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122909190810190614306565b5060010161216b565b5050506000838152600f60205260409020805460ff1916905550611d8e90506001600055565b600b5461ffff85811674010000000000000000000000000000000000000000909204161461237b5760405162461bcd60e51b815260206004820152604860248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f626c60448201527f6f636b696e674c7a526563656976653a20696e76616c696420736f757263652060648201527f636861696e206964000000000000000000000000000000000000000000000000608482015260a401610a53565b8051602082012060405160009030906366ad5c8a906123a4908990899089908990602401614343565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806124066175305a6123fc9190613f67565b3090609686612e81565b91509150816124af5761ffff8816600090815260066020526040908190209051859190612434908a90614382565b90815260408051918290036020908101832067ffffffffffffffff8b16600090815291522091909155612468908890614382565b60405180910390208861ffff167f41d73ce7be31a588d59fe9013cdcfe583bc0aab25093d042b64cade0df73065688846040516124a692919061439e565b60405180910390a35b5050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610ee75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a53565b612528612f0c565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b612587612f5e565b6000808280602001905181019061259e91906143c1565b915091506000806000806000868060200190518101906125be9190614592565b60008b8152600d602052604090205494995092975090955093509150156126735760405162461bcd60e51b815260206004820152604660248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a206475706c696361746520707260648201527f6f706f73616c0000000000000000000000000000000000000000000000000000608482015260a401610a53565b83518551148015612685575082518551145b8015612692575081518551145b61272a5760405162461bcd60e51b815260206004820152606060248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a2070726f706f73616c2066756e60648201527f6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368608482015260a401610a53565b6127366002600161429d565b60ff168160ff16106127d65760405162461bcd60e51b815260206004820152604960248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a5f6e6f60448201527f6e626c6f636b696e674c7a526563656976653a20696e76616c69642070726f7060648201527f6f73616c20747970650000000000000000000000000000000000000000000000608482015260a401610a53565b6127e08551612fb1565b6040805161012081018252878152600060208083018281528385018a8152606085018a90526080850189905260a0850188905260c0850184905260e0850184905260ff87166101008601528b8452600d835294909220835181559151600183015592518051929384936128599260028501920190613571565b50606082015180516128759160038401916020909101906135fb565b5060808201518051612891916004840191602090910190613636565b5060a082015180516128ad916005840191602090910190613688565b5060c08201516006909101805460e08401516101009485015160ff1662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff9115159095027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909216919091179290921791909116919091179055600c87905580516040517fc37d19c9a6a9a568b5071658f9b5082ff8f142df3cf090385c5621ab1193806590612992908990899089908990899061470b565b60405180910390a26129a387613041565b505050505050505050505050565b6129b9612f5e565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125553390565b73ffffffffffffffffffffffffffffffffffffffff8116611d8e576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081612a4981601f6147d5565b1015612a975760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610a53565b612aa182846147d5565b84511015612af15760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610a53565b606082158015612b105760405191506000825260208201604052612b5a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612b49578051835260209283019201612b31565b5050858452601f01601f1916604052505b50949350505050565b600260005403612bb55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a53565b6002600055565b61ffff86166000908152600660205260408082209051612bdf9088908890613dd9565b908152604080516020928190038301902067ffffffffffffffff871660009081529252902054905080612c7a5760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201527f61676500000000000000000000000000000000000000000000000000000000006064820152608401610a53565b808383604051612c8b929190613dd9565b604051809103902014612d065760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610a53565b61ffff87166000908152600660205260408082209051612d299089908990613dd9565b908152604080516020928190038301812067ffffffffffffffff8916600090815290845282902093909355601f88018290048202830182019052868252612dc2918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061257f92505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051612df99594939291906147e8565b60405180910390a150505050505050565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000606060008060008661ffff1667ffffffffffffffff811115612ea757612ea7613990565b6040519080825280601f01601f191660200182016040528015612ed1576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612ef3578692505b828152826000602083013e909890975095505050505050565b60075460ff16610ee75760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a53565b60075460ff1615610ee75760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a53565b600954600a544291906201518090612fc99084613f67565b1115612fdb5750600a81905581612fe8565b612fe583826147d5565b90505b60085481111561303a5760405162461bcd60e51b815260206004820181905260248201527f4461696c79205472616e73616374696f6e204c696d69742045786365656465646044820152606401610a53565b6009555050565b6000818152600d60209081526040808320600681015462010000900460ff168452600e83528184205482517f6a42b8f8000000000000000000000000000000000000000000000000000000008152925191949373ffffffffffffffffffffffffffffffffffffffff90911692636a42b8f892600480830193928290030181865afa1580156130d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f79190614824565b61310190426147d5565b60018084018290556000858152600f602052604090819020805460ff191690921790915560068401546002850154915192935062010000900460ff169185907f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28929061316f9086815260200190565b60405180910390a260005b818110156113845761333785600201828154811061319a5761319a613de9565b60009182526020909120015460038701805473ffffffffffffffffffffffffffffffffffffffff90921691849081106131d5576131d5613de9565b90600052602060002001548760040184815481106131f5576131f5613de9565b90600052602060002001805461320a90613d8c565b80601f016020809104026020016040519081016040528092919081815260200182805461323690613d8c565b80156132835780601f1061325857610100808354040283529160200191613283565b820191906000526020600020905b81548152906001019060200180831161326657829003601f168201915b505050505088600501858154811061329d5761329d613de9565b9060005260206000200180546132b290613d8c565b80601f01602080910402602001604051908101604052809291908181526020018280546132de90613d8c565b801561332b5780601f106133005761010080835404028352916020019161332b565b820191906000526020600020905b81548152906001019060200180831161330e57829003601f168201915b5050505050888861333f565b60010161317a565b60ff81166000908152600e602090815260409182902054915173ffffffffffffffffffffffffffffffffffffffff9092169163f2b065379161338b918a918a918a918a918a910161483d565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016133bf91815260200190565b602060405180830381865afa1580156133dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134009190614884565b156134bf5760405162461bcd60e51b815260206004820152606360248201527f4f6d6e69636861696e476f7665726e616e63654578656375746f723a3a71756560448201527f75654f72526576657274496e7465726e616c3a206964656e746963616c20707260648201527f6f706f73616c20616374696f6e20616c7265616479207175657565642061742060848201527f657461000000000000000000000000000000000000000000000000000000000060a482015260c401610a53565b60ff81166000908152600e6020526040908190205490517f3a66f90100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633a66f9019061352e908990899089908990899060040161483d565b6020604051808303816000875af115801561354d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e9190614824565b8280548282559060005260206000209081019282156135eb579160200282015b828111156135eb57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190613591565b506135f79291506136da565b5090565b8280548282559060005260206000209081019282156135eb579160200282015b828111156135eb57825182559160200191906001019061361b565b82805482825590600052602060002090810192821561367c579160200282015b8281111561367c578251829061366c9082614001565b5091602001919060010190613656565b506135f79291506136ef565b8280548282559060005260206000209081019282156136ce579160200282015b828111156136ce57825182906136be9082614001565b50916020019190600101906136a8565b506135f792915061370c565b5b808211156135f757600081556001016136db565b808211156135f75760006137038282613729565b506001016136ef565b808211156135f75760006137208282613729565b5060010161370c565b50805461373590613d8c565b6000825580601f10613745575050565b601f016020900490600052602060002090810190611d8e91906136da565b803561ffff8116811461377557600080fd5b919050565b60008083601f84011261378c57600080fd5b50813567ffffffffffffffff8111156137a457600080fd5b6020830191508360208285010111156137bc57600080fd5b9250929050565b803567ffffffffffffffff8116811461377557600080fd5b600080600080600080608087890312156137f457600080fd5b6137fd87613763565b9550602087013567ffffffffffffffff8082111561381a57600080fd5b6138268a838b0161377a565b909750955085915061383a60408a016137c3565b9450606089013591508082111561385057600080fd5b5061385d89828a0161377a565b979a9699509497509295939492505050565b60006020828403121561388157600080fd5b5035919050565b60006020828403121561389a57600080fd5b610e3982613763565b600080604083850312156138b657600080fd5b6138bf83613763565b946020939093013593505050565b6000806000604084860312156138e257600080fd5b6138eb84613763565b9250602084013567ffffffffffffffff81111561390757600080fd5b6139138682870161377a565b9497909650939450505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061398a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139e8576139e8613990565b604052919050565b600067ffffffffffffffff821115613a0a57613a0a613990565b50601f01601f191660200190565b600080600060608486031215613a2d57600080fd5b613a3684613763565b9250602084013567ffffffffffffffff811115613a5257600080fd5b8401601f81018613613a6357600080fd5b8035613a76613a71826139f0565b6139bf565b818152876020838501011115613a8b57600080fd5b81602084016020830137600060208383010152809450505050613ab0604085016137c3565b90509250925092565b60005b83811015613ad4578181015183820152602001613abc565b50506000910152565b60008151808452613af5816020860160208601613ab9565b601f01601f19169290920160200192915050565b602081526000610e396020830184613add565b73ffffffffffffffffffffffffffffffffffffffff81168114611d8e57600080fd5b600060208284031215613b5057600080fd5b8135610e3981613b1c565b60008060408385031215613b6e57600080fd5b613b7783613763565b9150613b8560208401613763565b90509250929050565b600080600080600060808688031215613ba657600080fd5b613baf86613763565b9450613bbd60208701613763565b935060408601359250606086013567ffffffffffffffff811115613be057600080fd5b613bec8882890161377a565b969995985093965092949392505050565b600080600060608486031215613c1257600080fd5b613c1b84613763565b9250613c2960208501613763565b9150604084013590509250925092565b600067ffffffffffffffff821115613c5357613c53613990565b5060051b60200190565b60006020808385031215613c7057600080fd5b823567ffffffffffffffff811115613c8757600080fd5b8301601f81018513613c9857600080fd5b8035613ca6613a7182613c39565b81815260059190911b82018301908381019087831115613cc557600080fd5b928401925b82841015613cec578335613cdd81613b1c565b82529284019290840190613cca565b979650505050505050565b60ff81168114611d8e57600080fd5b60008060408385031215613d1957600080fd5b8235613d2481613b1c565b91506020830135613d3481613cf7565b809150509250929050565b60008060008060808587031215613d5557600080fd5b613d5e85613763565b9350613d6c60208601613763565b92506040850135613d7c81613b1c565b9396929550929360600135925050565b600181811c90821680613da057607f821691505b602082108103610ed1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008154613e2581613d8c565b808552602060018381168015613e425760018114613e5c57613e8a565b60ff198516838901528284151560051b8901019550613e8a565b866000528260002060005b85811015613e825781548a8201860152908301908401613e67565b890184019650505b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000613eca60a0830186613e18565b8281036060840152613edc8186613e18565b9150508260808301529695505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff84168152604060208201526000611ffd604083018486613eef565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115613f7a57613f7a613f38565b92915050565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b601f821115611cef576000816000526020600020601f850160051c81016020861015613fe25750805b601f850160051c820191505b8181101561138457828155600101613fee565b815167ffffffffffffffff81111561401b5761401b613990565b61402f816140298454613d8c565b84613fb9565b602080601f831160018114614082576000841561404c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611384565b600085815260208120601f198616915b828110156140b157888601518255948401946001909101908401614092565b50858210156140ed57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600061ffff808816835280871660208401525084604083015260806060830152613cec608083018486613eef565b600080835461413981613d8c565b60018281168015614151576001811461416657614195565b60ff1984168752821515830287019450614195565b8760005260208060002060005b8581101561418c5781548a820152908401908201614173565b50505082870194505b50929695505050505050565b67ffffffffffffffff8311156141b9576141b9613990565b6141cd836141c78354613d8c565b83613fb9565b6000601f84116001811461421f57600085156141e95750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610ccf565b600083815260209020601f19861690835b828110156142505786850135825560209485019460019092019101614230565b508682101561428b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8181168382160190811115613f7a57613f7a613f38565b60006142c4613a71846139f0565b90508281528383830111156142d857600080fd5b610e39836020830184613ab9565b600082601f8301126142f757600080fd5b610e39838351602085016142b6565b60006020828403121561431857600080fd5b815167ffffffffffffffff81111561432f57600080fd5b61433b848285016142e6565b949350505050565b61ffff851681526080602082015260006143606080830186613add565b67ffffffffffffffff851660408401528281036060840152613cec8185613add565b60008251614394818460208701613ab9565b9190910192915050565b67ffffffffffffffff8316815260406020820152600061433b6040830184613add565b600080604083850312156143d457600080fd5b825167ffffffffffffffff8111156143eb57600080fd5b6143f7858286016142e6565b925050602083015190509250929050565b600082601f83011261441957600080fd5b81516020614429613a7183613c39565b8083825260208201915060208460051b87010193508684111561444b57600080fd5b602086015b848110156144675780518352918301918301614450565b509695505050505050565b600082601f83011261448357600080fd5b81516020614493613a7183613c39565b82815260059290921b840181019181810190868411156144b257600080fd5b8286015b8481101561446757805167ffffffffffffffff8111156144d65760008081fd5b8701603f810189136144e85760008081fd5b6144f98986830151604084016142b6565b8452509183019183016144b6565b600082601f83011261451857600080fd5b81516020614528613a7183613c39565b82815260059290921b8401810191818101908684111561454757600080fd5b8286015b8481101561446757805167ffffffffffffffff81111561456b5760008081fd5b6145798986838b01016142e6565b84525091830191830161454b565b805161377581613cf7565b600080600080600060a086880312156145aa57600080fd5b855167ffffffffffffffff808211156145c257600080fd5b818801915088601f8301126145d657600080fd5b815160206145e6613a7183613c39565b82815260059290921b8401810191818101908c84111561460557600080fd5b948201945b8386101561462c57855161461d81613b1c565b8252948201949082019061460a565b918b015191995090935050508082111561464557600080fd5b61465189838a01614408565b9550604088015191508082111561466757600080fd5b61467389838a01614472565b9450606088015191508082111561468957600080fd5b5061469688828901614507565b9250506146a560808701614587565b90509295509295909350565b60008282518085526020808601955060208260051b8401016020860160005b848110156146fe57601f198684030189526146ec838351613add565b988401989250908301906001016146d0565b5090979650505050505050565b60a0808252865190820181905260009060209060c0840190828a01845b8281101561475a57815173ffffffffffffffffffffffffffffffffffffffff1684529284019290840190600101614728565b5050508381038285015287518082528883019183019060005b8181101561478f57835183529284019291840191600101614773565b505084810360408601526147a381896146b1565b9250505082810360608401526147b981866146b1565b9150506147cb608083018460ff169052565b9695505050505050565b80820180821115613f7a57613f7a613f38565b61ffff86168152608060208201526000614806608083018688613eef565b67ffffffffffffffff94909416604083015250606001529392505050565b60006020828403121561483657600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a06040820152600061487260a0830186613add565b8281036060840152613edc8186613add565b60006020828403121561489657600080fd5b81518015158114610e3957600080fdfea26469706673582212206e9b4e0e8423ddd67a12f6b1a136938a978661714c282ede340b91a73060ecf464736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2F1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x876919E8 GT PUSH2 0x18F JUMPI DUP1 PUSH4 0xC4461834 GT PUSH2 0xE1 JUMPI DUP1 PUSH4 0xED66039B GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xF4FCFCCA GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xF4FCFCCA EQ PUSH2 0x972 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x992 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xED66039B EQ PUSH2 0x8EF JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x90F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD1DEBA1F GT PUSH2 0xBB JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0x89C JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0x8AF JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC4461834 EQ PUSH2 0x846 JUMPI DUP1 PUSH4 0xC8B42E5B EQ PUSH2 0x85C JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 GT PUSH2 0x143 JUMPI DUP1 PUSH4 0xA6C3D165 GT PUSH2 0x11D JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0x7F2 JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0x826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x755 JUMPI DUP1 PUSH4 0x9F0C3101 EQ PUSH2 0x782 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8CFD8F5C GT PUSH2 0x174 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x6D2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0x9493FFAD EQ PUSH2 0x735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x876919E8 EQ PUSH2 0x69C JUMPI DUP1 PUSH4 0x8A0DAC4A EQ PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D GT PUSH2 0x248 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x1FC JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x64E JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x687 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x600 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x618 JUMPI DUP1 PUSH4 0x70F6AD9A EQ PUSH2 0x638 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x452A9320 GT PUSH2 0x22D JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x49D12605 EQ PUSH2 0x56B JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0x4406BAAF EQ PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x2AA JUMPI DUP1 PUSH4 0x3F1F4FA4 GT PUSH2 0x284 JUMPI DUP1 PUSH4 0x3F1F4FA4 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x4C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x454 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x435BB56 GT PUSH2 0x2DB JUMPI DUP1 PUSH4 0x435BB56 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0xDF37483 EQ PUSH2 0x3E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0x318 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x9D2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36A PUSH2 0x333 CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x6 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 DUP2 DIV DUP3 AND SWAP2 PUSH3 0x10000 SWAP1 SWAP2 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x3DF CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0xC27 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x38A3 JUMP JUMPDEST PUSH2 0xCD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0xCF5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0x43F CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0xD73 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x474 PUSH2 0x46F CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x397 SWAP2 SWAP1 PUSH2 0x394F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x49C CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0xED7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0xEE9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x11ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x546 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH2 0x59E SWAP1 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x397 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x3A18 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 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x444 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x633 CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x1299 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x644 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x675 CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x138C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x397 SWAP2 SWAP1 PUSH2 0x3B09 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x1426 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x6CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x1436 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x6ED CALLDATASIZE PUSH1 0x4 PUSH2 0x3B5B JUMP JUMPDEST PUSH1 0x3 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 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x546 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x741 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x750 CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0x157E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH2 0x546 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x78E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0x79D CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x15C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x7ED CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x16D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x546 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x832 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x841 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x175F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0x2710 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x877 CALLDATASIZE PUSH1 0x4 PUSH2 0x3888 JUMP JUMPDEST PUSH2 0x17E0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x888 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x897 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B8E JUMP JUMPDEST PUSH2 0x1882 JUMP JUMPDEST PUSH2 0x316 PUSH2 0x8AA CALLDATASIZE PUSH1 0x4 PUSH2 0x37DB JUMP JUMPDEST PUSH2 0x193D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x8CA CALLDATASIZE PUSH1 0x4 PUSH2 0x3BFD JUMP JUMPDEST PUSH2 0x1A19 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x8EA CALLDATASIZE PUSH1 0x4 PUSH2 0x38CD JUMP JUMPDEST PUSH2 0x1A83 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x90A CALLDATASIZE PUSH1 0x4 PUSH2 0x3C5D JUMP JUMPDEST PUSH2 0x1ADD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x91B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x546 PUSH2 0x92A CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x96D CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x1CF4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x98D CALLDATASIZE PUSH1 0x4 PUSH2 0x3D06 JUMP JUMPDEST PUSH2 0x1D91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x67A PUSH2 0x9AD CALLDATASIZE PUSH1 0x4 PUSH2 0x3D3F JUMP JUMPDEST PUSH2 0x1F2F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x316 PUSH2 0x9CD CALLDATASIZE PUSH1 0x4 PUSH2 0x386F JUMP JUMPDEST PUSH2 0x2006 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xA5C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xA7A SWAP1 PUSH2 0x3D8C 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 0xAA6 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAF3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAC8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAF3 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 0xAD6 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 0xB0E JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0xB36 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xB2C SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xC1E 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 0x22BF SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC2F PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7E0DB1700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCCF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xCDE PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xCFD PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x10DDB13700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH1 0x24 ADD PUSH2 0xCA1 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0xD94 SWAP1 PUSH2 0x3D8C 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 0xDC0 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE0D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDE2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE0D 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 0xDF0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xE24 SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 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 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE64 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE7F JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xE9F JUMPI POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x992F7AD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEDF PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x2520 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH2 0xEF4 DUP3 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF05 JUMPI PUSH2 0xF05 PUSH2 0x3920 JUMP JUMPDEST EQ PUSH2 0xF9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A63616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656C3A2070726F706F73616C2073686F756C64206265207175657565642061 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6E64206E6F742065786563757465640000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x1039 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A63616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656C3A2073656E646572206D75737420626520677561726469616E00000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP3 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP3 DUP7 SWAP2 PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C SWAP2 SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x11D0 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x591FCDFE DUP7 PUSH1 0x2 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x10EE JUMPI PUSH2 0x10EE PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP9 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0x1129 JUMPI PUSH2 0x1129 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP9 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1149 JUMPI PUSH2 0x1149 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP10 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1168 JUMPI PUSH2 0x1168 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1193 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E95 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x10B5 JUMP JUMPDEST POP POP POP PUSH1 0x0 SWAP3 DUP4 MSTORE POP POP PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x11F5 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42D65A8D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0x126B SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3F1A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC1E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST CALLER ADDRESS EQ PUSH2 0x130E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x204C7A4170700000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1384 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 0x257F SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x13A5 SWAP1 PUSH2 0x3D8C 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 0x13D1 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x141E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x13F3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x141E 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 0x1401 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x142E PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xEE7 PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ DUP1 PUSH2 0x1473 JUMPI POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0x14E7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A736574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x477561726469616E3A206F776E6572206F7220677561726469616E206F6E6C79 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x14F0 DUP2 PUSH2 0x29EE JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1586 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xA653BB1A57E62CFD43F0DC557C7223E8B58896238B5F9B300EF646D37B82D1B SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x8 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x15EA SWAP1 PUSH2 0x3D8C 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 0x1616 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1663 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1638 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1663 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 0x1646 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x16BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xE39 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x16CE SWAP2 SWAP1 PUSH2 0x3F67 JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x16DE PUSH2 0x24B9 JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16F3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F80 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 0x2 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x171E SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1752 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F1A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1767 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x17E8 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP1 DUP5 AND SWAP3 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV AND SWAP1 PUSH32 0xB17C58D5977290696B6EEA77C81C725F3DC83E426252BD9ECE6287C1B8D0E968 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0xB DUP1 SLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND PUSH21 0x10000000000000000000000000000000000000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x188A PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCBED8B9C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1904 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x40FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x191E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1932 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1945 PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0x194D PUSH2 0x2B63 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x195D SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 PUSH2 0x1986 SWAP2 SWAP1 PUSH2 0x412B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x1A01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A726574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72794D6573736167653A206E6F74206120747275737465642072656D6F746500 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1A0F DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2BBC JUMP JUMPDEST PUSH2 0x1384 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1A21 PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD SWAP3 DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH1 0x60 ADD PUSH2 0x1752 JUMP JUMPDEST PUSH2 0x1A8B PUSH2 0x24B9 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1AA9 DUP3 DUP5 DUP4 PUSH2 0x41A1 JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1752 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F1A JUMP JUMPDEST PUSH2 0x1AE5 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF3 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP3 MLOAD EQ PUSH2 0x1BBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B733A6E756D626572206F662074696D656C6F636B73207368 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F756C64206D6174636820746865206E756D626572206F6620676F7665726E61 PUSH1 0x84 DUP3 ADD MSTORE PUSH32 0x6E636520726F7574657300000000000000000000000000000000000000000000 PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 PUSH1 0xFF AND DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1CEF JUMPI PUSH2 0x1BF0 DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1BE3 JUMPI PUSH2 0x1BE3 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x29EE JUMP JUMPDEST DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1C05 JUMPI PUSH2 0x1C05 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0xFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE DUP5 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0xFC45AE51AC4893A3F843D030FBFD4037C0C196109C9E667645B8F144C83C16EA SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1C86 JUMPI PUSH2 0x1C86 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0xFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1BBD JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1CFC PUSH2 0x24B9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1D85 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1D8E DUP2 PUSH2 0x2E0A JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1D99 PUSH2 0x24B9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA7 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP3 PUSH1 0xFF AND LT PUSH2 0x1E4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x4B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A736574 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B50656E64696E6741646D696E3A20696E76616C6964207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C2074797065000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x4DD18BF500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x4DD18BF5 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND DUP2 MSTORE PUSH1 0xFF DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6AC0B2C896B49975F12891F83C573BDF05490FE6B707CBAA2BA84C36094CBAEC SWAP4 POP ADD SWAP1 POP PUSH2 0x1752 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF5ECBDBC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FD5 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 0x1FFD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4306 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x200E PUSH2 0x2B63 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x2019 DUP3 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x202A JUMPI PUSH2 0x202A PUSH2 0x3920 JUMP JUMPDEST EQ PUSH2 0x20C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x53 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A657865 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x637574653A2070726F706F73616C2063616E206F6E6C79206265206578656375 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x7465642069662069742069732071756575656400000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x6 DUP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 DUP2 SWAP1 SSTORE PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xE SWAP1 SWAP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 DUP5 ADD SLOAD SWAP3 MLOAD SWAP4 SWAP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP4 SWAP1 SWAP3 SWAP2 DUP7 SWAP2 PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2299 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x825F38F DUP7 PUSH1 0x2 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x21A4 JUMPI PUSH2 0x21A4 PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP9 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0x21DF JUMPI PUSH2 0x21DF PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP9 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x21FF JUMPI PUSH2 0x21FF PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP10 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x221E JUMPI PUSH2 0x221E PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2249 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E95 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2268 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 0x2290 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4306 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x216B JUMP JUMPDEST POP POP POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP PUSH2 0x1D8E SWAP1 POP PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD PUSH2 0xFFFF DUP6 DUP2 AND PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP3 DIV AND EQ PUSH2 0x237B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x48 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F626C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F636B696E674C7A526563656976653A20696E76616C696420736F7572636520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x636861696E206964000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 ADDRESS SWAP1 PUSH4 0x66AD5C8A SWAP1 PUSH2 0x23A4 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH2 0x4343 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2406 PUSH2 0x7530 GAS PUSH2 0x23FC SWAP2 SWAP1 PUSH2 0x3F67 JUMP JUMPDEST ADDRESS SWAP1 PUSH1 0x96 DUP7 PUSH2 0x2E81 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x24AF JUMPI PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD DUP6 SWAP2 SWAP1 PUSH2 0x2434 SWAP1 DUP11 SWAP1 PUSH2 0x4382 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x2468 SWAP1 DUP9 SWAP1 PUSH2 0x4382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP9 PUSH2 0xFFFF AND PUSH32 0x41D73CE7BE31A588D59FE9013CDCFE583BC0AAB25093D042B64CADE0DF730656 DUP9 DUP5 PUSH1 0x40 MLOAD PUSH2 0x24A6 SWAP3 SWAP2 SWAP1 PUSH2 0x439E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2528 PUSH2 0x2F0C JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2587 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x259E SWAP2 SWAP1 PUSH2 0x43C1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x25BE SWAP2 SWAP1 PUSH2 0x4592 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP5 SWAP10 POP SWAP3 SWAP8 POP SWAP1 SWAP6 POP SWAP4 POP SWAP2 POP ISZERO PUSH2 0x2673 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x46 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A206475706C6963617465207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C0000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST DUP4 MLOAD DUP6 MLOAD EQ DUP1 ISZERO PUSH2 0x2685 JUMPI POP DUP3 MLOAD DUP6 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x2692 JUMPI POP DUP2 MLOAD DUP6 MLOAD EQ JUMPDEST PUSH2 0x272A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A2070726F706F73616C2066756E PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6374696F6E20696E666F726D6174696F6E206172697479206D69736D61746368 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2736 PUSH1 0x2 PUSH1 0x1 PUSH2 0x429D JUMP JUMPDEST PUSH1 0xFF AND DUP2 PUSH1 0xFF AND LT PUSH2 0x27D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A5F6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E626C6F636B696E674C7A526563656976653A20696E76616C69642070726F70 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F73616C20747970650000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x27E0 DUP6 MLOAD PUSH2 0x2FB1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE DUP8 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 DUP2 MSTORE DUP4 DUP6 ADD DUP11 DUP2 MSTORE PUSH1 0x60 DUP6 ADD DUP11 SWAP1 MSTORE PUSH1 0x80 DUP6 ADD DUP10 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD DUP9 SWAP1 MSTORE PUSH1 0xC0 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0xE0 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0xFF DUP8 AND PUSH2 0x100 DUP7 ADD MSTORE DUP12 DUP5 MSTORE PUSH1 0xD DUP4 MSTORE SWAP5 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP2 MLOAD PUSH1 0x1 DUP4 ADD SSTORE SWAP3 MLOAD DUP1 MLOAD SWAP3 SWAP4 DUP5 SWAP4 PUSH2 0x2859 SWAP3 PUSH1 0x2 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x3571 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x2875 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x35FB JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x2891 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3636 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x28AD SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3688 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0xE0 DUP5 ADD MLOAD PUSH2 0x100 SWAP5 DUP6 ADD MLOAD PUSH1 0xFF AND PUSH3 0x10000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF SWAP2 ISZERO ISZERO SWAP1 SWAP6 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF SWAP5 ISZERO ISZERO SWAP5 SWAP1 SWAP5 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0xC DUP8 SWAP1 SSTORE DUP1 MLOAD PUSH1 0x40 MLOAD PUSH32 0xC37D19C9A6A9A568B5071658F9B5082FF8F142DF3CF090385C5621AB11938065 SWAP1 PUSH2 0x2992 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x470B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x29A3 DUP8 PUSH2 0x3041 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x29B9 PUSH2 0x2F5E JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2555 CALLER SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1D8E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x2A49 DUP2 PUSH1 0x1F PUSH2 0x47D5 JUMP JUMPDEST LT ISZERO PUSH2 0x2A97 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x736C6963655F6F766572666C6F77000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x2AA1 DUP3 DUP5 PUSH2 0x47D5 JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x2AF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x736C6963655F6F75744F66426F756E6473000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x2B10 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2B5A 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 0x2B49 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x2B31 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 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0x2BB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2BDF SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x2C7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6167650000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2C8B SWAP3 SWAP2 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x2D06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2D29 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x3DD9 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH8 0xFFFFFFFFFFFFFFFF 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 0x2DC2 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 0x257F SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DF9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2EA7 JUMPI PUSH2 0x2EA7 PUSH2 0x3990 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 0x2ED1 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 0x2EF3 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 PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xA SLOAD TIMESTAMP SWAP2 SWAP1 PUSH3 0x15180 SWAP1 PUSH2 0x2FC9 SWAP1 DUP5 PUSH2 0x3F67 JUMP JUMPDEST GT ISZERO PUSH2 0x2FDB JUMPI POP PUSH1 0xA DUP2 SWAP1 SSTORE DUP2 PUSH2 0x2FE8 JUMP JUMPDEST PUSH2 0x2FE5 DUP4 DUP3 PUSH2 0x47D5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x8 SLOAD DUP2 GT ISZERO PUSH2 0x303A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565646564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH32 0x6A42B8F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30D3 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 0x30F7 SWAP2 SWAP1 PUSH2 0x4824 JUMP JUMPDEST PUSH2 0x3101 SWAP1 TIMESTAMP PUSH2 0x47D5 JUMP JUMPDEST PUSH1 0x1 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD SWAP2 MLOAD SWAP3 SWAP4 POP PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP2 DUP6 SWAP1 PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x316F SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1384 JUMPI PUSH2 0x3337 DUP6 PUSH1 0x2 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x319A JUMPI PUSH2 0x319A PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x3 DUP8 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x31D5 JUMPI PUSH2 0x31D5 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP8 PUSH1 0x4 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x31F5 JUMPI PUSH2 0x31F5 PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x320A SWAP1 PUSH2 0x3D8C 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 0x3236 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3283 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3258 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3283 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 0x3266 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP9 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x329D JUMPI PUSH2 0x329D PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x32B2 SWAP1 PUSH2 0x3D8C 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 0x32DE SWAP1 PUSH2 0x3D8C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x332B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3300 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x332B 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 0x330E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP9 DUP9 PUSH2 0x333F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x317A JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2B06537 SWAP2 PUSH2 0x338B SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 ADD PUSH2 0x483D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33BF SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33DC 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 0x3400 SWAP2 SWAP1 PUSH2 0x4884 JUMP JUMPDEST ISZERO PUSH2 0x34BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x63 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E476F7665726E616E63654578656375746F723A3A717565 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x75654F72526576657274496E7465726E616C3A206964656E746963616C207072 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6F706F73616C20616374696F6E20616C72656164792071756575656420617420 PUSH1 0x84 DUP3 ADD MSTORE PUSH32 0x6574610000000000000000000000000000000000000000000000000000000000 PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0xA53 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x3A66F90100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x352E SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x483D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x354D 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 0xC1E SWAP2 SWAP1 PUSH2 0x4824 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x35EB JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x35EB JUMPI DUP3 MLOAD DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3591 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x36DA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x35EB JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x35EB JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x361B JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x367C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x367C JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x366C SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3656 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x36EF JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x36CE JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x36CE JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x36BE SWAP1 DUP3 PUSH2 0x4001 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x36A8 JUMP JUMPDEST POP PUSH2 0x35F7 SWAP3 SWAP2 POP PUSH2 0x370C JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x36DB JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 PUSH2 0x3703 DUP3 DUP3 PUSH2 0x3729 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x36EF JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x35F7 JUMPI PUSH1 0x0 PUSH2 0x3720 DUP3 DUP3 PUSH2 0x3729 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x370C JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3735 SWAP1 PUSH2 0x3D8C JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3745 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 0x1D8E SWAP2 SWAP1 PUSH2 0x36DA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x3775 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x378C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x37BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3775 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x37F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37FD DUP8 PUSH2 0x3763 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x381A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3826 DUP11 DUP4 DUP12 ADD PUSH2 0x377A JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP DUP6 SWAP2 POP PUSH2 0x383A PUSH1 0x40 DUP11 ADD PUSH2 0x37C3 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3850 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x385D DUP10 DUP3 DUP11 ADD PUSH2 0x377A JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x389A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP3 PUSH2 0x3763 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x38B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38BF DUP4 PUSH2 0x3763 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x38E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38EB DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3913 DUP7 DUP3 DUP8 ADD PUSH2 0x377A JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x398A JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x39E8 JUMPI PUSH2 0x39E8 PUSH2 0x3990 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3A0A JUMPI PUSH2 0x3A0A PUSH2 0x3990 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3A36 DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH1 0x1F DUP2 ADD DUP7 SGT PUSH2 0x3A63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A76 PUSH2 0x3A71 DUP3 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x39BF JUMP JUMPDEST DUP2 DUP2 MSTORE DUP8 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3A8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP PUSH2 0x3AB0 PUSH1 0x40 DUP6 ADD PUSH2 0x37C3 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AD4 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3ABC JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3AF5 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3AB9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xE39 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3ADD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xE39 DUP2 PUSH2 0x3B1C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B77 DUP4 PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B85 PUSH1 0x20 DUP5 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BAF DUP7 PUSH2 0x3763 JUMP JUMPDEST SWAP5 POP PUSH2 0x3BBD PUSH1 0x20 DUP8 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3BE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BEC DUP9 DUP3 DUP10 ADD PUSH2 0x377A JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3C12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C1B DUP5 PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH2 0x3C29 PUSH1 0x20 DUP6 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3C53 JUMPI PUSH2 0x3C53 PUSH2 0x3990 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3C98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3CA6 PUSH2 0x3A71 DUP3 PUSH2 0x3C39 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x5 SWAP2 SWAP1 SWAP2 SHL DUP3 ADD DUP4 ADD SWAP1 DUP4 DUP2 ADD SWAP1 DUP8 DUP4 GT ISZERO PUSH2 0x3CC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 DUP5 ADD SWAP3 JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x3CEC JUMPI DUP4 CALLDATALOAD PUSH2 0x3CDD DUP2 PUSH2 0x3B1C JUMP JUMPDEST DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH2 0x3CCA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3D24 DUP2 PUSH2 0x3B1C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3D34 DUP2 PUSH2 0x3CF7 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D5E DUP6 PUSH2 0x3763 JUMP JUMPDEST SWAP4 POP PUSH2 0x3D6C PUSH1 0x20 DUP7 ADD PUSH2 0x3763 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x3D7C DUP2 PUSH2 0x3B1C JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3DA0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xED1 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x3E25 DUP2 PUSH2 0x3D8C JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x20 PUSH1 0x1 DUP4 DUP2 AND DUP1 ISZERO PUSH2 0x3E42 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3E5C JUMPI PUSH2 0x3E8A JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP4 DUP10 ADD MSTORE DUP3 DUP5 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD ADD SWAP6 POP PUSH2 0x3E8A JUMP JUMPDEST DUP7 PUSH1 0x0 MSTORE DUP3 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3E82 JUMPI DUP2 SLOAD DUP11 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP5 ADD PUSH2 0x3E67 JUMP JUMPDEST DUP10 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3ECA PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3E18 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3EDC DUP2 DUP7 PUSH2 0x3E18 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1FFD PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1CEF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3FE2 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1384 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3FEE JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x401B JUMPI PUSH2 0x401B PUSH2 0x3990 JUMP JUMPDEST PUSH2 0x402F DUP2 PUSH2 0x4029 DUP5 SLOAD PUSH2 0x3D8C JUMP JUMPDEST DUP5 PUSH2 0x3FB9 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4082 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x404C JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1384 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x40B1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x4092 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x40ED JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3CEC PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x3EEF JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x4139 DUP2 PUSH2 0x3D8C JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x4151 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x4166 JUMPI PUSH2 0x4195 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x4195 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x418C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x4173 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x41B9 JUMPI PUSH2 0x41B9 PUSH2 0x3990 JUMP JUMPDEST PUSH2 0x41CD DUP4 PUSH2 0x41C7 DUP4 SLOAD PUSH2 0x3D8C JUMP JUMPDEST DUP4 PUSH2 0x3FB9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x421F JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x41E9 JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0xCCF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4250 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4230 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x428B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42C4 PUSH2 0x3A71 DUP5 PUSH2 0x39F0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x42D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3AB9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE39 DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x42B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4318 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x432F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x433B DUP5 DUP3 DUP6 ADD PUSH2 0x42E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4360 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3ADD JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3CEC DUP2 DUP6 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4394 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3AB9 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x433B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x43D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x43EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43F7 DUP6 DUP3 DUP7 ADD PUSH2 0x42E6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4419 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4429 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x444B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x4450 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4493 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x44B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44D6 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x44E8 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x44F9 DUP10 DUP7 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD PUSH2 0x42B6 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x44B6 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4518 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x4528 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4547 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x4467 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x456B JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x4579 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x42E6 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x454B JUMP JUMPDEST DUP1 MLOAD PUSH2 0x3775 DUP2 PUSH2 0x3CF7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x45AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x45C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x45D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x45E6 PUSH2 0x3A71 DUP4 PUSH2 0x3C39 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP13 DUP5 GT ISZERO PUSH2 0x4605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x462C JUMPI DUP6 MLOAD PUSH2 0x461D DUP2 PUSH2 0x3B1C JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH2 0x460A JUMP JUMPDEST SWAP2 DUP12 ADD MLOAD SWAP2 SWAP10 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH2 0x4645 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4651 DUP10 DUP4 DUP11 ADD PUSH2 0x4408 JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4667 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4673 DUP10 DUP4 DUP11 ADD PUSH2 0x4472 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4689 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4696 DUP9 DUP3 DUP10 ADD PUSH2 0x4507 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x46A5 PUSH1 0x80 DUP8 ADD PUSH2 0x4587 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MLOAD DUP1 DUP6 MSTORE PUSH1 0x20 DUP1 DUP7 ADD SWAP6 POP PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x46FE JUMPI PUSH1 0x1F NOT DUP7 DUP5 SUB ADD DUP10 MSTORE PUSH2 0x46EC DUP4 DUP4 MLOAD PUSH2 0x3ADD JUMP JUMPDEST SWAP9 DUP5 ADD SWAP9 SWAP3 POP SWAP1 DUP4 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x46D0 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP7 MLOAD SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x20 SWAP1 PUSH1 0xC0 DUP5 ADD SWAP1 DUP3 DUP11 ADD DUP5 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x475A JUMPI DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4728 JUMP JUMPDEST POP POP POP DUP4 DUP2 SUB DUP3 DUP6 ADD MSTORE DUP8 MLOAD DUP1 DUP3 MSTORE DUP9 DUP4 ADD SWAP2 DUP4 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x478F JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4773 JUMP JUMPDEST POP POP DUP5 DUP2 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x47A3 DUP2 DUP10 PUSH2 0x46B1 JUMP JUMPDEST SWAP3 POP POP POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x47B9 DUP2 DUP7 PUSH2 0x46B1 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x47CB PUSH1 0x80 DUP4 ADD DUP5 PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3F7A JUMPI PUSH2 0x3F7A PUSH2 0x3F38 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4806 PUSH1 0x80 DUP4 ADD DUP7 DUP9 PUSH2 0x3EEF JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF SWAP5 SWAP1 SWAP5 AND PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4836 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4872 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3ADD JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x3EDC DUP2 DUP7 PUSH2 0x3ADD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4896 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE39 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH15 0x9B4E0E8423DDD67A12F6B1A136938A SWAP8 DUP7 PUSH2 0x714C 0x28 0x2E 0xDE CALLVALUE SIGNEXTEND SWAP2 0xA7 ADDRESS PUSH1 0xEC DELEGATECALL PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"1113:15302:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1256:825:2;;;;;;;;;;-1:-1:-1;1256:825:2;;;;;:::i;:::-;;:::i;:::-;;2800:45:28;;;;;;;;;;-1:-1:-1;2800:45:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2081:25:54;;;2137:2;2122:18;;2115:34;;;;2192:14;;2185:22;2165:18;;;2158:50;;;;2251:14;;2244:22;2239:2;2224:18;;2217:50;2316:4;2304:17;2298:3;2283:19;;2276:46;2068:3;2053:19;2800:45:28;;;;;;;;841:35:25;;;;;;;;;;;;;;;;;;;2479:25:54;;;2467:2;2452:18;841:35:25;2333:177:54;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;6884:247::-;;;;;;;;;;-1:-1:-1;6884:247:2;;;;;:::i;:::-;;:::i;:::-;;;3612:14:54;;3605:22;3587:41;;3575:2;3560:18;6884:247:2;3447:187:54;10773:501:28;;;;;;;;;;-1:-1:-1;10773:501:28;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;810:53:2:-;;;;;;;;;;-1:-1:-1;810:53:2;;;;;:::i;:::-;;;;;;;;;;;;;;2196:65:25;;;;;;;;;;;;;:::i;8078:950:28:-;;;;;;;;;;-1:-1:-1;8078:950:28;;;;;:::i;:::-;;:::i;5051:176:2:-;;;;;;;;;;-1:-1:-1;5051:176:2;;;;;:::i;:::-;;:::i;2676:35:28:-;;;;;;;;;;;;;;;;2485:23;;;;;;;;;;-1:-1:-1;2485:23:28;;;;;;;;;;;4412:42:54;4400:55;;;4382:74;;4370:2;4355:18;2485:23:28;4236:226:54;2585:24:28;;;;;;;;;;-1:-1:-1;2585:24:28;;;;;;;;;;;;;;4641:6:54;4629:19;;;4611:38;;4599:2;4584:18;2585:24:28;4467:188:54;622:85:3;;;;;;;;;;-1:-1:-1;622:85:3;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:84:17;;;;;;;;;;-1:-1:-1;1685:7:17;;;;1615:84;;1912:380:3;;;;;;;;;;-1:-1:-1;1912:380:3;;;;;:::i;:::-;;:::i;988:41:25:-;;;;;;;;;;;;;;;;2367:47;;;;;;;;;682:51:2;;;;;;;;;;-1:-1:-1;682:51:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2021:61:25:-;;;;;;;;;;;;;:::i;1133:43::-;;;;;;;;;;;;;;;;5482:350:28;;;;;;;;;;-1:-1:-1;5482:350:28;;;;;:::i;:::-;;:::i;739:65:2:-;;;;;;;;;;-1:-1:-1;739:65:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:16;;;;;;;;;;-1:-1:-1;1273:6:16;;;;1201:85;;1725:182:25;;;;;;;;;;-1:-1:-1;1725:182:25;;;;;:::i;:::-;;:::i;869:23:2:-;;;;;;;;;;-1:-1:-1;869:23:2;;;;;;;;3071:38:28;;;;;;;;;;-1:-1:-1;3071:38:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;5864:326:2;;;;;;;;;;-1:-1:-1;5864:326:2;;;;;:::i;:::-;;:::i;5580:278::-;;;;;;;;;;-1:-1:-1;5580:278:2;;;;;:::i;:::-;;:::i;630:46::-;;;;;;;;;;;;;;;6196:133;;;;;;;;;;-1:-1:-1;6196:133:2;;;;;:::i;:::-;;:::i;568:55::-;;;;;;;;;;;;618:5;568:55;;5072:156:28;;;;;;;;;;-1:-1:-1;5072:156:28;;;;;:::i;:::-;;:::i;4545:240:2:-;;;;;;;;;;-1:-1:-1;4545:240:2;;;;;:::i;:::-;;:::i;10165:463:28:-;;;;;;:::i;:::-;;:::i;6335:255:2:-;;;;;;;;;;-1:-1:-1;6335:255:2;;;;;:::i;:::-;;:::i;5370:204::-;;;;;;;;;;-1:-1:-1;5370:204:2;;;;;:::i;:::-;;:::i;6094:576:28:-;;;;;;;;;;-1:-1:-1;6094:576:28;;;;;:::i;:::-;;:::i;2944:54::-;;;;;;;;;;-1:-1:-1;2944:54:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;2081:198:16;;;;;;;;;;-1:-1:-1;2081:198:16;;;;;:::i;:::-;;:::i;9335:481:28:-;;;;;;;;;;-1:-1:-1;9335:481:28;;;;;:::i;:::-;;:::i;4239:247:2:-;;;;;;;;;;-1:-1:-1;4239:247:2;;;;;:::i;:::-;;:::i;6898:864:28:-;;;;;;;;;;-1:-1:-1;6898:864:28;;;;;:::i;:::-;;:::i;1256:825:2:-;719:10:19;1532::2;1508:35;;;1500:78;;;;-1:-1:-1;;;1500:78:2;;11760:2:54;1500:78:2;;;11742:21:54;11799:2;11779:18;;;11772:30;11838:32;11818:18;;;11811:60;11888:18;;1500:78:2;;;;;;;;;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;;12837:2:54;1792:209:2;;;12819:21:54;12876:2;12856:18;;;12849:30;12915:34;12895:18;;;12888:62;12986:8;12966:18;;;12959:36;13012:19;;1792:209:2;12635:402:54;1792:209:2;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;4791:121::-;1094:13:16;:11;:13::i;:::-;4870:35:2::1;::::0;;;;4641:6:54;4629:19;;4870:35:2::1;::::0;::::1;4611:38:54::0;4870:10:2::1;:25;;::::0;::::1;::::0;4584:18:54;;4870:35:2::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4791:121:::0;:::o;6649:140::-;1094:13:16;:11;:13::i;:::-;6739:35:2::1;::::0;;::::1;;::::0;;;:22:::1;:35;::::0;;;;:43;6649:140::o;4918:127::-;1094:13:16;:11;:13::i;:::-;5000:38:2::1;::::0;;;;4641:6:54;4629:19;;5000:38:2::1;::::0;::::1;4611::54::0;5000:10:2::1;:28;;::::0;::::1;::::0;4584:18:54;;5000:38:2::1;4467:188:54::0;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;10773:501:28:-;10830:13;10883:22;;;:9;:22;;;;;10919:17;;;;;;10915:353;;;-1:-1:-1;10959:22:28;;10773:501;-1:-1:-1;;10773:501:28:o;10915:353::-;11002:17;;;;;;;;;10998:270;;;-1:-1:-1;11042:22:28;;10773:501;-1:-1:-1;;10773:501:28:o;10998:270::-;11085:19;;;;:6;:19;;;;;;;;11081:187;;;-1:-1:-1;11180:20:28;;10773:501;-1:-1:-1;;10773:501:28:o;11081:187::-;11238:19;;;;;;;;;;;;;;11081:187;10845:429;10773:501;;;:::o;2196:65:25:-;1094:13:16;:11;:13::i;:::-;2244:10:25::1;:8;:10::i;:::-;2196:65::o:0;8078:950:28:-;8177:20;8155:18;8161:11;8155:5;:18::i;:::-;:42;;;;;;;;:::i;:::-;;8134:168;;;;-1:-1:-1;;;8134:168:28;;13244:2:54;8134:168:28;;;13226:21:54;13283:2;13263:18;;;13256:30;13322:34;13302:18;;;13295:62;13393:34;13373:18;;;13366:62;13465:17;13444:19;;;13437:46;13500:19;;8134:168:28;13042:483:54;8134:168:28;8312:25;8340:22;;;:9;:22;;;;;8394:8;;;;8380:10;:22;8372:95;;;;-1:-1:-1;;;8372:95:28;;13732:2:54;8372:95:28;;;13714:21:54;13771:2;13751:18;;;13744:30;13810:34;13790:18;;;13783:62;13881:30;13861:18;;;13854:58;13929:19;;8372:95:28;13530:424:54;8372:95:28;8478:17;;;:24;;-1:-1:-1;;8478:24:28;8498:4;8478:24;;;;;;;8551:21;;;;8478:24;8551:21;8478:17;8533:40;;;:17;:40;;;;;;;8597:12;;;;8551:21;8636:16;;:23;8675:29;;8533:40;;;;;8597:12;;8692:11;;8675:29;;8478:17;8675:29;8720:9;8715:271;8735:6;8731:1;:10;8715:271;;;8762:8;:26;;;8806:8;:16;;8823:1;8806:19;;;;;;;;:::i;:::-;;;;;;;;;;;8843:15;;;:18;;8806:19;;;;;8859:1;;8843:18;;;;;;:::i;:::-;;;;;;;;;8879:8;:19;;8899:1;8879:22;;;;;;;;:::i;:::-;;;;;;;;8919:8;:18;;8938:1;8919:21;;;;;;;;:::i;:::-;;;;;;;;8958:3;8762:213;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8743:3;;;;;8715:271;;;-1:-1:-1;;;9002:19:28;;;;-1:-1:-1;;9002:6:28;:19;;;;;8995:26;;-1:-1:-1;;8995:26:28;;;8078:950::o;5051:176:2:-;1094:13:16;:11;:13::i;:::-;5165:55:2::1;::::0;;;;:29:::1;:10;:29;::::0;::::1;::::0;:55:::1;::::0;5195:11;;5208;;;;5165:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;1912:380:3::0;719:10:19;2162:4:3;2138:29;2130:80;;;;-1:-1:-1;;;2130:80:3;;16632:2:54;2130:80:3;;;16614:21:54;16671:2;16651:18;;;16644:30;16710:34;16690:18;;;16683:62;16781:8;16761:18;;;16754:36;16807:19;;2130:80:3;16430:402:54;2130:80:3;2220:65;2242:11;2255;;2220:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2220:65:3;;;;;;;;;;;;;;;;;;;;;;2268:6;;-1:-1:-1;2220:65:3;-1:-1:-1;2276:8:3;;;;;;2220:65;;2276:8;;;;2220:65;;;;;;;;;-1:-1:-1;2220:21:3;;-1:-1:-1;;;2220:65:3:i;:::-;1912:380;;;;;;:::o;682:51:2:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2021:61:25:-;1094:13:16;:11;:13::i;:::-;2067:8:25::1;:6;:8::i;5482:350:28:-:0;5578:8;;;;5564:10;:22;;:47;;-1:-1:-1;1273:6:16;;;;5590:10:28;:21;5564:47;5543:158;;;;;-1:-1:-1;;;5543:158:28;;17039:2:54;5543:158:28;;;17021:21:54;17058:18;;;17051:30;;;;17117:34;17097:18;;;17090:62;17188:34;17168:18;;;17161:62;17240:19;;5543:158:28;16837:428:54;5543:158:28;5711:33;5732:11;5711:20;:33::i;:::-;5771:8;;5759:34;;;;;;;5771:8;;5759:34;;5771:8;;5759:34;5803:8;:22;;;;;;;;;;;;;;;5482:350::o;1725:182:25:-;1094:13:16;:11;:13::i;:::-;1832:20:25::1;::::0;1808:53:::1;::::0;;17444:25:54;;;17500:2;17485:18;;17478:34;;;1808:53:25::1;::::0;17417:18:54;1808:53:25::1;;;;;;;1871:20;:29:::0;1725:182::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;;17725:2:54;6032:58:2;;;17707:21:54;17764:2;17744:18;;;17737:30;17803:31;17783:18;;;17776:59;17852:18;;6032:58:2;17523:353:54;6032:58:2;6107:31;6118:1;6135:2;6121:4;:11;:16;;;;:::i;:::-;6107:4;;:31;:10;:31::i;5580:278::-;1094:13:16;: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:16;:11;:13::i;:::-;6265:8:2::1;:20:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;6300:22:::1;::::0;4382:74:54;;;6300:22:2::1;::::0;4370:2:54;4355:18;6300:22:2::1;;;;;;;6196:133:::0;:::o;5072:156:28:-;1094:13:16;:11;:13::i;:::-;5163:10:28::1;::::0;5149:38:::1;::::0;::::1;::::0;;::::1;::::0;5163:10;;::::1;;::::0;5149:38:::1;::::0;;;::::1;5197:10;:24:::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;5072:156::o;4545:240:2:-;1094:13:16;:11;:13::i;:::-;4716:62:2::1;::::0;;;;:20:::1;:10;: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;10165:463:28:-;1094:13:16;:11;:13::i;:::-;2261:21:18::1;:19;:21::i;:::-;10448:11:28::2;;10438:22;;;;;;;:::i;:::-;;::::0;;;;;::::2;::::0;;10401:32:::2;::::0;::::2;;::::0;;;:19:::2;:32;::::0;;;;;10438:22;;10391:43:::2;::::0;10401:32;10391:43:::2;:::i;:::-;;;;;;;;:69;10370:179;;;::::0;-1:-1:-1;;;10370:179:28;;22456:2:54;10370:179:28::2;::::0;::::2;22438:21:54::0;22495:2;22475:18;;;22468:30;22534:34;22514:18;;;22507:62;22605:33;22585:18;;;22578:61;22656:19;;10370:179:28::2;22254:427:54::0;10370:179:28::2;10559:62;10578:11;10591;;10604:6;10612:8;;10559:18;:62::i;:::-;2303:20:18::1;1716:1:::0;2809:7;:22;2629:209;6335:255:2;1094:13:16;:11;:13::i;:::-;6470:28:2::1;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;;;:51;;;6536:47;;22909:34:54;;;22959:18;;22952:43;;;;23011:18;;;23004:34;;;6536:47:2::1;::::0;22872:2:54;22857:18;6536:47:2::1;22686:358:54::0;5370:204:2;1094:13:16;: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;6094:576:28:-:0;1094:13:16;:11;:13::i;:::-;6176:12:28::1;6191:33;6197:22;6223:1;6191:33;:::i;:::-;6176:48;;6276:6;6255:27;;:10;:17;:27;6234:180;;;::::0;-1:-1:-1;;;6234:180:28;;24731:2:54;6234:180:28::1;::::0;::::1;24713:21:54::0;24770:3;24750:18;;;24743:31;24810:34;24790:18;;;24783:62;24881:34;24861:18;;;24854:62;24953:34;24932:19;;;24925:63;25025:12;25004:19;;;24997:41;25055:19;;6234:180:28::1;24529:551:54::0;6234:180:28::1;6429:7;6424:240;6442:6;6438:10;;:1;:10;;;6424:240;;;6469:44;6498:10;6509:1;6498:13;;;;;;;;;;:::i;:::-;;;;;;;6469:20;:44::i;:::-;6588:10;6599:1;6588:13;;;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;6557:20:::1;::::0;::::1;;::::0;;;:17:::1;:20:::0;;;;;;;;6532:71;;25227:36:54;;;6532:71:28::1;::::0;;::::1;::::0;6557:20;::::1;::::0;6532:71:::1;::::0;25200:18:54;6532:71:28::1;;;;;;;6640:10;6651:1;6640:13;;;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;6617:20:::1;::::0;::::1;;::::0;;;:17:::1;:20:::0;;;;;;;:36;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;6450:3:28::1;6424:240;;;;6166:504;6094:576:::0;:::o;2081:198:16:-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:16;;25476:2:54;2161:73:16::1;::::0;::::1;25458:21:54::0;25515:2;25495:18;;;25488:30;25554:34;25534:18;;;25527:62;25625:8;25605:18;;;25598:36;25651:19;;2161:73:16::1;25274:402:54::0;2161:73:16::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;9335:481:28:-;1094:13:16;:11;:13::i;:::-;9441:24:28::1;9468:33;9474:22;9500:1;9468:33;:::i;:::-;9441:60;;9548:18;9532:34;;:13;:34;;;9511:156;;;::::0;-1:-1:-1;;;9511:156:28;;25883:2:54;9511:156:28::1;::::0;::::1;25865:21:54::0;25922:2;25902:18;;;25895:30;25961:34;25941:18;;;25934:62;26032:34;26012:18;;;26005:62;26104:13;26083:19;;;26076:42;26135:19;;9511:156:28::1;25681:479:54::0;9511:156:28::1;9678:32;::::0;::::1;;::::0;;;:17:::1;:32;::::0;;;;;;;:63;;;;;:32:::1;4400:55:54::0;;;9678:63:28::1;::::0;::::1;4382:74:54::0;9678:32:28;;::::1;::::0;:48:::1;::::0;4355:18:54;;9678:63:28::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9756:53:28::1;::::0;;26365:42:54;26353:55;;26335:74;;26457:4;26445:17;;26440:2;26425:18;;26418:45;9756:53:28::1;::::0;-1:-1:-1;26308:18:54;;-1:-1:-1;9756:53:28::1;26165:304:54::0;4239:247:2;4411:68;;;;;26711:6:54;26744:15;;;4411:68:2;;;26726:34:54;26796:15;;26776:18;;;26769:43;4460:4:2;26828:18:54;;;26821:83;26920:18;;;26913:34;;;4380:12:2;;4411:10;:20;;;;;26673:19:54;;4411:68:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4411:68:2;;;;;;;;;;;;:::i;:::-;4404:75;4239:247;-1:-1:-1;;;;;4239:247:2:o;6898:864:28:-;2261:21:18;:19;:21::i;:::-;7011:20:28::1;6989:18;6995:11;6989:5;:18::i;:::-;:42;;;;;;;;:::i;:::-;;6968:172;;;::::0;-1:-1:-1;;;6968:172:28;;28065:2:54;6968:172:28::1;::::0;::::1;28047:21:54::0;28104:2;28084:18;;;28077:30;28143:34;28123:18;;;28116:62;28214:34;28194:18;;;28187:62;28286:21;28265:19;;;28258:50;28325:19;;6968:172:28::1;27863:487:54::0;6968:172:28::1;7151:25;7179:22:::0;;;:9:::1;:22;::::0;;;;;;;7211:17:::1;::::0;::::1;:24:::0;;;::::1;;;::::0;;;;7284:21;;::::1;7211:24;7284:21;7266:40:::0;;:17:::1;:40:::0;;;;;;;7231:4:::1;7330:12:::0;::::1;::::0;7284:21:::1;7369:16:::0;::::1;:23:::0;7408:29;;7179:22;;7266:40:::1;::::0;;::::1;::::0;7330:12;;7369:23;7189:11;;7408:29:::1;::::0;7151:25;7408:29:::1;7453:9;7448:272;7468:6;7464:1;:10;7448:272;;;7495:8;:27;;;7540:8;:16;;7557:1;7540:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;7577:15:::1;::::0;::::1;:18:::0;;7540:19:::1;::::0;;::::1;::::0;7593:1;;7577:18;::::1;;;;;:::i;:::-;;;;;;;;;7613:8;:19;;7633:1;7613:22;;;;;;;;:::i;:::-;;;;;;;;7653:8;:18;;7672:1;7653:21;;;;;;;;:::i;:::-;;;;;;;;7692:3;7495:214;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7495:214:28::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;7476:3:28::1;;7448:272;;;-1:-1:-1::0;;;7736:19:28::1;::::0;;;:6:::1;:19;::::0;;;;7729:26;;-1:-1:-1;;7729:26:28::1;::::0;;-1:-1:-1;2303:20:18;;-1:-1:-1;1716:1:18;2809:7;:22;2629:209;11681:889:28;11890:10;;;11875:25;;;11890:10;;;;;11875:25;11867:110;;;;-1:-1:-1;;;11867:110:28;;28557:2:54;11867:110:28;;;28539:21:54;28596:2;28576:18;;;28569:30;28635:34;28615:18;;;28608:62;28706:34;28686:18;;;28679:62;28778:10;28757:19;;;28750:39;28806:19;;11867:110:28;28355:476:54;11867:110:28;12011:19;;;;;;12064:87;;11987:21;;12079:4;;:25;;12064:87;;12107:11;;12120;;12133:6;;12021:8;;12064:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12040:111;;12163:12;12177:19;12200:67;12246:5;12234:9;:17;;;;:::i;:::-;12208:4;;12253:3;12258:8;12200:33;:67::i;:::-;12162:105;;;;12325:7;12320:244;;12348:27;;;;;;;:14;:27;;;;;;;:40;;12399:13;;12348:27;:40;;12376:11;;12348:40;:::i;:::-;;;;;;;;;;;;;;;;;:48;;;;;;;;;;:64;;;;12431:62;;12465:11;;12431:62;:::i;:::-;;;;;;;;12452:11;12431:62;;;12478:6;12486;12431:62;;;;;;;:::i;:::-;;;;;;;;12320:244;11857:713;;;;11681:889;;;;:::o;1359:130:16:-;1273:6;;1422:23;1273:6;719:10:19;1422:23:16;1414:68;;;;-1:-1:-1;;;1414:68:16;;30206:2:54;1414:68:16;;;30188:21:54;;;30225:18;;;30218:30;30284:34;30264:18;;;30257:62;30336:18;;1414:68:16;30004:356:54;2433:117:17;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;-1:-1:-1;;2491:15:17::1;::::0;;2521:22:::1;719:10:19::0;2530:12:17::1;2521:22;::::0;4412:42:54;4400:55;;;4382:74;;4370:2;4355:18;2521:22:17::1;;;;;;;2433:117::o:0;12768:1662:28:-;1239:19:17;:17;:19::i;:::-;12941:20:28::1;12963:11:::0;12989:8:::1;12978:38;;;;;;;;;;;;:::i;:::-;12940:76;;;;13040:24;13078:23:::0;13115:26:::1;13155:24:::0;13193:11:::1;13228:7;13217:69;;;;;;;;;;;;:::i;:::-;13304:14;::::0;;;:9:::1;:14;::::0;;;;:17;13026:260;;-1:-1:-1;13026:260:28;;-1:-1:-1;13026:260:28;;-1:-1:-1;13026:260:28;-1:-1:-1;13026:260:28;-1:-1:-1;13304:22:28;13296:105:::1;;;::::0;-1:-1:-1;;;13296:105:28;;35587:2:54;13296:105:28::1;::::0;::::1;35569:21:54::0;35626:2;35606:18;;;35599:30;35665:34;35645:18;;;35638:62;35736:34;35716:18;;;35709:62;35808:8;35787:19;;;35780:37;35834:19;;13296:105:28::1;35385:474:54::0;13296:105:28::1;13450:6;:13;13432:7;:14;:31;:86;;;;;13501:10;:17;13483:7;:14;:35;13432:86;:140;;;;;13556:9;:16;13538:7;:14;:34;13432:140;13411:283;;;::::0;-1:-1:-1;;;13411:283:28;;36066:2:54;13411:283:28::1;::::0;::::1;36048:21:54::0;36105:2;36085:18;;;36078:30;36144:34;36124:18;;;36117:62;36215:34;36195:18;;;36188:62;36287:34;36266:19;;;36259:63;36339:19;;13411:283:28::1;35864:500:54::0;13411:283:28::1;13733:33;13739:22;13765:1;13733:33;:::i;:::-;13725:41;;:5;:41;;;13704:161;;;::::0;-1:-1:-1;;;13704:161:28;;36571:2:54;13704:161:28::1;::::0;::::1;36553:21:54::0;36610:2;36590:18;;;36583:30;36649:34;36629:18;;;36622:62;36720:34;36700:18;;;36693:62;36792:11;36771:19;;;36764:40;36821:19;;13704:161:28::1;36369:477:54::0;13704:161:28::1;13875:36;13896:7;:14;13875:20;:36::i;:::-;13952:280;::::0;;::::1;::::0;::::1;::::0;;;;;13922:27:::1;13952:280;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;;;14243:14;;;:9:::1;:14:::0;;;;;;:28;;;;;;13952:280;14243:28;::::1;::::0;;;;;13952:280;;;;14243:28:::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14243:28:28::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14243:28:28::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14243:28:28::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;14243:28:28::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;;::::0;;::::1;::::0;;::::1;;::::0;;;;;;;;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;14281:20:::1;:26:::0;;;14340:14;;14323:79:::1;::::0;::::1;::::0;::::1;::::0;14356:7;;14365:6;;14373:10;;14385:9;;14396:5;;14323:79:::1;:::i;:::-;;;;;;;;14412:11;14419:3;14412:6;:11::i;:::-;12930:1500;;;;;;;;12768:1662:::0;;;;:::o;2186:115:17:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;2245:14:17::1;2255:4;2245:14;::::0;;2274:20:::1;2281:12;719:10:19::0;;640:96;485:136:24;548:22;;;544:75;;589:23;;;;;;;;;;;;;;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;;39545:2:54;9398:50:0;;;39527:21:54;39584:2;39564:18;;;39557:30;39623:16;39603:18;;;39596:44;39657:18;;9398:50:0;39343:338:54;9398:50:0;9483:16;9492:7;9483:6;:16;:::i;:::-;9466:6;:13;:33;;9458:63;;;;-1:-1:-1;;;9458:63:0;;39888:2:54;9458:63:0;;;39870:21:54;39927:2;39907:18;;;39900:30;39966:19;39946:18;;;39939:47;40003:18;;9458:63:0;39686:341:54;9458:63:0;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;2336:287:18:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:18;;40234:2:54;2460:63:18;;;40216:21:54;40273:2;40253:18;;;40246:30;40312:33;40292:18;;;40285:61;40363:18;;2460:63:18;40032:355:54;2460:63:18;1759:1;2598:7;:18;2336:287::o;2511:795:3:-;2758:27;;;2736:19;2758:27;;;:14;:27;;;;;;:40;;;;2786:11;;;;2758:40;:::i;:::-;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;-1:-1:-1;2758:48:3;2816:73;;;;-1:-1:-1;;;2816:73:3;;40594:2:54;2816:73:3;;;40576:21:54;40633:2;40613:18;;;40606:30;40672:34;40652:18;;;40645:62;40743:5;40723:18;;;40716:33;40766:19;;2816:73:3;40392:399:54;2816:73:3;2930:11;2917:8;;2907:19;;;;;;;:::i;:::-;;;;;;;;:34;2899:80;;;;-1:-1:-1;;;2899:80:3;;40998:2:54;2899:80:3;;;40980:21:54;41037:2;41017:18;;;41010:30;41076:34;41056:18;;;41049:62;41147:3;41127:18;;;41120:31;41168:19;;2899:80:3;40796:397:54;2899:80:3;3025:27;;;3084:1;3025:27;;;:14;:27;;;;;;:40;;;;3053:11;;;;3025:40;:::i;:::-;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;:61;;;;3153:65;;;;;;;;;;;;;;;;;;;3175:11;;3188;;3153:65;;;;;;3188:11;3153:65;;3188:11;3153:65;;;;;;;;;-1:-1:-1;;3153:65:3;;;;;;;;;;;;;;;;;;;;;;3201:6;;-1:-1:-1;3153:65:3;-1:-1:-1;3209:8:3;;;;;;3153:65;;3209:8;;;;3153:65;;;;;;;;;-1:-1:-1;3153:21:3;;-1:-1:-1;;;3153:65:3:i;:::-;3233:66;3253:11;3266;;3279:6;3287:11;3233:66;;;;;;;;;;:::i;:::-;;;;;;;;2682:624;2511:795;;;;;;:::o;2433:187:16:-;2525:6;;;;2541:17;;;;;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;1111:1274:1:-;1265:4;1271:12;1331;1353:13;1376:24;1413:8;1403:19;;;;;;;;;;:::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;1945:106:17:-;1685:7;;;;2003:41;;;;-1:-1:-1;;;2003:41:17;;41898:2:54;2003:41:17;;;41880:21:54;41937:2;41917:18;;;41910:30;41976:22;41956:18;;;41949:50;42016:18;;2003:41:17;41696:344:54;1767:106:17;1685:7;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:17;;42247:2:54;1828:38:17;;;42229:21:54;42286:2;42266:18;;;42259:30;42325:18;42305;;;42298:46;42361:18;;1828:38:17;42045:340:54;2551:880:25;2775:26;;2921:28;;2655:15;;2775:26;2952:6;;2897:52;;2655:15;2897:52;:::i;:::-;:61;2893:254;;;-1:-1:-1;3020:28:25;:52;;;2993:13;2893:254;;;3103:33;3123:13;3103:33;;:::i;:::-;;;2893:254;3250:20;;3230:16;:40;;3222:85;;;;-1:-1:-1;;;3222:85:25;;42592:2:54;3222:85:25;;;42574:21:54;;;42611:18;;;42604:30;42670:34;42650:18;;;42643:62;42722:18;;3222:85:25;42390:356:54;3222:85:25;3379:26;:45;-1:-1:-1;;2551:880:25:o;14610:724:28:-;14666:25;14694:22;;;:9;:22;;;;;;;;14776:21;;;;;;;;;14758:40;;:17;:40;;;;;;:48;;;;;;;14694:22;;14666:25;14758:40;;;;;:46;;:48;;;;;14694:22;14758:48;;;;;:40;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14740:66;;:15;:66;:::i;:::-;14817:12;;;;:18;;;14845:19;;;;:6;:19;;;;;;;:26;;-1:-1:-1;;14845:26:28;;;;;;;14902:21;;;;;14950:16;;:23;14988:32;;14726:80;;-1:-1:-1;14902:21:28;;;14845:26;14902:21;;14852:11;;14988:32;;;;14726:80;2479:25:54;;2467:2;2452:18;;2333:177;14988:32:28;;;;;;;;15036:9;15031:297;15051:6;15047:1;:10;15031:297;;;15078:239;15118:8;:16;;15135:1;15118:19;;;;;;;;:::i;:::-;;;;;;;;;;;15155:15;;;:18;;15118:19;;;;;15171:1;;15155:18;;;;;;:::i;:::-;;;;;;;;;15191:8;:19;;15211:1;15191:22;;;;;;;;:::i;:::-;;;;;;;;15078:239;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15231:8;:18;;15250:1;15231:21;;;;;;;;:::i;:::-;;;;;;;;15078:239;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15270:3;15291:12;15078:22;:239::i;:::-;15059:3;;15031:297;;15792:621;16033:32;;;;;;;:17;:32;;;;;;;;;;16112:52;;16033:32;;;;;:51;;16112:52;;16123:7;;16132:6;;16140:10;;16152:5;;16159:4;;16112:52;;:::i;:::-;;;;;;;;;;;;;16102:63;;;;;;16033:146;;;;;;;;;;;;;2479:25:54;;2467:2;2452:18;;2333:177;16033:146:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16032:147;16011:293;;;;-1:-1:-1;;;16011:293:28;;44073:2:54;16011:293:28;;;44055:21:54;44112:2;44092:18;;;44085:30;44151:34;44131:18;;;44124:62;44222:34;44202:18;;;44195:62;44294:34;44273:19;;;44266:63;44366:5;44345:19;;;44338:34;44389:19;;16011:293:28;43871:543:54;16011:293:28;16315:32;;;;;;;:17;:32;;;;;;;;:91;;;;;:32;;;;;:49;;:91;;16365:7;;16374:6;;16382:10;;16394:5;;16401:4;;16315:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:159:54:-;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:347::-;229:8;239:6;293:3;286:4;278:6;274:17;270:27;260:55;;311:1;308;301:12;260:55;-1:-1:-1;334:20:54;;377:18;366:30;;363:50;;;409:1;406;399:12;363:50;446:4;438:6;434:17;422:29;;498:3;491:4;482:6;474;470:19;466:30;463:39;460:59;;;515:1;512;505:12;460:59;178:347;;;;;:::o;530:171::-;597:20;;657:18;646:30;;636:41;;626:69;;691:1;688;681:12;706:862;812:6;820;828;836;844;852;905:3;893:9;884:7;880:23;876:33;873:53;;;922:1;919;912:12;873:53;945:28;963:9;945:28;:::i;:::-;935:38;;1024:2;1013:9;1009:18;996:32;1047:18;1088:2;1080:6;1077:14;1074:34;;;1104:1;1101;1094:12;1074:34;1143:58;1193:7;1184:6;1173:9;1169:22;1143:58;:::i;:::-;1220:8;;-1:-1:-1;1117:84:54;-1:-1:-1;1117:84:54;;-1:-1:-1;1274:37:54;1307:2;1292:18;;1274:37;:::i;:::-;1264:47;;1364:2;1353:9;1349:18;1336:32;1320:48;;1393:2;1383:8;1380:16;1377:36;;;1409:1;1406;1399:12;1377:36;;1448:60;1500:7;1489:8;1478:9;1474:24;1448:60;:::i;:::-;706:862;;;;-1:-1:-1;706:862:54;;-1:-1:-1;706:862:54;;1527:8;;706:862;-1:-1:-1;;;706:862:54:o;1573:180::-;1632:6;1685:2;1673:9;1664:7;1660:23;1656:32;1653:52;;;1701:1;1698;1691:12;1653:52;-1:-1:-1;1724:23:54;;1573:180;-1:-1:-1;1573:180:54:o;2515:184::-;2573:6;2626:2;2614:9;2605:7;2601:23;2597:32;2594:52;;;2642:1;2639;2632:12;2594:52;2665:28;2683:9;2665:28;:::i;2704:252::-;2771:6;2779;2832:2;2820:9;2811:7;2807:23;2803:32;2800:52;;;2848:1;2845;2838:12;2800:52;2871:28;2889:9;2871:28;:::i;:::-;2861:38;2946:2;2931:18;;;;2918:32;;-1:-1:-1;;;2704:252:54:o;2961:481::-;3039:6;3047;3055;3108:2;3096:9;3087:7;3083:23;3079:32;3076:52;;;3124:1;3121;3114:12;3076:52;3147:28;3165:9;3147:28;:::i;:::-;3137:38;;3226:2;3215:9;3211:18;3198:32;3253:18;3245:6;3242:30;3239:50;;;3285:1;3282;3275:12;3239:50;3324:58;3374:7;3365:6;3354:9;3350:22;3324:58;:::i;:::-;2961:481;;3401:8;;-1:-1:-1;3298:84:54;;-1:-1:-1;;;;2961:481:54:o;3639:184::-;3691:77;3688:1;3681:88;3788:4;3785:1;3778:15;3812:4;3809:1;3802:15;3828:403;3978:2;3963:18;;4011:1;4000:13;;3990:201;;4047:77;4044:1;4037:88;4148:4;4145:1;4138:15;4176:4;4173:1;4166:15;3990:201;4200:25;;;3828:403;:::o;4660:184::-;4712:77;4709:1;4702:88;4809:4;4806:1;4799:15;4833:4;4830:1;4823:15;4849:334;4920:2;4914:9;4976:2;4966:13;;-1:-1:-1;;4962:86:54;4950:99;;5079:18;5064:34;;5100:22;;;5061:62;5058:88;;;5126:18;;:::i;:::-;5162:2;5155:22;4849:334;;-1:-1:-1;4849:334:54:o;5188:245::-;5236:4;5269:18;5261:6;5258:30;5255:56;;;5291:18;;:::i;:::-;-1:-1:-1;5348:2:54;5336:15;-1:-1:-1;;5332:88:54;5422:4;5328:99;;5188:245::o;5438:815::-;5522:6;5530;5538;5591:2;5579:9;5570:7;5566:23;5562:32;5559:52;;;5607:1;5604;5597:12;5559:52;5630:28;5648:9;5630:28;:::i;:::-;5620:38;;5709:2;5698:9;5694:18;5681:32;5736:18;5728:6;5725:30;5722:50;;;5768:1;5765;5758:12;5722:50;5791:22;;5844:4;5836:13;;5832:27;-1:-1:-1;5822:55:54;;5873:1;5870;5863:12;5822:55;5909:2;5896:16;5934:48;5950:31;5978:2;5950:31;:::i;:::-;5934:48;:::i;:::-;6005:2;5998:5;5991:17;6045:7;6040:2;6035;6031;6027:11;6023:20;6020:33;6017:53;;;6066:1;6063;6056:12;6017:53;6121:2;6116;6112;6108:11;6103:2;6096:5;6092:14;6079:45;6165:1;6160:2;6155;6148:5;6144:14;6140:23;6133:34;6186:5;6176:15;;;;;6210:37;6243:2;6232:9;6228:18;6210:37;:::i;:::-;6200:47;;5438:815;;;;;:::o;6440:250::-;6525:1;6535:113;6549:6;6546:1;6543:13;6535:113;;;6625:11;;;6619:18;6606:11;;;6599:39;6571:2;6564:10;6535:113;;;-1:-1:-1;;6682:1:54;6664:16;;6657:27;6440:250::o;6695:329::-;6736:3;6774:5;6768:12;6801:6;6796:3;6789:19;6817:76;6886:6;6879:4;6874:3;6870:14;6863:4;6856:5;6852:16;6817:76;:::i;:::-;6938:2;6926:15;-1:-1:-1;;6922:88:54;6913:98;;;;7013:4;6909:109;;6695:329;-1:-1:-1;;6695:329:54:o;7029:217::-;7176:2;7165:9;7158:21;7139:4;7196:44;7236:2;7225:9;7221:18;7213:6;7196:44;:::i;7251:154::-;7337:42;7330:5;7326:54;7319:5;7316:65;7306:93;;7395:1;7392;7385:12;7410:247;7469:6;7522:2;7510:9;7501:7;7497:23;7493:32;7490:52;;;7538:1;7535;7528:12;7490:52;7577:9;7564:23;7596:31;7621:5;7596:31;:::i;7662:256::-;7728:6;7736;7789:2;7777:9;7768:7;7764:23;7760:32;7757:52;;;7805:1;7802;7795:12;7757:52;7828:28;7846:9;7828:28;:::i;:::-;7818:38;;7875:37;7908:2;7897:9;7893:18;7875:37;:::i;:::-;7865:47;;7662:256;;;;;:::o;8181:622::-;8276:6;8284;8292;8300;8308;8361:3;8349:9;8340:7;8336:23;8332:33;8329:53;;;8378:1;8375;8368:12;8329:53;8401:28;8419:9;8401:28;:::i;:::-;8391:38;;8448:37;8481:2;8470:9;8466:18;8448:37;:::i;:::-;8438:47;;8532:2;8521:9;8517:18;8504:32;8494:42;;8587:2;8576:9;8572:18;8559:32;8614:18;8606:6;8603:30;8600:50;;;8646:1;8643;8636:12;8600:50;8685:58;8735:7;8726:6;8715:9;8711:22;8685:58;:::i;:::-;8181:622;;;;-1:-1:-1;8181:622:54;;-1:-1:-1;8762:8:54;;8659:84;8181:622;-1:-1:-1;;;8181:622:54:o;8808:324::-;8883:6;8891;8899;8952:2;8940:9;8931:7;8927:23;8923:32;8920:52;;;8968:1;8965;8958:12;8920:52;8991:28;9009:9;8991:28;:::i;:::-;8981:38;;9038:37;9071:2;9060:9;9056:18;9038:37;:::i;:::-;9028:47;;9122:2;9111:9;9107:18;9094:32;9084:42;;8808:324;;;;;:::o;9137:194::-;9208:4;9241:18;9233:6;9230:30;9227:56;;;9263:18;;:::i;:::-;-1:-1:-1;9308:1:54;9304:14;9320:4;9300:25;;9137:194::o;9336:995::-;9438:6;9469:2;9512;9500:9;9491:7;9487:23;9483:32;9480:52;;;9528:1;9525;9518:12;9480:52;9568:9;9555:23;9601:18;9593:6;9590:30;9587:50;;;9633:1;9630;9623:12;9587:50;9656:22;;9709:4;9701:13;;9697:27;-1:-1:-1;9687:55:54;;9738:1;9735;9728:12;9687:55;9774:2;9761:16;9797:71;9813:54;9864:2;9813:54;:::i;9797:71::-;9902:15;;;9984:1;9980:10;;;;9972:19;;9968:28;;;9933:12;;;;10008:19;;;10005:39;;;10040:1;10037;10030:12;10005:39;10064:11;;;;10084:217;10100:6;10095:3;10092:15;10084:217;;;10180:3;10167:17;10197:31;10222:5;10197:31;:::i;:::-;10241:18;;10117:12;;;;10279;;;;10084:217;;;10320:5;9336:995;-1:-1:-1;;;;;;;9336:995:54:o;10585:114::-;10669:4;10662:5;10658:16;10651:5;10648:27;10638:55;;10689:1;10686;10679:12;10704:384;10770:6;10778;10831:2;10819:9;10810:7;10806:23;10802:32;10799:52;;;10847:1;10844;10837:12;10799:52;10886:9;10873:23;10905:31;10930:5;10905:31;:::i;:::-;10955:5;-1:-1:-1;11012:2:54;10997:18;;10984:32;11025:31;10984:32;11025:31;:::i;:::-;11075:7;11065:17;;;10704:384;;;;;:::o;11093:460::-;11177:6;11185;11193;11201;11254:3;11242:9;11233:7;11229:23;11225:33;11222:53;;;11271:1;11268;11261:12;11222:53;11294:28;11312:9;11294:28;:::i;:::-;11284:38;;11341:37;11374:2;11363:9;11359:18;11341:37;:::i;:::-;11331:47;;11428:2;11417:9;11413:18;11400:32;11441:31;11466:5;11441:31;:::i;:::-;11093:460;;;;-1:-1:-1;11491:5:54;;11543:2;11528:18;11515:32;;-1:-1:-1;;11093:460:54:o;11917:437::-;11996:1;11992:12;;;;12039;;;12060:61;;12114:4;12106:6;12102:17;12092:27;;12060:61;12167:2;12159:6;12156:14;12136:18;12133:38;12130:218;;12204:77;12201:1;12194:88;12305:4;12302:1;12295:15;12333:4;12330:1;12323:15;12359:271;12542:6;12534;12529:3;12516:33;12498:3;12568:16;;12593:13;;;12568:16;12359:271;-1:-1:-1;12359:271:54:o;13959:184::-;14011:77;14008:1;14001:88;14108:4;14105:1;14098:15;14132:4;14129:1;14122:15;14274:829;14324:3;14365:5;14359:12;14394:36;14420:9;14394:36;:::i;:::-;14439:19;;;14477:4;14500:1;14517:17;;;14543:204;;;;14761:1;14756:341;;;;14510:587;;14543:204;-1:-1:-1;;14589:9:54;14585:82;14580:2;14575:3;14571:12;14564:104;14734:2;14722:6;14715:14;14708:22;14705:1;14701:30;14696:3;14692:40;14688:49;14681:56;;14543:204;;14756:341;14787:5;14784:1;14777:16;14834:2;14831:1;14821:16;14859:1;14873:174;14887:6;14884:1;14881:13;14873:174;;;14974:14;;14956:11;;;14952:20;;14945:44;15017:16;;;;14902:10;;14873:174;;;15071:11;;15067:20;;;-1:-1:-1;;14510:587:54;;;;;;14274:829;;;;:::o;15108:656::-;15393:42;15385:6;15381:55;15370:9;15363:74;15473:6;15468:2;15457:9;15453:18;15446:34;15516:3;15511:2;15500:9;15496:18;15489:31;15344:4;15543:54;15592:3;15581:9;15577:19;15569:6;15543:54;:::i;:::-;15645:9;15637:6;15633:22;15628:2;15617:9;15613:18;15606:50;15673:41;15707:6;15699;15673:41;:::i;:::-;15665:49;;;15751:6;15745:3;15734:9;15730:19;15723:35;15108:656;;;;;;;;:::o;15769:325::-;15857:6;15852:3;15845:19;15909:6;15902:5;15895:4;15890:3;15886:14;15873:43;;15961:1;15954:4;15945:6;15940:3;15936:16;15932:27;15925:38;15827:3;16083:4;-1:-1:-1;;16008:2:54;16000:6;15996:15;15992:88;15987:3;15983:98;15979:109;15972:116;;15769:325;;;;:::o;16099:326::-;16294:6;16286;16282:19;16271:9;16264:38;16338:2;16333;16322:9;16318:18;16311:30;16245:4;16358:61;16415:2;16404:9;16400:18;16392:6;16384;16358:61;:::i;17881:184::-;17933:77;17930:1;17923:88;18030:4;18027:1;18020:15;18054:4;18051:1;18044:15;18070:128;18137:9;;;18158:11;;;18155:37;;;18172:18;;:::i;:::-;18070:128;;;;:::o;18203:395::-;18414:6;18406;18401:3;18388:33;18484:2;18480:15;;;;18497:66;18476:88;18440:16;;18465:100;;;18589:2;18581:11;;18203:395;-1:-1:-1;18203:395:54:o;18603:542::-;18704:2;18699:3;18696:11;18693:446;;;18740:1;18764:5;18761:1;18754:16;18808:4;18805:1;18795:18;18878:2;18866:10;18862:19;18859:1;18855:27;18849:4;18845:38;18914:4;18902:10;18899:20;18896:47;;;-1:-1:-1;18937:4:54;18896:47;18992:2;18987:3;18983:12;18980:1;18976:20;18970:4;18966:31;18956:41;;19047:82;19065:2;19058:5;19055:13;19047:82;;;19110:17;;;19091:1;19080:13;19047:82;;19381:1461;19505:3;19499:10;19532:18;19524:6;19521:30;19518:56;;;19554:18;;:::i;:::-;19583:96;19672:6;19632:38;19664:4;19658:11;19632:38;:::i;:::-;19626:4;19583:96;:::i;:::-;19734:4;;19791:2;19780:14;;19808:1;19803:782;;;;20629:1;20646:6;20643:89;;;-1:-1:-1;20698:19:54;;;20692:26;20643:89;19287:66;19278:1;19274:11;;;19270:84;19266:89;19256:100;19362:1;19358:11;;;19253:117;20745:81;;19773:1063;;19803:782;14221:1;14214:14;;;14258:4;14245:18;;-1:-1:-1;;19839:79:54;;;20016:236;20030:7;20027:1;20024:14;20016:236;;;20119:19;;;20113:26;20098:42;;20211:27;;;;20179:1;20167:14;;;;20046:19;;20016:236;;;20020:3;20280:6;20271:7;20268:19;20265:261;;;20341:19;;;20335:26;20442:66;20424:1;20420:14;;;20436:3;20416:24;20412:97;20408:102;20393:118;20378:134;;20265:261;-1:-1:-1;;;;;20572:1:54;20556:14;;;20552:22;20539:36;;-1:-1:-1;19381:1461:54:o;20847:498::-;21047:4;21076:6;21121:2;21113:6;21109:15;21098:9;21091:34;21173:2;21165:6;21161:15;21156:2;21145:9;21141:18;21134:43;;21213:6;21208:2;21197:9;21193:18;21186:34;21256:3;21251:2;21240:9;21236:18;21229:31;21277:62;21334:3;21323:9;21319:19;21311:6;21303;21277:62;:::i;21350:899::-;21476:3;21505:1;21538:6;21532:13;21568:36;21594:9;21568:36;:::i;:::-;21623:1;21640:17;;;21666:191;;;;21871:1;21866:358;;;;21633:591;;21666:191;-1:-1:-1;;21703:9:54;21699:82;21694:3;21687:95;21837:6;21830:14;21823:22;21815:6;21811:35;21806:3;21802:45;21795:52;;21666:191;;21866:358;21897:6;21894:1;21887:17;21927:4;21972;21969:1;21959:18;21999:1;22013:165;22027:6;22024:1;22021:13;22013:165;;;22105:14;;22092:11;;;22085:35;22148:16;;;;22042:10;;22013:165;;;22017:3;;;22207:6;22202:3;22198:16;22191:23;;21633:591;-1:-1:-1;22240:3:54;;21350:899;-1:-1:-1;;;;;;21350:899:54:o;23049:1322::-;23171:18;23166:3;23163:27;23160:53;;;23193:18;;:::i;:::-;23222:93;23311:3;23271:38;23303:4;23297:11;23271:38;:::i;:::-;23265:4;23222:93;:::i;:::-;23341:1;23366:2;23361:3;23358:11;23383:1;23378:735;;;;24157:1;24174:3;24171:93;;;-1:-1:-1;24230:19:54;;;24217:33;24171:93;19287:66;19278:1;19274:11;;;19270:84;19266:89;19256:100;19362:1;19358:11;;;19253:117;24277:78;;23351:1014;;23378:735;14221:1;14214:14;;;14258:4;14245:18;;-1:-1:-1;;23414:76:54;;;23574:9;23596:229;23610:7;23607:1;23604:14;23596:229;;;23699:19;;;23686:33;23671:49;;23806:4;23791:20;;;;23759:1;23747:14;;;;23626:12;23596:229;;;23600:3;23853;23844:7;23841:16;23838:219;;;23973:66;23967:3;23961;23958:1;23954:11;23950:21;23946:94;23942:99;23929:9;23924:3;23920:19;23907:33;23903:139;23895:6;23888:155;23838:219;;;24100:1;24094:3;24091:1;24087:11;24083:19;24077:4;24070:33;23351:1014;;23049:1322;;;:::o;24376:148::-;24464:4;24443:12;;;24457;;;24439:31;;24482:13;;24479:39;;;24498:18;;:::i;26958:320::-;27033:5;27062:52;27078:35;27106:6;27078:35;:::i;27062:52::-;27053:61;;27137:6;27130:5;27123:21;27177:3;27168:6;27163:3;27159:16;27156:25;27153:45;;;27194:1;27191;27184:12;27153:45;27207:65;27265:6;27258:4;27251:5;27247:16;27242:3;27207:65;:::i;27283:235::-;27336:5;27389:3;27382:4;27374:6;27370:17;27366:27;27356:55;;27407:1;27404;27397:12;27356:55;27429:83;27508:3;27499:6;27493:13;27486:4;27478:6;27474:17;27429:83;:::i;27523:335::-;27602:6;27655:2;27643:9;27634:7;27630:23;27626:32;27623:52;;;27671:1;27668;27661:12;27623:52;27704:9;27698:16;27737:18;27729:6;27726:30;27723:50;;;27769:1;27766;27759:12;27723:50;27792:60;27844:7;27835:6;27824:9;27820:22;27792:60;:::i;:::-;27782:70;27523:335;-1:-1:-1;;;;27523:335:54:o;28836:555::-;29093:6;29085;29081:19;29070:9;29063:38;29137:3;29132:2;29121:9;29117:18;29110:31;29044:4;29164:45;29204:3;29193:9;29189:19;29181:6;29164:45;:::i;:::-;29257:18;29249:6;29245:31;29240:2;29229:9;29225:18;29218:59;29325:9;29317:6;29313:22;29308:2;29297:9;29293:18;29286:50;29353:32;29378:6;29370;29353:32;:::i;29396:287::-;29525:3;29563:6;29557:13;29579:66;29638:6;29633:3;29626:4;29618:6;29614:17;29579:66;:::i;:::-;29661:16;;;;;29396:287;-1:-1:-1;;29396:287:54:o;29688:311::-;29873:18;29865:6;29861:31;29850:9;29843:50;29929:2;29924;29913:9;29909:18;29902:30;29824:4;29949:44;29989:2;29978:9;29974:18;29966:6;29949:44;:::i;30365:396::-;30453:6;30461;30514:2;30502:9;30493:7;30489:23;30485:32;30482:52;;;30530:1;30527;30520:12;30482:52;30563:9;30557:16;30596:18;30588:6;30585:30;30582:50;;;30628:1;30625;30618:12;30582:50;30651:60;30703:7;30694:6;30683:9;30679:22;30651:60;:::i;:::-;30641:70;;;30751:2;30740:9;30736:18;30730:25;30720:35;;30365:396;;;;;:::o;30766:676::-;30831:5;30884:3;30877:4;30869:6;30865:17;30861:27;30851:55;;30902:1;30899;30892:12;30851:55;30931:6;30925:13;30957:4;30981:71;30997:54;31048:2;30997:54;:::i;30981:71::-;31074:3;31098:2;31093:3;31086:15;31126:4;31121:3;31117:14;31110:21;;31183:4;31177:2;31174:1;31170:10;31162:6;31158:23;31154:34;31140:48;;31211:3;31203:6;31200:15;31197:35;;;31228:1;31225;31218:12;31197:35;31264:4;31256:6;31252:17;31278:135;31294:6;31289:3;31286:15;31278:135;;;31360:10;;31348:23;;31391:12;;;;31311;;31278:135;;;-1:-1:-1;31431:5:54;30766:676;-1:-1:-1;;;;;;30766:676:54:o;31447:1100::-;31511:5;31564:3;31557:4;31549:6;31545:17;31541:27;31531:55;;31582:1;31579;31572:12;31531:55;31611:6;31605:13;31637:4;31661:71;31677:54;31728:2;31677:54;:::i;31661:71::-;31766:15;;;31852:1;31848:10;;;;31836:23;;31832:32;;;31797:12;;;;31876:15;;;31873:35;;;31904:1;31901;31894:12;31873:35;31940:2;31932:6;31928:15;31952:566;31968:6;31963:3;31960:15;31952:566;;;32047:3;32041:10;32083:18;32070:11;32067:35;32064:125;;;32143:1;32172:2;32168;32161:14;32064:125;32212:24;;32271:2;32263:11;;32259:21;-1:-1:-1;32249:119:54;;32322:1;32351:2;32347;32340:14;32249:119;32393:82;32471:3;32465:2;32461;32457:11;32451:18;32446:2;32442;32438:11;32393:82;:::i;:::-;32381:95;;-1:-1:-1;32496:12:54;;;;31985;;31952:566;;32552:905;32615:5;32668:3;32661:4;32653:6;32649:17;32645:27;32635:55;;32686:1;32683;32676:12;32635:55;32715:6;32709:13;32741:4;32765:71;32781:54;32832:2;32781:54;:::i;32765:71::-;32870:15;;;32956:1;32952:10;;;;32940:23;;32936:32;;;32901:12;;;;32980:15;;;32977:35;;;33008:1;33005;32998:12;32977:35;33044:2;33036:6;33032:15;33056:372;33072:6;33067:3;33064:15;33056:372;;;33151:3;33145:10;33187:18;33174:11;33171:35;33168:125;;;33247:1;33276:2;33272;33265:14;33168:125;33318:67;33381:3;33376:2;33362:11;33354:6;33350:24;33346:33;33318:67;:::i;:::-;33306:80;;-1:-1:-1;33406:12:54;;;;33089;;33056:372;;33462:134;33539:13;;33561:29;33539:13;33561:29;:::i;33601:1779::-;33824:6;33832;33840;33848;33856;33909:3;33897:9;33888:7;33884:23;33880:33;33877:53;;;33926:1;33923;33916:12;33877:53;33959:9;33953:16;33988:18;34029:2;34021:6;34018:14;34015:34;;;34045:1;34042;34035:12;34015:34;34083:6;34072:9;34068:22;34058:32;;34128:7;34121:4;34117:2;34113:13;34109:27;34099:55;;34150:1;34147;34140:12;34099:55;34179:2;34173:9;34201:4;34225:71;34241:54;34292:2;34241:54;:::i;34225:71::-;34330:15;;;34412:1;34408:10;;;;34400:19;;34396:28;;;34361:12;;;;34436:19;;;34433:39;;;34468:1;34465;34458:12;34433:39;34492:11;;;;34512:210;34528:6;34523:3;34520:15;34512:210;;;34601:3;34595:10;34618:31;34643:5;34618:31;:::i;:::-;34662:18;;34545:12;;;;34700;;;;34512:210;;;34777:18;;;34771:25;34741:5;;-1:-1:-1;34771:25:54;;-1:-1:-1;;;34808:16:54;;;34805:36;;;34837:1;34834;34827:12;34805:36;34860:74;34926:7;34915:8;34904:9;34900:24;34860:74;:::i;:::-;34850:84;;34980:2;34969:9;34965:18;34959:25;34943:41;;35009:2;34999:8;34996:16;34993:36;;;35025:1;35022;35015:12;34993:36;35048:73;35113:7;35102:8;35091:9;35087:24;35048:73;:::i;:::-;35038:83;;35167:2;35156:9;35152:18;35146:25;35130:41;;35196:2;35186:8;35183:16;35180:36;;;35212:1;35209;35202:12;35180:36;;35235:72;35299:7;35288:8;35277:9;35273:24;35235:72;:::i;:::-;35225:82;;;35326:48;35369:3;35358:9;35354:19;35326:48;:::i;:::-;35316:58;;33601:1779;;;;;;;;:::o;36851:656::-;36903:3;36934;36966:5;36960:12;36993:6;36988:3;36981:19;37019:4;37048;37043:3;37039:14;37032:21;;37106:4;37096:6;37093:1;37089:14;37082:5;37078:26;37074:37;37145:4;37138:5;37134:16;37168:1;37178:303;37192:6;37189:1;37186:13;37178:303;;;-1:-1:-1;;37267:5:54;37261:4;37257:16;37253:89;37248:3;37241:102;37364:37;37396:4;37387:6;37381:13;37364:37;:::i;:::-;37459:12;;;;37356:45;-1:-1:-1;37424:15:54;;;;37214:1;37207:9;37178:303;;;-1:-1:-1;37497:4:54;;36851:656;-1:-1:-1;;;;;;;36851:656:54:o;37512:1696::-;37998:3;38011:22;;;38082:13;;37983:19;;;38104:22;;;37950:4;;38180;;38157:3;38142:19;;;38207:15;;;37950:4;38250:218;38264:6;38261:1;38258:13;38250:218;;;38329:13;;38344:42;38325:62;38313:75;;38408:12;;;;38443:15;;;;38286:1;38279:9;38250:218;;;-1:-1:-1;;;38504:19:54;;;38484:18;;;38477:47;38574:13;;38596:21;;;38672:15;;;;38635:12;;;38707:1;38717:189;38733:8;38728:3;38725:17;38717:189;;;38802:15;;38788:30;;38879:17;;;;38840:14;;;;38761:1;38752:11;38717:189;;;38721:3;;38953:9;38946:5;38942:21;38937:2;38926:9;38922:18;38915:49;38987:42;39023:5;39015:6;38987:42;:::i;:::-;38973:56;;;;39077:9;39069:6;39065:22;39060:2;39049:9;39045:18;39038:50;39105:43;39141:6;39133;39105:43;:::i;:::-;39097:51;;;39157:45;39197:3;39186:9;39182:19;39174:6;1825:4;1814:16;1802:29;;1758:75;39157:45;37512:1696;;;;;;;;:::o;39213:125::-;39278:9;;;39299:10;;;39296:36;;;39312:18;;:::i;41198:493::-;41447:6;41439;41435:19;41424:9;41417:38;41491:3;41486:2;41475:9;41471:18;41464:31;41398:4;41512:62;41569:3;41558:9;41554:19;41546:6;41538;41512:62;:::i;:::-;41622:18;41610:31;;;;41605:2;41590:18;;41583:59;-1:-1:-1;41673:2:54;41658:18;41651:34;41504:70;41198:493;-1:-1:-1;;;41198:493:54:o;42751:184::-;42821:6;42874:2;42862:9;42853:7;42849:23;42845:32;42842:52;;;42890:1;42887;42880:12;42842:52;-1:-1:-1;42913:16:54;;42751:184;-1:-1:-1;42751:184:54:o;42940:644::-;43231:42;43223:6;43219:55;43208:9;43201:74;43311:6;43306:2;43295:9;43291:18;43284:34;43354:3;43349:2;43338:9;43334:18;43327:31;43182:4;43381:45;43421:3;43410:9;43406:19;43398:6;43381:45;:::i;:::-;43474:9;43466:6;43462:22;43457:2;43446:9;43442:18;43435:50;43502:32;43527:6;43519;43502:32;:::i;43589:277::-;43656:6;43709:2;43697:9;43688:7;43684:23;43680:32;43677:52;;;43725:1;43722;43715:12;43677:52;43757:9;43751:16;43810:5;43803:13;43796:21;43789:5;43786:32;43776:60;;43832:1;43829;43822:12"},"gasEstimates":{"creation":{"codeDepositCost":"3730400","executionCost":"infinite","totalCost":"infinite"},"external":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"263","addTimelocks(address[])":"infinite","cancel(uint256)":"infinite","execute(uint256)":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getTrustedRemoteAddress(uint16)":"infinite","guardian()":"2381","isTrustedRemote(uint16,bytes)":"infinite","last24HourCommandsReceived()":"2407","last24HourReceiveWindowStart()":"2364","lastProposalReceived()":"2386","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","maxDailyReceiveLimit()":"2364","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","owner()":"2397","pause()":"infinite","paused()":"2372","payloadSizeLimitLookup(uint16)":"2575","precrime()":"2381","proposalTimelocks(uint256)":"2542","proposals(uint256)":"6909","queued(uint256)":"2540","renounceOwnership()":"190","retryMessage(uint16,bytes,uint64,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setGuardian(address)":"infinite","setMaxDailyReceiveLimit(uint256)":"28025","setMinDstGas(uint16,uint16,uint256)":"infinite","setPayloadSizeLimit(uint16,uint256)":"24757","setPrecrime(address)":"27842","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setSrcChainId(uint16)":"30438","setTimelockPendingAdmin(address,uint8)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","srcChainId()":"2414","state(uint256)":"6988","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","unpause()":"infinite"},"internal":{"_blockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite","_nonblockingLzReceive(uint16,bytes memory,uint64,bytes memory)":"infinite","_queue(uint256)":"infinite","_queueOrRevertInternal(address,uint256,string memory,bytes memory,uint256,uint8)":"infinite"}},"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","addTimelocks(address[])":"ed66039b","cancel(uint256)":"40e58ee5","execute(uint256)":"fe0d94c1","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","guardian()":"452a9320","isTrustedRemote(uint16,bytes)":"3d8b38f6","last24HourCommandsReceived()":"70f6ad9a","last24HourReceiveWindowStart()":"876919e8","lastProposalReceived()":"4406baaf","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","maxDailyReceiveLimit()":"0435bb56","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","proposalTimelocks(uint256)":"ee9799ee","proposals(uint256)":"013cf08b","queued(uint256)":"9f0c3101","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setGuardian(address)":"8a0dac4a","setMaxDailyReceiveLimit(uint256)":"9493ffad","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setSrcChainId(uint16)":"c8b42e5b","setTimelockPendingAdmin(address,uint8)":"f4fcfcca","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","srcChainId()":"49d12605","state(uint256)":"3e4f49e6","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"endpoint_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"srcChainId_\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidProposalId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"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\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"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\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"name\":\"ProposalReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"ReceivePayloadFailed\",\"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\":\"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\":\"_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\":true,\"internalType\":\"uint16\",\"name\":\"oldSrcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"newSrcChainId\",\"type\":\"uint16\"}],\"name\":\"SetSrcChainId\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"SetTimelockPendingAdmin\",\"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\":false,\"internalType\":\"uint8\",\"name\":\"routeType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldTimelock\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"TimelockAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITimelock[]\",\"name\":\"timelocks_\",\"type\":\"address[]\"}],\"name\":\"addTimelocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId_\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId_\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"last24HourCommandsReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last24HourReceiveWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastProposalReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[],\"name\":\"maxDailyReceiveLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":[],\"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\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalTimelocks\",\"outputs\":[{\"internalType\":\"contract ITimelock\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"queued\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"setGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyReceiveLimit\",\"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\":\"srcChainId_\",\"type\":\"uint16\"}],\"name\":\"setSrcChainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"proposalType_\",\"type\":\"uint8\"}],\"name\":\"setTimelockPendingAdmin\",\"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\":\"srcChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId_\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum OmnichainGovernanceExecutor.ProposalState\",\"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\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"details\":\"The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor This implementation is non-blocking, meaning the failed messages will not block the future messages from the source. For the blocking behavior, derive the contract from LzApp.\",\"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\":{\"addTimelocks(address[])\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits TimelockAdded with old and new timelock and route type\",\"params\":{\"timelocks_\":\"Array of addresses of all 3 timelocks\"}},\"cancel(uint256)\":{\"custom:access\":\"Sender must be the guardian\",\"custom:event\":\"Emits ProposalCanceled with proposal id of the canceled proposal\",\"params\":{\"proposalId_\":\"Id of proposal that is to be canceled\"}},\"execute(uint256)\":{\"custom:event\":\"Emits ProposalExecuted with proposal id of executed proposal\",\"params\":{\"proposalId_\":\"Id of proposal that is to be executed\"}},\"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.\"},\"retryMessage(uint16,bytes,uint64,bytes)\":{\"custom:access\":\"Only owner\",\"params\":{\"nonce_\":\"Nonce to identify failed message\",\"payload_\":\"The payload of the message to be retried\",\"srcAddress_\":\"Source address => local app address + remote app address\",\"srcChainId_\":\"Source chain Id\"}},\"setGuardian(address)\":{\"custom:access\":\"Must be call by guardian or owner\",\"custom:event\":\"Emit NewGuardian with old and new guardian address\",\"params\":{\"newGuardian\":\"The address of the new guardian\"}},\"setMaxDailyReceiveLimit(uint256)\":{\"custom:access\":\"Only Owner\",\"custom:event\":\"Emits SetMaxDailyReceiveLimit with old and new limit\",\"params\":{\"limit_\":\"Number of commands\"}},\"setSrcChainId(uint16)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emit SetSrcChainId with old and new source id\",\"params\":{\"srcChainId_\":\"The new source chain id to be set\"}},\"setTimelockPendingAdmin(address,uint8)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits SetTimelockPendingAdmin with new pending admin and proposal type\",\"params\":{\"pendingAdmin_\":\"Address of new pending admin\",\"proposalType_\":\"Type of proposal\"}},\"state(uint256)\":{\"params\":{\"proposalId_\":\"The id of the proposal\"},\"returns\":{\"_0\":\"Proposal state\"}},\"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\"}},\"title\":\"OmnichainGovernanceExecutor\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidProposalId()\":[{\"notice\":\"Thrown when proposal ID is invalid\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"NewGuardian(address,address)\":{\"notice\":\"Emitted when new guardian address is set\"},\"ProposalCanceled(uint256)\":{\"notice\":\"Emitted when proposal is canceled\"},\"ProposalExecuted(uint256)\":{\"notice\":\"Emitted when proposal executed\"},\"ProposalQueued(uint256,uint256)\":{\"notice\":\"Emitted when proposal is queued\"},\"ProposalReceived(uint256,address[],uint256[],string[],bytes[],uint8)\":{\"notice\":\"Emitted when proposal is received\"},\"ReceivePayloadFailed(uint16,bytes,uint64,bytes)\":{\"notice\":\"Emitted when proposal failed\"},\"SetMaxDailyReceiveLimit(uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit for receiving command from Binance chain is modified\"},\"SetSrcChainId(uint16,uint16)\":{\"notice\":\"Emitted when source layerzero endpoint id is updated\"},\"SetTimelockPendingAdmin(address,uint8)\":{\"notice\":\"Emitted when pending admin of Timelock is updated\"},\"TimelockAdded(uint8,address,address)\":{\"notice\":\"Emitted when timelock added\"}},\"kind\":\"user\",\"methods\":{\"addTimelocks(address[])\":{\"notice\":\"Add timelocks to the ProposalTimelocks mapping\"},\"cancel(uint256)\":{\"notice\":\"Cancels a proposal only if sender is the guardian and proposal is not executed\"},\"execute(uint256)\":{\"notice\":\"Executes a queued proposal if eta has passed\"},\"guardian()\":{\"notice\":\"A privileged role that can cancel any proposal\"},\"last24HourCommandsReceived()\":{\"notice\":\"Total received commands within the last 24-hour window from Binance chain\"},\"last24HourReceiveWindowStart()\":{\"notice\":\"Timestamp when the last 24-hour window started from Binance chain\"},\"lastProposalReceived()\":{\"notice\":\"Last proposal count received\"},\"maxDailyReceiveLimit()\":{\"notice\":\"Maximum daily limit for receiving commands from Binance chain\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"proposalTimelocks(uint256)\":{\"notice\":\"Mapping containing Timelock addresses for each proposal type\"},\"proposals(uint256)\":{\"notice\":\"The official record of all proposals ever proposed\"},\"queued(uint256)\":{\"notice\":\"Represents queue state of proposal\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening\"},\"retryMessage(uint16,bytes,uint64,bytes)\":{\"notice\":\"Resends a previously failed message\"},\"setGuardian(address)\":{\"notice\":\"Sets the new executor guardian\"},\"setMaxDailyReceiveLimit(uint256)\":{\"notice\":\"Sets the maximum daily limit for receiving commands\"},\"setSrcChainId(uint16)\":{\"notice\":\"Update source layerzero endpoint id\"},\"setTimelockPendingAdmin(address,uint8)\":{\"notice\":\"Sets the new pending admin of the Timelock\"},\"srcChainId()\":{\"notice\":\"Stores BNB chain layerzero endpoint id\"},\"state(uint256)\":{\"notice\":\"Gets the state of a proposal\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"notice\":\"Executes the proposal transactions sent from the main chain\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/OmnichainGovernanceExecutor.sol\":\"OmnichainGovernanceExecutor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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        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\":\"0xf4bd9e0ecfa4eb18e7305eb66da44c8a4610c3d5afeaf6a3b44c4bf4b7169b40\",\"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.7.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 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\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"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/security/ReentrancyGuard.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Contract module that helps prevent reentrant calls to a function.\\n *\\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\n * available, which can be applied to functions to make sure there are no nested\\n * (reentrant) calls to them.\\n *\\n * Note that because there is a single `nonReentrant` guard, functions marked as\\n * `nonReentrant` may not call one another. This can be worked around by making\\n * those functions `private`, and then adding `external` `nonReentrant` entry\\n * points to them.\\n *\\n * TIP: If you would like to learn more about reentrancy and alternative ways\\n * to protect against it, check out our blog post\\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\\n */\\nabstract contract ReentrancyGuard {\\n    // Booleans are more expensive than uint256 or any type that takes up a full\\n    // word because each write operation emits an extra SLOAD to first read the\\n    // slot's contents, replace the bits taken up by the boolean, and then write\\n    // back. This is the compiler's defense against contract upgrades and\\n    // pointer aliasing, and it cannot be disabled.\\n\\n    // The values being non-zero value makes deployment a bit more expensive,\\n    // but in exchange the refund on every call to nonReentrant will be lower in\\n    // amount. Since refunds are capped to a percentage of the total\\n    // transaction's gas, it is best to keep them low in cases like this one, to\\n    // increase the likelihood of the full refund coming into effect.\\n    uint256 private constant _NOT_ENTERED = 1;\\n    uint256 private constant _ENTERED = 2;\\n\\n    uint256 private _status;\\n\\n    constructor() {\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Prevents a contract from calling itself, directly or indirectly.\\n     * Calling a `nonReentrant` function from another `nonReentrant`\\n     * function is not supported. It is possible to prevent this from happening\\n     * by making the `nonReentrant` function external, and making it call a\\n     * `private` function that does the actual work.\\n     */\\n    modifier nonReentrant() {\\n        _nonReentrantBefore();\\n        _;\\n        _nonReentrantAfter();\\n    }\\n\\n    function _nonReentrantBefore() private {\\n        // On the first call to nonReentrant, _status will be _NOT_ENTERED\\n        require(_status != _ENTERED, \\\"ReentrancyGuard: reentrant call\\\");\\n\\n        // Any calls to nonReentrant after this point will fail\\n        _status = _ENTERED;\\n    }\\n\\n    function _nonReentrantAfter() private {\\n        // By storing the original value once again, a refund is triggered (see\\n        // https://eips.ethereum.org/EIPS/eip-2200)\\n        _status = _NOT_ENTERED;\\n    }\\n}\\n\",\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"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/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/Cross-chain/BaseOmnichainControllerDest.sol\":{\"content\":\"//  SPDX-License-Identifier: BSD-3-Clause\\n\\npragma solidity 0.8.25;\\n\\nimport { NonblockingLzApp } from \\\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title BaseOmnichainControllerDest\\n * @author Venus\\n * @dev This contract is the base for the Omnichain controller destination contract\\n * It provides functionality related to daily command limits and pausability\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\nabstract contract BaseOmnichainControllerDest is NonblockingLzApp, Pausable {\\n    /**\\n     * @notice Maximum daily limit for receiving commands from Binance chain\\n     */\\n    uint256 public maxDailyReceiveLimit;\\n\\n    /**\\n     * @notice Total received commands within the last 24-hour window from Binance chain\\n     */\\n    uint256 public last24HourCommandsReceived;\\n\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from Binance chain\\n     */\\n    uint256 public last24HourReceiveWindowStart;\\n\\n    /**\\n     * @notice Emitted when the maximum daily limit for receiving command from Binance chain is modified\\n     */\\n    event SetMaxDailyReceiveLimit(uint256 oldMaxLimit, uint256 newMaxLimit);\\n\\n    constructor(address endpoint_) NonblockingLzApp(endpoint_) {\\n        ensureNonzeroAddress(endpoint_);\\n    }\\n\\n    /**\\n     * @notice Sets the maximum daily limit for receiving commands\\n     * @param limit_ Number of commands\\n     * @custom:access Only Owner\\n     * @custom:event Emits SetMaxDailyReceiveLimit with old and new limit\\n     */\\n    function setMaxDailyReceiveLimit(uint256 limit_) external onlyOwner {\\n        emit SetMaxDailyReceiveLimit(maxDailyReceiveLimit, limit_);\\n        maxDailyReceiveLimit = limit_;\\n    }\\n\\n    /**\\n     * @notice Triggers the paused state of the controller\\n     * @custom:access Only owner\\n     */\\n    function pause() external onlyOwner {\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers the resume state of the controller\\n     * @custom:access Only owner\\n     */\\n    function unpause() external onlyOwner {\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishappening\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Check eligibility to receive commands\\n     * @param noOfCommands_ Number of commands to be received\\n     */\\n    function _isEligibleToReceive(uint256 noOfCommands_) internal {\\n        uint256 currentBlockTimestamp = block.timestamp;\\n\\n        // Load values for the 24-hour window checks for receiving\\n        uint256 receivedInWindow = last24HourCommandsReceived;\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - last24HourReceiveWindowStart > 1 days) {\\n            receivedInWindow = noOfCommands_;\\n            last24HourReceiveWindowStart = currentBlockTimestamp;\\n        } else {\\n            receivedInWindow += noOfCommands_;\\n        }\\n\\n        // Revert if the received amount exceeds the daily limit\\n        require(receivedInWindow <= maxDailyReceiveLimit, \\\"Daily Transaction Limit Exceeded\\\");\\n\\n        // Update the received amount for the 24-hour window\\n        last24HourCommandsReceived = receivedInWindow;\\n    }\\n}\\n\",\"keccak256\":\"0x5ccc63f55acd7c37e6e3ce36d034f82173bc8daf257cb859e08238b860cf3723\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/OmnichainGovernanceExecutor.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity 0.8.25;\\n\\nimport { ReentrancyGuard } from \\\"@openzeppelin/contracts/security/ReentrancyGuard.sol\\\";\\nimport { BytesLib } from \\\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\\\";\\nimport { ExcessivelySafeCall } from \\\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { BaseOmnichainControllerDest } from \\\"./BaseOmnichainControllerDest.sol\\\";\\nimport { ITimelock } from \\\"./interfaces/ITimelock.sol\\\";\\n\\n/**\\n * @title OmnichainGovernanceExecutor\\n * @notice Executes the proposal transactions sent from the main chain\\n * @dev The owner of this contract controls LayerZero configuration. When used in production the owner will be OmnichainExecutor\\n * This implementation is non-blocking, meaning the failed messages will not block the future messages from the source.\\n * For the blocking behavior, derive the contract from LzApp.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ncontract OmnichainGovernanceExecutor is ReentrancyGuard, BaseOmnichainControllerDest {\\n    using BytesLib for bytes;\\n    using ExcessivelySafeCall for address;\\n\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct Proposal {\\n        /** Unique id for looking up a proposal */\\n        uint256 id;\\n        /** The timestamp that the proposal will be available for execution, set once the vote succeeds */\\n        uint256 eta;\\n        /** The ordered list of target addresses for calls to be made */\\n        address[] targets;\\n        /** The ordered list of values (i.e. msg.value) to be passed to the calls to be made */\\n        uint256[] values;\\n        /** The ordered list of function signatures to be called */\\n        string[] signatures;\\n        /** The ordered list of calldata to be passed to each call */\\n        bytes[] calldatas;\\n        /** Flag marking whether the proposal has been canceled */\\n        bool canceled;\\n        /** Flag marking whether the proposal has been executed */\\n        bool executed;\\n        /** The type of the proposal */\\n        uint8 proposalType;\\n    }\\n    /*\\n     * @notice Possible states that a proposal may be in\\n     */\\n    enum ProposalState {\\n        Canceled,\\n        Queued,\\n        Executed\\n    }\\n\\n    /**\\n     * @notice A privileged role that can cancel any proposal\\n     */\\n    address public guardian;\\n\\n    /**\\n     * @notice Stores BNB chain layerzero endpoint id\\n     */\\n    uint16 public srcChainId;\\n\\n    /**\\n     * @notice Last proposal count received\\n     */\\n    uint256 public lastProposalReceived;\\n\\n    /**\\n     * @notice The official record of all proposals ever proposed\\n     */\\n    mapping(uint256 => Proposal) public proposals;\\n\\n    /**\\n     * @notice Mapping containing Timelock addresses for each proposal type\\n     */\\n    mapping(uint256 => ITimelock) public proposalTimelocks;\\n\\n    /**\\n     * @notice Represents queue state of proposal\\n     */\\n    mapping(uint256 => bool) public queued;\\n\\n    /**\\n     * @notice Emitted when proposal is received\\n     */\\n    event ProposalReceived(\\n        uint256 indexed proposalId,\\n        address[] targets,\\n        uint256[] values,\\n        string[] signatures,\\n        bytes[] calldatas,\\n        uint8 proposalType\\n    );\\n\\n    /**\\n     * @notice Emitted when proposal is queued\\n     */\\n    event ProposalQueued(uint256 indexed id, uint256 eta);\\n\\n    /**\\n     * Emitted when proposal executed\\n     */\\n    event ProposalExecuted(uint256 indexed id);\\n\\n    /**\\n     * @notice Emitted when proposal failed\\n     */\\n    event ReceivePayloadFailed(uint16 indexed srcChainId, bytes indexed srcAddress, uint64 nonce, bytes reason);\\n\\n    /**\\n     * @notice Emitted when proposal is canceled\\n     */\\n    event ProposalCanceled(uint256 indexed id);\\n\\n    /**\\n     * @notice Emitted when timelock added\\n     */\\n    event TimelockAdded(uint8 routeType, address indexed oldTimelock, address indexed newTimelock);\\n\\n    /**\\n     * @notice Emitted when source layerzero endpoint id is updated\\n     */\\n    event SetSrcChainId(uint16 indexed oldSrcChainId, uint16 indexed newSrcChainId);\\n\\n    /**\\n     * @notice Emitted when new guardian address is set\\n     */\\n    event NewGuardian(address indexed oldGuardian, address indexed newGuardian);\\n\\n    /**\\n     * @notice Emitted when pending admin of Timelock is updated\\n     */\\n    event SetTimelockPendingAdmin(address, uint8);\\n\\n    /**\\n     * @notice Thrown when proposal ID is invalid\\n     */\\n    error InvalidProposalId();\\n\\n    constructor(address endpoint_, address guardian_, uint16 srcChainId_) BaseOmnichainControllerDest(endpoint_) {\\n        ensureNonzeroAddress(guardian_);\\n        guardian = guardian_;\\n        srcChainId = srcChainId_;\\n    }\\n\\n    /**\\n     * @notice Update source layerzero endpoint id\\n     * @param srcChainId_ The new source chain id to be set\\n     * @custom:event Emit SetSrcChainId with old and new source id\\n     * @custom:access Only owner\\n     */\\n    function setSrcChainId(uint16 srcChainId_) external onlyOwner {\\n        emit SetSrcChainId(srcChainId, srcChainId_);\\n        srcChainId = srcChainId_;\\n    }\\n\\n    /**\\n     * @notice Sets the new executor guardian\\n     * @param newGuardian The address of the new guardian\\n     * @custom:access Must be call by guardian or owner\\n     * @custom:event Emit NewGuardian with old and new guardian address\\n     */\\n    function setGuardian(address newGuardian) external {\\n        require(\\n            msg.sender == guardian || msg.sender == owner(),\\n            \\\"OmnichainGovernanceExecutor::setGuardian: owner or guardian only\\\"\\n        );\\n        ensureNonzeroAddress(newGuardian);\\n        emit NewGuardian(guardian, newGuardian);\\n        guardian = newGuardian;\\n    }\\n\\n    /**\\n     * @notice Add timelocks to the ProposalTimelocks mapping\\n     * @param timelocks_ Array of addresses of all 3 timelocks\\n     * @custom:access Only owner\\n     * @custom:event Emits TimelockAdded with old and new timelock and route type\\n     */\\n    function addTimelocks(ITimelock[] memory timelocks_) external onlyOwner {\\n        uint8 length = uint8(type(ProposalType).max) + 1;\\n        require(\\n            timelocks_.length == length,\\n            \\\"OmnichainGovernanceExecutor::addTimelocks:number of timelocks should match the number of governance routes\\\"\\n        );\\n        for (uint8 i; i < length; ++i) {\\n            ensureNonzeroAddress(address(timelocks_[i]));\\n            emit TimelockAdded(i, address(proposalTimelocks[i]), address(timelocks_[i]));\\n            proposalTimelocks[i] = timelocks_[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Executes a queued proposal if eta has passed\\n     * @param proposalId_ Id of proposal that is to be executed\\n     * @custom:event Emits ProposalExecuted with proposal id of executed proposal\\n     */\\n    function execute(uint256 proposalId_) external nonReentrant {\\n        require(\\n            state(proposalId_) == ProposalState.Queued,\\n            \\\"OmnichainGovernanceExecutor::execute: proposal can only be executed if it is queued\\\"\\n        );\\n\\n        Proposal storage proposal = proposals[proposalId_];\\n        proposal.executed = true;\\n        ITimelock timelock = proposalTimelocks[proposal.proposalType];\\n        uint256 eta = proposal.eta;\\n        uint256 length = proposal.targets.length;\\n\\n        emit ProposalExecuted(proposalId_);\\n\\n        for (uint256 i; i < length; ++i) {\\n            timelock.executeTransaction(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta\\n            );\\n        }\\n        delete queued[proposalId_];\\n    }\\n\\n    /**\\n     * @notice Cancels a proposal only if sender is the guardian and proposal is not executed\\n     * @param proposalId_ Id of proposal that is to be canceled\\n     * @custom:access Sender must be the guardian\\n     * @custom:event Emits ProposalCanceled with proposal id of the canceled proposal\\n     */\\n    function cancel(uint256 proposalId_) external {\\n        require(\\n            state(proposalId_) == ProposalState.Queued,\\n            \\\"OmnichainGovernanceExecutor::cancel: proposal should be queued and not executed\\\"\\n        );\\n        Proposal storage proposal = proposals[proposalId_];\\n        require(msg.sender == guardian, \\\"OmnichainGovernanceExecutor::cancel: sender must be guardian\\\");\\n\\n        proposal.canceled = true;\\n        ITimelock timelock = proposalTimelocks[proposal.proposalType];\\n        uint256 eta = proposal.eta;\\n        uint256 length = proposal.targets.length;\\n\\n        emit ProposalCanceled(proposalId_);\\n\\n        for (uint256 i; i < length; ++i) {\\n            timelock.cancelTransaction(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta\\n            );\\n        }\\n        delete queued[proposalId_];\\n    }\\n\\n    /**\\n     * @notice Sets the new pending admin of the Timelock\\n     * @param pendingAdmin_ Address of new pending admin\\n     * @param proposalType_ Type of proposal\\n     * @custom:access Only owner\\n     * @custom:event Emits SetTimelockPendingAdmin with new pending admin and proposal type\\n     */\\n    function setTimelockPendingAdmin(address pendingAdmin_, uint8 proposalType_) external onlyOwner {\\n        uint8 proposalTypeLength = uint8(type(ProposalType).max) + 1;\\n        require(\\n            proposalType_ < proposalTypeLength,\\n            \\\"OmnichainGovernanceExecutor::setTimelockPendingAdmin: invalid proposal type\\\"\\n        );\\n\\n        proposalTimelocks[proposalType_].setPendingAdmin(pendingAdmin_);\\n        emit SetTimelockPendingAdmin(pendingAdmin_, proposalType_);\\n    }\\n\\n    /**\\n     * @notice Resends a previously failed message\\n     * @param srcChainId_ Source chain Id\\n     * @param srcAddress_ Source address => local app address + remote app address\\n     * @param nonce_ Nonce to identify failed message\\n     * @param payload_ The payload of the message to be retried\\n     * @custom:access Only owner\\n     */\\n    function retryMessage(\\n        uint16 srcChainId_,\\n        bytes calldata srcAddress_,\\n        uint64 nonce_,\\n        bytes calldata payload_\\n    ) public payable override onlyOwner nonReentrant {\\n        require(\\n            keccak256(trustedRemoteLookup[srcChainId_]) == keccak256(srcAddress_),\\n            \\\"OmnichainGovernanceExecutor::retryMessage: not a trusted remote\\\"\\n        );\\n        super.retryMessage(srcChainId_, srcAddress_, nonce_, payload_);\\n    }\\n\\n    /**\\n     * @notice Gets the state of a proposal\\n     * @param proposalId_ The id of the proposal\\n     * @return Proposal state\\n     */\\n    function state(uint256 proposalId_) public view returns (ProposalState) {\\n        Proposal storage proposal = proposals[proposalId_];\\n        if (proposal.canceled) {\\n            return ProposalState.Canceled;\\n        } else if (proposal.executed) {\\n            return ProposalState.Executed;\\n        } else if (queued[proposalId_]) {\\n            // queued only when proposal is received\\n            return ProposalState.Queued;\\n        } else {\\n            revert InvalidProposalId();\\n        }\\n    }\\n\\n    /**\\n     * @notice Process blocking LayerZero receive request\\n     * @param srcChainId_ Source chain Id\\n     * @param srcAddress_ Source address from which payload is received\\n     * @param nonce_ Nonce associated with the payload to prevent replay attacks\\n     * @param payload_ Encoded payload containing proposal information\\n     * @custom:event Emit ReceivePayloadFailed if call fails\\n     */\\n    function _blockingLzReceive(\\n        uint16 srcChainId_,\\n        bytes memory srcAddress_,\\n        uint64 nonce_,\\n        bytes memory payload_\\n    ) internal virtual override {\\n        require(srcChainId_ == srcChainId, \\\"OmnichainGovernanceExecutor::_blockingLzReceive: invalid source chain id\\\");\\n        bytes32 hashedPayload = keccak256(payload_);\\n        bytes memory callData = abi.encodeCall(this.nonblockingLzReceive, (srcChainId_, srcAddress_, nonce_, payload_));\\n\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(gasleft() - 30000, 150, callData);\\n        // try-catch all errors/exceptions\\n        if (!success) {\\n            failedMessages[srcChainId_][srcAddress_][nonce_] = hashedPayload;\\n            emit ReceivePayloadFailed(srcChainId_, srcAddress_, nonce_, reason); // Retrieve payload from the src side tx if needed to clear\\n        }\\n    }\\n\\n    /**\\n     * @notice Process non blocking LayerZero receive request\\n     * @param payload_ Encoded payload containing proposal information\\n     * @custom:event Emit ProposalReceived\\n     */\\n    function _nonblockingLzReceive(\\n        uint16,\\n        bytes memory,\\n        uint64,\\n        bytes memory payload_\\n    ) internal virtual override whenNotPaused {\\n        (bytes memory payload, uint256 pId) = abi.decode(payload_, (bytes, uint256));\\n        (\\n            address[] memory targets,\\n            uint256[] memory values,\\n            string[] memory signatures,\\n            bytes[] memory calldatas,\\n            uint8 pType\\n        ) = abi.decode(payload, (address[], uint256[], string[], bytes[], uint8));\\n        require(proposals[pId].id == 0, \\\"OmnichainGovernanceExecutor::_nonblockingLzReceive: duplicate proposal\\\");\\n        require(\\n            targets.length == values.length &&\\n                targets.length == signatures.length &&\\n                targets.length == calldatas.length,\\n            \\\"OmnichainGovernanceExecutor::_nonblockingLzReceive: proposal function information arity mismatch\\\"\\n        );\\n        require(\\n            pType < uint8(type(ProposalType).max) + 1,\\n            \\\"OmnichainGovernanceExecutor::_nonblockingLzReceive: invalid proposal type\\\"\\n        );\\n        _isEligibleToReceive(targets.length);\\n\\n        Proposal memory newProposal = Proposal({\\n            id: pId,\\n            eta: 0,\\n            targets: targets,\\n            values: values,\\n            signatures: signatures,\\n            calldatas: calldatas,\\n            canceled: false,\\n            executed: false,\\n            proposalType: pType\\n        });\\n\\n        proposals[pId] = newProposal;\\n        lastProposalReceived = pId;\\n\\n        emit ProposalReceived(newProposal.id, targets, values, signatures, calldatas, pType);\\n        _queue(pId);\\n    }\\n\\n    /**\\n     * @notice Queue proposal for execution\\n     * @param proposalId_ Proposal to be queued\\n     * @custom:event Emit ProposalQueued with proposal id and eta\\n     */\\n    function _queue(uint256 proposalId_) internal {\\n        Proposal storage proposal = proposals[proposalId_];\\n        uint256 eta = block.timestamp + proposalTimelocks[proposal.proposalType].delay();\\n\\n        proposal.eta = eta;\\n        queued[proposalId_] = true;\\n        uint8 proposalType = proposal.proposalType;\\n        uint256 length = proposal.targets.length;\\n        emit ProposalQueued(proposalId_, eta);\\n\\n        for (uint256 i; i < length; ++i) {\\n            _queueOrRevertInternal(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta,\\n                proposalType\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @notice Check for unique proposal\\n     * @param target_ Address of the contract with the method to be called\\n     * @param value_ Native token amount sent with the transaction\\n     * @param signature_ Signature of the function to be called\\n     * @param data_ Arguments to be passed to the function when called\\n     * @param eta_ Timestamp after which the transaction can be executed\\n     * @param proposalType_ Type of proposal\\n     */\\n    function _queueOrRevertInternal(\\n        address target_,\\n        uint256 value_,\\n        string memory signature_,\\n        bytes memory data_,\\n        uint256 eta_,\\n        uint8 proposalType_\\n    ) internal {\\n        require(\\n            !proposalTimelocks[proposalType_].queuedTransactions(\\n                keccak256(abi.encode(target_, value_, signature_, data_, eta_))\\n            ),\\n            \\\"OmnichainGovernanceExecutor::queueOrRevertInternal: identical proposal action already queued at eta\\\"\\n        );\\n\\n        proposalTimelocks[proposalType_].queueTransaction(target_, value_, signature_, data_, eta_);\\n    }\\n}\\n\",\"keccak256\":\"0x6b3858ea6ac8248a7189910ed6f8af22cfa2299bcec8d015940ddae3406b3adb\",\"license\":\"MIT\"},\"contracts/Cross-chain/interfaces/ITimelock.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/**\\n * @title ITimelock\\n * @author Venus\\n * @dev Interface for Timelock contract\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ninterface ITimelock {\\n    /**\\n     * @notice Delay period for the transaction queue\\n     */\\n    function delay() external view returns (uint256);\\n\\n    /**\\n     * @notice Required period to execute a proposal transaction\\n     */\\n    function GRACE_PERIOD() external view returns (uint256);\\n\\n    /**\\n     * @notice Method for accepting a proposed admin\\n     */\\n    function acceptAdmin() external;\\n\\n    /**\\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract.\\n     */\\n    function setPendingAdmin(address pendingAdmin) external;\\n\\n    /**\\n     * @notice Show mapping of queued transactions\\n     * @param hash Transaction hash\\n     */\\n    function queuedTransactions(bytes32 hash) external view returns (bool);\\n\\n    /**\\n     * @notice Called for each action when queuing a proposal\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Hash of the queued transaction\\n     */\\n    function queueTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external returns (bytes32);\\n\\n    /**\\n     * @notice Called to cancel a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     */\\n    function cancelTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external;\\n\\n    /**\\n     * @notice Called to execute a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Result of function call\\n     */\\n    function executeTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external payable returns (bytes memory);\\n}\\n\",\"keccak256\":\"0x7e05998e5b36a78e6b7933e446c0e0a634ba7fdaae1eb8ba6d4affe12f3a2712\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4299,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":4075,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"_owner","offset":0,"slot":"1","type":"t_address"},{"astId":455,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"trustedRemoteLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"minDstGasLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"payloadSizeLimitLookup","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"precrime","offset":0,"slot":"5","type":"t_address"},{"astId":997,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"failedMessages","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":4198,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"_paused","offset":0,"slot":"7","type":"t_bool"},{"astId":5497,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"maxDailyReceiveLimit","offset":0,"slot":"8","type":"t_uint256"},{"astId":5500,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"last24HourCommandsReceived","offset":0,"slot":"9","type":"t_uint256"},{"astId":5503,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"last24HourReceiveWindowStart","offset":0,"slot":"10","type":"t_uint256"},{"astId":6251,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"guardian","offset":0,"slot":"11","type":"t_address"},{"astId":6254,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"srcChainId","offset":20,"slot":"11","type":"t_uint16"},{"astId":6257,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"lastProposalReceived","offset":0,"slot":"12","type":"t_uint256"},{"astId":6263,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"proposals","offset":0,"slot":"13","type":"t_mapping(t_uint256,t_struct(Proposal)6244_storage)"},{"astId":6269,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"proposalTimelocks","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_contract(ITimelock)8011)"},{"astId":6274,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"queued","offset":0,"slot":"15","type":"t_mapping(t_uint256,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"base":"t_address","encoding":"dynamic_array","label":"address[]","numberOfBytes":"32"},"t_array(t_bytes_storage)dyn_storage":{"base":"t_bytes_storage","encoding":"dynamic_array","label":"bytes[]","numberOfBytes":"32"},"t_array(t_string_storage)dyn_storage":{"base":"t_string_storage","encoding":"dynamic_array","label":"string[]","numberOfBytes":"32"},"t_array(t_uint256)dyn_storage":{"base":"t_uint256","encoding":"dynamic_array","label":"uint256[]","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_contract(ITimelock)8011":{"encoding":"inplace","label":"contract ITimelock","numberOfBytes":"20"},"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_uint256,t_bool)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_uint256,t_contract(ITimelock)8011)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => contract ITimelock)","numberOfBytes":"32","value":"t_contract(ITimelock)8011"},"t_mapping(t_uint256,t_struct(Proposal)6244_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct OmnichainGovernanceExecutor.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)6244_storage"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)6244_storage":{"encoding":"inplace","label":"struct OmnichainGovernanceExecutor.Proposal","members":[{"astId":6215,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":6218,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"eta","offset":0,"slot":"1","type":"t_uint256"},{"astId":6222,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"targets","offset":0,"slot":"2","type":"t_array(t_address)dyn_storage"},{"astId":6226,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"values","offset":0,"slot":"3","type":"t_array(t_uint256)dyn_storage"},{"astId":6230,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"signatures","offset":0,"slot":"4","type":"t_array(t_string_storage)dyn_storage"},{"astId":6234,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"calldatas","offset":0,"slot":"5","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":6237,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"canceled","offset":0,"slot":"6","type":"t_bool"},{"astId":6240,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"executed","offset":1,"slot":"6","type":"t_bool"},{"astId":6243,"contract":"contracts/Cross-chain/OmnichainGovernanceExecutor.sol:OmnichainGovernanceExecutor","label":"proposalType","offset":2,"slot":"6","type":"t_uint8"}],"numberOfBytes":"224"},"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":{"errors":{"InvalidProposalId()":[{"notice":"Thrown when proposal ID is invalid"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"NewGuardian(address,address)":{"notice":"Emitted when new guardian address is set"},"ProposalCanceled(uint256)":{"notice":"Emitted when proposal is canceled"},"ProposalExecuted(uint256)":{"notice":"Emitted when proposal executed"},"ProposalQueued(uint256,uint256)":{"notice":"Emitted when proposal is queued"},"ProposalReceived(uint256,address[],uint256[],string[],bytes[],uint8)":{"notice":"Emitted when proposal is received"},"ReceivePayloadFailed(uint16,bytes,uint64,bytes)":{"notice":"Emitted when proposal failed"},"SetMaxDailyReceiveLimit(uint256,uint256)":{"notice":"Emitted when the maximum daily limit for receiving command from Binance chain is modified"},"SetSrcChainId(uint16,uint16)":{"notice":"Emitted when source layerzero endpoint id is updated"},"SetTimelockPendingAdmin(address,uint8)":{"notice":"Emitted when pending admin of Timelock is updated"},"TimelockAdded(uint8,address,address)":{"notice":"Emitted when timelock added"}},"kind":"user","methods":{"addTimelocks(address[])":{"notice":"Add timelocks to the ProposalTimelocks mapping"},"cancel(uint256)":{"notice":"Cancels a proposal only if sender is the guardian and proposal is not executed"},"execute(uint256)":{"notice":"Executes a queued proposal if eta has passed"},"guardian()":{"notice":"A privileged role that can cancel any proposal"},"last24HourCommandsReceived()":{"notice":"Total received commands within the last 24-hour window from Binance chain"},"last24HourReceiveWindowStart()":{"notice":"Timestamp when the last 24-hour window started from Binance chain"},"lastProposalReceived()":{"notice":"Last proposal count received"},"maxDailyReceiveLimit()":{"notice":"Maximum daily limit for receiving commands from Binance chain"},"pause()":{"notice":"Triggers the paused state of the controller"},"proposalTimelocks(uint256)":{"notice":"Mapping containing Timelock addresses for each proposal type"},"proposals(uint256)":{"notice":"The official record of all proposals ever proposed"},"queued(uint256)":{"notice":"Represents queue state of proposal"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening"},"retryMessage(uint16,bytes,uint64,bytes)":{"notice":"Resends a previously failed message"},"setGuardian(address)":{"notice":"Sets the new executor guardian"},"setMaxDailyReceiveLimit(uint256)":{"notice":"Sets the maximum daily limit for receiving commands"},"setSrcChainId(uint16)":{"notice":"Update source layerzero endpoint id"},"setTimelockPendingAdmin(address,uint8)":{"notice":"Sets the new pending admin of the Timelock"},"srcChainId()":{"notice":"Stores BNB chain layerzero endpoint id"},"state(uint256)":{"notice":"Gets the state of a proposal"},"unpause()":{"notice":"Triggers the resume state of the controller"}},"notice":"Executes the proposal transactions sent from the main chain","version":1}}},"contracts/Cross-chain/OmnichainProposalSender.sol":{"OmnichainProposalSender":{"abi":[{"inputs":[{"internalType":"contract ILayerZeroEndpoint","name":"lzEndpoint_","type":"address"},{"internalType":"address","name":"accessControlManager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"executionHash","type":"bytes32"}],"name":"ClearPayload","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"remoteChainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"}],"name":"ExecuteRemoteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"FallbackWithdraw","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":"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":true,"internalType":"uint16","name":"remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"oldRemoteAddress","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"newRemoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":true,"internalType":"uint16","name":"remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"adapterParams","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"StorePayload","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"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"},{"inputs":[],"name":"LZ_ENDPOINT","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourCommandsSent","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":"chainIdToLastProposalSentTimestamp","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":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"bool","name":"useZro_","type":"bool"},{"internalType":"bytes","name":"adapterParams_","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"bytes","name":"adapterParams_","type":"bytes"},{"internalType":"address","name":"zroPaymentAddress_","type":"address"}],"name":"execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"pId_","type":"uint256"},{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"bytes","name":"adapterParams_","type":"bytes"},{"internalType":"uint256","name":"originalValue_","type":"uint256"}],"name":"fallbackWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"version_","type":"uint16"},{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"configType_","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"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":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"pId_","type":"uint256"},{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"bytes","name":"adapterParams_","type":"bytes"},{"internalType":"address","name":"zroPaymentAddress_","type":"address"},{"internalType":"uint256","name":"originalValue_","type":"uint256"}],"name":"retryExecute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","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":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyLimit","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":"newRemoteAddress_","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"storedExecutionHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","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":{"estimateFees(uint16,bytes,bool,bytes)":{"details":"The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded","params":{"adapterParams_":"The params used to specify the custom amount of gas required for the execution on the destination","payload_":"The payload to be sent to the remote chain. It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)","remoteChainId_":"The LayerZero id of a remote chain","useZro_":"Bool that indicates whether to pay in ZRO tokens or not"},"returns":{"_0":"nativeFee The amount of fee in the native gas token (e.g. ETH)","_1":"zroFee The amount of fee in ZRO token"}},"execute(uint16,bytes,bytes,address)":{"custom:access":"Controlled by Access Control Manager","custom:event":"Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on successEmits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure","details":"Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)","params":{"adapterParams_":"The params used to specify the custom amount of gas required for the execution on the destination","payload_":"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)","remoteChainId_":"The LayerZero id of the remote chain","zroPaymentAddress_":"The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin"}},"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)":{"custom:access":"Only owner","custom:event":"Emits ClearPayload with proposal ID and hashEmits FallbackWithdraw with receiver and amount","params":{"adapterParams_":"The params used to specify the custom amount of gas required for the execution on the destination","originalValue_":"The msg.value passed when execute() function was called","pId_":"The proposal ID to identify a failed message","payload_":"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)","remoteChainId_":"The LayerZero id of the remote chain","to_":"Address of the receiver"}},"getConfig(uint16,uint16,uint256)":{"params":{"chainId_":"The LayerZero chainId","configType_":"Type of configuration. Every messaging library has its own convention","version_":"Messaging library version"}},"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."},"removeTrustedRemote(uint16)":{"custom:access":"Controlled by Access Control Manager","custom:event":"Emit TrustedRemoteRemoved with remote chain id","params":{"remoteChainId_":"The chain's id corresponds to setting the trusted remote to empty"}},"retryExecute(uint256,uint16,bytes,bytes,address,uint256)":{"custom:access":"Controlled by Access Control Manager","custom:event":"Emits ClearPayload with proposal ID and hash","details":"Allows providing more fees if needed. The extra fees will be refunded to the caller","params":{"adapterParams_":"The params used to specify the custom amount of gas required for the execution on the destination","originalValue_":"The msg.value passed when execute() function was called","pId_":"The proposal ID to identify a failed message","payload_":"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)","remoteChainId_":"The LayerZero id of the remote chain","zroPaymentAddress_":"The address of the ZRO token holder who would pay for the transaction."}},"setAccessControlManager(address)":{"custom:access":"Only owner","custom:event":"Emits NewAccessControlManager with old and new access control manager addresses","params":{"accessControlManager_":"The new address of the Access Control Manager"}},"setConfig(uint16,uint16,uint256,bytes)":{"custom:access":"Controlled by AccessControlManager","params":{"chainId_":"The LayerZero chainId for the pending config change","configType_":"The type of configuration. Every messaging library has its own convention","config_":"The configuration in bytes. It can encode arbitrary content","version_":"Messaging library version"}},"setMaxDailyLimit(uint16,uint256)":{"custom:access":"Controlled by AccessControlManager","custom:event":"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id","params":{"chainId_":"Destination chain id","limit_":"Number of commands"}},"setSendVersion(uint16)":{"custom:access":"Controlled by AccessControlManager","params":{"version_":"New messaging library version"}},"setTrustedRemoteAddress(uint16,bytes)":{"custom:access":"Controlled by AccessControlManager","custom:event":"Emits SetTrustedRemoteAddress with remote chain Id and remote address","params":{"newRemoteAddress_":"The address of the contract on the remote chain to receive messages sent by this contract","remoteChainId_":"The LayerZero id of a remote chain"}},"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"}},"stateVariables":{"storedExecutionHashes":{"details":"[proposalId] -> [executionHash]"}},"title":"OmnichainProposalSender","version":1},"evm":{"bytecode":{"functionDebugData":{"@_4091":{"entryPoint":null,"id":4091,"parameterSlots":0,"returnSlots":0},"@_4207":{"entryPoint":null,"id":4207,"parameterSlots":0,"returnSlots":0},"@_4307":{"entryPoint":null,"id":4307,"parameterSlots":0,"returnSlots":0},"@_5682":{"entryPoint":null,"id":5682,"parameterSlots":1,"returnSlots":0},"@_7299":{"entryPoint":null,"id":7299,"parameterSlots":2,"returnSlots":0},"@_msgSender_4354":{"entryPoint":null,"id":4354,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_4179":{"entryPoint":143,"id":4179,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":225,"id":5466,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_ILayerZeroEndpoint_$1357t_address_fromMemory":{"entryPoint":288,"id":null,"parameterSlots":2,"returnSlots":2},"validator_revert_contract_ILayerZeroEndpoint":{"entryPoint":267,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:624:54","nodeType":"YulBlock","src":"0:624:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"79:86:54","nodeType":"YulBlock","src":"79:86:54","statements":[{"body":{"nativeSrc":"143:16:54","nodeType":"YulBlock","src":"143:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"152:1:54","nodeType":"YulLiteral","src":"152:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"155:1:54","nodeType":"YulLiteral","src":"155:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"145:6:54","nodeType":"YulIdentifier","src":"145:6:54"},"nativeSrc":"145:12:54","nodeType":"YulFunctionCall","src":"145:12:54"},"nativeSrc":"145:12:54","nodeType":"YulExpressionStatement","src":"145:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"102:5:54","nodeType":"YulIdentifier","src":"102:5:54"},{"arguments":[{"name":"value","nativeSrc":"113:5:54","nodeType":"YulIdentifier","src":"113:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"128:3:54","nodeType":"YulLiteral","src":"128:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"133:1:54","nodeType":"YulLiteral","src":"133:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"124:3:54","nodeType":"YulIdentifier","src":"124:3:54"},"nativeSrc":"124:11:54","nodeType":"YulFunctionCall","src":"124:11:54"},{"kind":"number","nativeSrc":"137:1:54","nodeType":"YulLiteral","src":"137:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"120:3:54","nodeType":"YulIdentifier","src":"120:3:54"},"nativeSrc":"120:19:54","nodeType":"YulFunctionCall","src":"120:19:54"}],"functionName":{"name":"and","nativeSrc":"109:3:54","nodeType":"YulIdentifier","src":"109:3:54"},"nativeSrc":"109:31:54","nodeType":"YulFunctionCall","src":"109:31:54"}],"functionName":{"name":"eq","nativeSrc":"99:2:54","nodeType":"YulIdentifier","src":"99:2:54"},"nativeSrc":"99:42:54","nodeType":"YulFunctionCall","src":"99:42:54"}],"functionName":{"name":"iszero","nativeSrc":"92:6:54","nodeType":"YulIdentifier","src":"92:6:54"},"nativeSrc":"92:50:54","nodeType":"YulFunctionCall","src":"92:50:54"},"nativeSrc":"89:70:54","nodeType":"YulIf","src":"89:70:54"}]},"name":"validator_revert_contract_ILayerZeroEndpoint","nativeSrc":"14:151:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"68:5:54","nodeType":"YulTypedName","src":"68:5:54","type":""}],"src":"14:151:54"},{"body":{"nativeSrc":"295:327:54","nodeType":"YulBlock","src":"295:327:54","statements":[{"body":{"nativeSrc":"341:16:54","nodeType":"YulBlock","src":"341:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"350:1:54","nodeType":"YulLiteral","src":"350:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"353:1:54","nodeType":"YulLiteral","src":"353:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"343:6:54","nodeType":"YulIdentifier","src":"343:6:54"},"nativeSrc":"343:12:54","nodeType":"YulFunctionCall","src":"343:12:54"},"nativeSrc":"343:12:54","nodeType":"YulExpressionStatement","src":"343:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"316:7:54","nodeType":"YulIdentifier","src":"316:7:54"},{"name":"headStart","nativeSrc":"325:9:54","nodeType":"YulIdentifier","src":"325:9:54"}],"functionName":{"name":"sub","nativeSrc":"312:3:54","nodeType":"YulIdentifier","src":"312:3:54"},"nativeSrc":"312:23:54","nodeType":"YulFunctionCall","src":"312:23:54"},{"kind":"number","nativeSrc":"337:2:54","nodeType":"YulLiteral","src":"337:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"308:3:54","nodeType":"YulIdentifier","src":"308:3:54"},"nativeSrc":"308:32:54","nodeType":"YulFunctionCall","src":"308:32:54"},"nativeSrc":"305:52:54","nodeType":"YulIf","src":"305:52:54"},{"nativeSrc":"366:29:54","nodeType":"YulVariableDeclaration","src":"366:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:54","nodeType":"YulIdentifier","src":"385:9:54"}],"functionName":{"name":"mload","nativeSrc":"379:5:54","nodeType":"YulIdentifier","src":"379:5:54"},"nativeSrc":"379:16:54","nodeType":"YulFunctionCall","src":"379:16:54"},"variables":[{"name":"value","nativeSrc":"370:5:54","nodeType":"YulTypedName","src":"370:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"449:5:54","nodeType":"YulIdentifier","src":"449:5:54"}],"functionName":{"name":"validator_revert_contract_ILayerZeroEndpoint","nativeSrc":"404:44:54","nodeType":"YulIdentifier","src":"404:44:54"},"nativeSrc":"404:51:54","nodeType":"YulFunctionCall","src":"404:51:54"},"nativeSrc":"404:51:54","nodeType":"YulExpressionStatement","src":"404:51:54"},{"nativeSrc":"464:15:54","nodeType":"YulAssignment","src":"464:15:54","value":{"name":"value","nativeSrc":"474:5:54","nodeType":"YulIdentifier","src":"474:5:54"},"variableNames":[{"name":"value0","nativeSrc":"464:6:54","nodeType":"YulIdentifier","src":"464:6:54"}]},{"nativeSrc":"488:40:54","nodeType":"YulVariableDeclaration","src":"488:40:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"513:9:54","nodeType":"YulIdentifier","src":"513:9:54"},{"kind":"number","nativeSrc":"524:2:54","nodeType":"YulLiteral","src":"524:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"509:3:54","nodeType":"YulIdentifier","src":"509:3:54"},"nativeSrc":"509:18:54","nodeType":"YulFunctionCall","src":"509:18:54"}],"functionName":{"name":"mload","nativeSrc":"503:5:54","nodeType":"YulIdentifier","src":"503:5:54"},"nativeSrc":"503:25:54","nodeType":"YulFunctionCall","src":"503:25:54"},"variables":[{"name":"value_1","nativeSrc":"492:7:54","nodeType":"YulTypedName","src":"492:7:54","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"582:7:54","nodeType":"YulIdentifier","src":"582:7:54"}],"functionName":{"name":"validator_revert_contract_ILayerZeroEndpoint","nativeSrc":"537:44:54","nodeType":"YulIdentifier","src":"537:44:54"},"nativeSrc":"537:53:54","nodeType":"YulFunctionCall","src":"537:53:54"},"nativeSrc":"537:53:54","nodeType":"YulExpressionStatement","src":"537:53:54"},{"nativeSrc":"599:17:54","nodeType":"YulAssignment","src":"599:17:54","value":{"name":"value_1","nativeSrc":"609:7:54","nodeType":"YulIdentifier","src":"609:7:54"},"variableNames":[{"name":"value1","nativeSrc":"599:6:54","nodeType":"YulIdentifier","src":"599:6:54"}]}]},"name":"abi_decode_tuple_t_contract$_ILayerZeroEndpoint_$1357t_address_fromMemory","nativeSrc":"170:452:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"253:9:54","nodeType":"YulTypedName","src":"253:9:54","type":""},{"name":"dataEnd","nativeSrc":"264:7:54","nodeType":"YulTypedName","src":"264:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"276:6:54","nodeType":"YulTypedName","src":"276:6:54","type":""},{"name":"value1","nativeSrc":"284:6:54","nodeType":"YulTypedName","src":"284:6:54","type":""}],"src":"170:452:54"}]},"contents":"{\n    { }\n    function validator_revert_contract_ILayerZeroEndpoint(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_ILayerZeroEndpoint_$1357t_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_ILayerZeroEndpoint(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_ILayerZeroEndpoint(value_1)\n        value1 := value_1\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b5060405161346c38038061346c83398101604081905261002f91610120565b60016000558061003e3361008f565b6001805460ff60a01b19169055610054816100e1565b600280546001600160a01b0319166001600160a01b039290921691909117905561007d826100e1565b506001600160a01b031660805261015a565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610108576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6001600160a01b038116811461010857600080fd5b6000806040838503121561013357600080fd5b825161013e8161010b565b602084015190925061014f8161010b565b809150509250929050565b6080516132cd61019f600039600081816104e0015281816105e80152818161070001528181611067015281816112270152818161164b0152611a3f01526132cd6000f3fe6080604052600436106101a15760003560e01c80637533d788116100e1578063b4a0bdf31161008a578063da35c66411610064578063da35c66414610502578063e0354d7f14610518578063e2222b0e14610545578063f2fde38b1461055857600080fd5b8063b4a0bdf314610481578063cbed8b9c146104ae578063cd4d1c64146104ce57600080fd5b80638da5cb5b116100bb5780638da5cb5b146103e857806393a61d6c14610434578063a6c3d1651461046157600080fd5b80637533d788146103865780637dbb533c146103a65780638456cb59146103d357600080fd5b806330fd54a01161014e5780634f4ba0f4116101285780634f4ba0f4146102e55780635c975abb146103125780635f6716f71461034d578063715018a61461037a57600080fd5b806330fd54a01461029d5780633f4ba83a146102bd5780633fd9d7ef146102d257600080fd5b806321b4eaa11161017f57806321b4eaa1146102285780632488eec81461025d5780632dbbec081461027d57600080fd5b806307e0db17146101a65780630e32cb86146101c85780631183a3b2146101e8575b600080fd5b3480156101b257600080fd5b506101c66101c136600461222e565b610578565b005b3480156101d457600080fd5b506101c66101e336600461226b565b61065c565b3480156101f457600080fd5b5061021561020336600461222e565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561023457600080fd5b506102486102433660046122df565b6106fb565b6040805192835260208301919091520161021f565b34801561026957600080fd5b506101c6610278366004612374565b6107b2565b34801561028957600080fd5b506101c661029836600461222e565b610855565b3480156102a957600080fd5b506101c66102b836600461239e565b61097b565b3480156102c957600080fd5b506101c6610d11565b6101c66102e0366004612442565b610d59565b3480156102f157600080fd5b5061021561030036600461222e565b60036020526000908152604090205481565b34801561031e57600080fd5b5060015474010000000000000000000000000000000000000000900460ff16604051901515815260200161021f565b34801561035957600080fd5b5061036d6103683660046124d5565b6111dd565b60405161021f9190612561565b3480156101c657600080fd5b34801561039257600080fd5b5061036d6103a136600461222e565b6112b5565b3480156103b257600080fd5b506102156103c1366004612574565b60086020526000908152604090205481565b3480156103df57600080fd5b506101c661134f565b3480156103f457600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021f565b34801561044057600080fd5b5061021561044f36600461222e565b60056020526000908152604090205481565b34801561046d57600080fd5b506101c661047c36600461258d565b611395565b34801561048d57600080fd5b5060025461040f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104ba57600080fd5b506101c66104c93660046125e0565b6115ed565b3480156104da57600080fd5b5061040f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561050e57600080fd5b5061021560075481565b34801561052457600080fd5b5061021561053336600461222e565b60066020526000908152604090205481565b6101c661055336600461264f565b6116b6565b34801561056457600080fd5b506101c661057336600461226b565b611ad8565b6105b66040518060400160405280601681526020017f73657453656e6456657273696f6e2875696e7431362900000000000000000000815250611b75565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307e0db1790602401600060405180830381600087803b15801561064157600080fd5b505af1158015610655573d6000803e3d6000fd5b5050505050565b610664611c5a565b61066d81611cc1565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340a7bb1089308a8a8a8a8a6040518863ffffffff1660e01b81526004016107639796959493929190612721565b6040805180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190612784565b91509150965096945050505050565b6107f06040518060400160405280602081526020017f7365744d61784461696c794c696d69742875696e7431362c75696e7432353629815250611b75565b61ffff82166000818152600360209081526040918290205482519081529081018490527f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693910160405180910390a261ffff909116600090815260036020526040902055565b6108936040518060400160405280601b81526020017f72656d6f76655472757374656452656d6f74652875696e743136290000000000815250611b75565b61ffff8116600090815260096020526040902080546108b1906127a8565b905060000361092d5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a207472757374656460448201527f2072656d6f7465206e6f7420666f756e6400000000000000000000000000000060648201526084015b60405180910390fd5b61ffff81166000908152600960205260408120610949916121c9565b60405161ffff8216907f6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd3790600090a250565b610983611c5a565b61098b611d0e565b61099488611cc1565b60008111610a0a5760405162461bcd60e51b815260206004820152602e60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f206e617469766520616d6f756e740000000000000000000000000000000000006064820152608401610924565b6000849003610a815760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b60008781526008602052604090205480610b035760405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f7260448201527f6564207061796c6f6164000000000000000000000000000000000000000000006064820152608401610924565b6000878787878787604051602001610b20969594939291906127fb565b604051602081830303815290604052905081818051906020012014610bad5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f20657865637574696f6e20706172616d730000000000000000000000000000006064820152608401610924565b600089815260086020526040808220919091555173ffffffffffffffffffffffffffffffffffffffff8b16907f22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab9690610c089086815260200190565b60405180910390a2887f2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e83604051610c4291815260200190565b60405180910390a260008a73ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d8060008114610ca4576040519150601f19603f3d011682016040523d82523d6000602084013e610ca9565b606091505b5050905080610cfa5760405162461bcd60e51b815260206004820152600b60248201527f43616c6c206661696c65640000000000000000000000000000000000000000006044820152606401610924565b505050610d076001600055565b5050505050505050565b610d4f6040518060400160405280600981526020017f756e706175736528290000000000000000000000000000000000000000000000815250611b75565b610d57611d67565b565b610d61611de4565b610d826040518060600160405280602381526020016131f260239139611b75565b60003411610df85760405162461bcd60e51b815260206004820152602d60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2076616c7565206360448201527f616e6e6f74206265207a65726f000000000000000000000000000000000000006064820152608401610924565b6000849003610e6f5760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b61ffff861660009081526009602052604081208054610e8d906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb9906127a8565b8015610f065780601f10610edb57610100808354040283529160200191610f06565b820191906000526020600020905b815481529060010190602001808311610ee957829003601f168201915b505050505090508051600003610faa5760405162461bcd60e51b815260206004820152604260248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6160448201527f74696f6e20636861696e206973206e6f742061207472757374656420736f757260648201527f6365000000000000000000000000000000000000000000000000000000000000608482015260a401610924565b610fea8787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4f92505050565b6000600760008154610ffb9061286f565b9190508190559050600087878360405160200161101a939291906128a7565b60408051601f19818403018152908290527fc5803100000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c58031009034906110aa908d908890879033908c908f908f906004016128cb565b6000604051808303818588803b1580156110c357600080fd5b505af1935050505080156110d5575060015b611193573d808015611103576040519150601f19603f3d011682016040523d82523d6000602084013e611108565b606091505b508982888834604051602001611122959493929190612933565b60408051601f198184030181528282528051602091820120600087815260089092529190205561ffff8b169084907f6d16111647e03d7f1cb2b71c02eafe3355b97dfc17af3de1b94ef39c8a9ee4d9906111859086908c908c9034908990612976565b60405180910390a3506111d2565b8861ffff167f95a4fcf4eb9be6f5cf2eb6830782870f8907bccc513f765388a9cb2dae2f325983836040516111c99291906129c2565b60405180910390a25b505050505050505050565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808516600483015283166024820152306044820152606481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5ecbdbc90608401600060405180830381865afa158015611283573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ab9190810190612ab8565b90505b9392505050565b600960205260009081526040902080546112ce906127a8565b80601f01602080910402602001604051908101604052809291908181526020018280546112fa906127a8565b80156113475780601f1061131c57610100808354040283529160200191611347565b820191906000526020600020905b81548152906001019060200180831161132a57829003601f168201915b505050505081565b61138d6040518060400160405280600781526020017f7061757365282900000000000000000000000000000000000000000000000000815250611b75565b610d57611f3c565b6113b660405180606001604052806025815260200161321560259139611b75565b8261ffff166000036114305760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20636861696e496460448201527f206d757374206e6f74206265207a65726f0000000000000000000000000000006064820152608401610924565b61144561143d8284612af5565b60601c611cc1565b601481146114bb5760405162461bcd60e51b815260206004820152603d60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2072656d6f74652060448201527f61646472657373206d757374206265203230206279746573206c6f6e670000006064820152608401610924565b61ffff8316600090815260096020526040812080546114d9906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611505906127a8565b80156115525780601f1061152757610100808354040283529160200191611552565b820191906000526020600020905b81548152906001019060200180831161153557829003601f168201915b5050505050905082823060405160200161156e93929190612b3d565b60408051601f1981840301815291815261ffff86166000908152600960205220906115999082612bc3565b5061ffff84166000818152600960205260409081902090517fe84e609c32d71c678382f7c65cc051810a41dcaf660e55c9f8fcffeba4621a32916115df91859190612cbf565b60405180910390a250505050565b61160e60405180606001604052806026815260200161323a60269139611b75565b6040517fcbed8b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116889088908890889088908890600401612d78565b600060405180830381600087803b1580156116a257600080fd5b505af11580156111d2573d6000803e3d6000fd5b6116be611de4565b6116c6611d0e565b6116e760405180606001604052806038815260200161326060389139611b75565b61ffff871660009081526009602052604081208054611705906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611731906127a8565b801561177e5780601f106117535761010080835404028352916020019161177e565b820191906000526020600020905b81548152906001019060200180831161176157829003601f168201915b5050505050905080516000036118225760405162461bcd60e51b815260206004820152604260248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6160448201527f74696f6e20636861696e206973206e6f742061207472757374656420736f757260648201527f6365000000000000000000000000000000000000000000000000000000000000608482015260a401610924565b600089815260086020526040902054806118a45760405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f7260448201527f6564207061796c6f6164000000000000000000000000000000000000000000006064820152608401610924565b600087900361191b5760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b6000611929888a018a612db1565b5090506119368a82611e4f565b818a8a8a8a8a89604051602001611952969594939291906127fb565b60405160208183030381529060405280519060200120146119db5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f20657865637574696f6e20706172616d730000000000000000000000000000006064820152608401610924565b60008b81526008602052604080822091909155518b907f2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e90611a209085815260200190565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663c5803100611a6e3487612e2e565b8c868d8d338c8f8f6040518a63ffffffff1660e01b8152600401611a99989796959493929190612e47565b6000604051808303818588803b158015611ab257600080fd5b505af1158015611ac6573d6000803e3d6000fd5b5050505050505050610d076001600055565b611ae0611c5a565b73ffffffffffffffffffffffffffffffffffffffff8116611b695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610924565b611b7281611fab565b50565b6002546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906318c5e8ab90611bcd9033908590600401612ebf565b602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190612eee565b611b725760405162461bcd60e51b815260206004820152600d60248201527f6163636573732064656e696564000000000000000000000000000000000000006044820152606401610924565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610924565b73ffffffffffffffffffffffffffffffffffffffff8116611b72576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260005403611d605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610924565b6002600055565b611d6f612022565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60015474010000000000000000000000000000000000000000900460ff1615610d575760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610924565b60008060008084806020019051810190611e6991906130bf565b50935093509350935082518451148015611e84575081518451145b8015611e91575080518451145b611f295760405162461bcd60e51b815260206004820152604560248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2070726f706f736160448201527f6c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d697360648201527f6d61746368000000000000000000000000000000000000000000000000000000608482015260a401610924565b611f3486855161208c565b505050505050565b611f44611de4565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611dba3390565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60015474010000000000000000000000000000000000000000900460ff16610d575760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610924565b61ffff8216600090815260056020908152604080832054600483528184205460038452828520546006909452919093205442939290620151806120cf85876131de565b11156120f35761ffff87166000908152600560205260409020859055859250612100565b6120fd8684612e2e565b92505b818311156121505760405162461bcd60e51b815260206004820181905260248201527f4461696c79205472616e73616374696f6e204c696d69742045786365656465646044820152606401610924565b84810361219f5760405162461bcd60e51b815260206004820152601f60248201527f4d756c7469706c65206272696467696e6720696e20612070726f706f73616c006044820152606401610924565b505061ffff9094166000908152600460209081526040808320969096556006905293909320555050565b5080546121d5906127a8565b6000825580601f106121e5575050565b601f016020900490600052602060002090810190611b7291905b8082111561221357600081556001016121ff565b5090565b803561ffff8116811461222957600080fd5b919050565b60006020828403121561224057600080fd5b6112ae82612217565b73ffffffffffffffffffffffffffffffffffffffff81168114611b7257600080fd5b60006020828403121561227d57600080fd5b81356112ae81612249565b60008083601f84011261229a57600080fd5b50813567ffffffffffffffff8111156122b257600080fd5b6020830191508360208285010111156122ca57600080fd5b9250929050565b8015158114611b7257600080fd5b600080600080600080608087890312156122f857600080fd5b61230187612217565b9550602087013567ffffffffffffffff8082111561231e57600080fd5b61232a8a838b01612288565b90975095506040890135915061233f826122d1565b9093506060880135908082111561235557600080fd5b5061236289828a01612288565b979a9699509497509295939492505050565b6000806040838503121561238757600080fd5b61239083612217565b946020939093013593505050565b60008060008060008060008060c0898b0312156123ba57600080fd5b88356123c581612249565b9750602089013596506123da60408a01612217565b9550606089013567ffffffffffffffff808211156123f757600080fd5b6124038c838d01612288565b909750955060808b013591508082111561241c57600080fd5b506124298b828c01612288565b999c989b50969995989497949560a00135949350505050565b6000806000806000806080878903121561245b57600080fd5b61246487612217565b9550602087013567ffffffffffffffff8082111561248157600080fd5b61248d8a838b01612288565b909750955060408901359150808211156124a657600080fd5b506124b389828a01612288565b90945092505060608701356124c781612249565b809150509295509295509295565b6000806000606084860312156124ea57600080fd5b6124f384612217565b925061250160208501612217565b9150604084013590509250925092565b60005b8381101561252c578181015183820152602001612514565b50506000910152565b6000815180845261254d816020860160208601612511565b601f01601f19169290920160200192915050565b6020815260006112ae6020830184612535565b60006020828403121561258657600080fd5b5035919050565b6000806000604084860312156125a257600080fd5b6125ab84612217565b9250602084013567ffffffffffffffff8111156125c757600080fd5b6125d386828701612288565b9497909650939450505050565b6000806000806000608086880312156125f857600080fd5b61260186612217565b945061260f60208701612217565b935060408601359250606086013567ffffffffffffffff81111561263257600080fd5b61263e88828901612288565b969995985093965092949392505050565b60008060008060008060008060c0898b03121561266b57600080fd5b8835975061267b60208a01612217565b9650604089013567ffffffffffffffff8082111561269857600080fd5b6126a48c838d01612288565b909850965060608b01359150808211156126bd57600080fd5b506126ca8b828c01612288565b90955093505060808901356126de81612249565b8092505060a089013590509295985092959890939650565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015260a06040820152600061275b60a0830187896126f6565b851515606084015282810360808401526127768185876126f6565b9a9950505050505050505050565b6000806040838503121561279757600080fd5b505080516020909101519092909150565b600181811c908216806127bc57607f821691505b6020821081036127f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b61ffff871681526080602082015260006128196080830187896126f6565b828103604084015261282c8186886126f6565b915050826060830152979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128a0576128a0612840565b5060010190565b6040815260006128bb6040830185876126f6565b9050826020830152949350505050565b61ffff8816815260c0602082015260006128e860c0830189612535565b82810360408401526128fa8189612535565b73ffffffffffffffffffffffffffffffffffffffff88811660608601528716608085015283810360a085015290506127768185876126f6565b61ffff861681526080602082015260006129506080830187612535565b82810360408401526129638186886126f6565b9150508260608301529695505050505050565b6080815260006129896080830188612535565b828103602084015261299c8187896126f6565b905084604084015282810360608401526129b68185612535565b98975050505050505050565b8281526040602082015260006112ab6040830184612535565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a3357612a336129db565b604052919050565b600067ffffffffffffffff821115612a5557612a556129db565b50601f01601f191660200190565b6000612a76612a7184612a3b565b612a0a565b9050828152838383011115612a8a57600080fd5b6112ae836020830184612511565b600082601f830112612aa957600080fd5b6112ae83835160208501612a63565b600060208284031215612aca57600080fd5b815167ffffffffffffffff811115612ae157600080fd5b612aed84828501612a98565b949350505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015612b355780818660140360031b1b83161692505b505092915050565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b601f821115612bbe576000816000526020600020601f850160051c81016020861015612b9f5750805b601f850160051c820191505b81811015611f3457828155600101612bab565b505050565b815167ffffffffffffffff811115612bdd57612bdd6129db565b612bf181612beb84546127a8565b84612b76565b602080601f831160018114612c445760008415612c0e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611f34565b600085815260208120601f198616915b82811015612c7357888601518255948401946001909101908401612c54565b5085821015612caf57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612cd26040830185612535565b60208382038185015260008554612ce8816127a8565b80855260018281168015612d035760018114612d3b57612d69565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416868801528583151560051b8801019450612d69565b896000528560002060005b84811015612d61578154898201890152908301908701612d46565b880187019550505b50929998505050505050505050565b600061ffff808816835280871660208401525084604083015260806060830152612da66080830184866126f6565b979650505050505050565b60008060408385031215612dc457600080fd5b823567ffffffffffffffff811115612ddb57600080fd5b8301601f81018513612dec57600080fd5b8035612dfa612a7182612a3b565b818152866020838501011115612e0f57600080fd5b8160208401602083013760006020928201830152969401359450505050565b80820180821115612e4157612e41612840565b92915050565b61ffff8916815260c060208201526000612e6460c083018a612535565b8281036040840152612e7781898b6126f6565b73ffffffffffffffffffffffffffffffffffffffff88811660608601528716608085015283810360a08501529050612eb08185876126f6565b9b9a5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006112ab6040830184612535565b600060208284031215612f0057600080fd5b81516112ae816122d1565b600067ffffffffffffffff821115612f2557612f256129db565b5060051b60200190565b600082601f830112612f4057600080fd5b81516020612f50612a7183612f0b565b8083825260208201915060208460051b870101935086841115612f7257600080fd5b602086015b84811015612f8e5780518352918301918301612f77565b509695505050505050565b600082601f830112612faa57600080fd5b81516020612fba612a7183612f0b565b82815260059290921b84018101918181019086841115612fd957600080fd5b8286015b84811015612f8e57805167ffffffffffffffff811115612ffd5760008081fd5b8701603f8101891361300f5760008081fd5b613020898683015160408401612a63565b845250918301918301612fdd565b600082601f83011261303f57600080fd5b8151602061304f612a7183612f0b565b82815260059290921b8401810191818101908684111561306e57600080fd5b8286015b84811015612f8e57805167ffffffffffffffff8111156130925760008081fd5b6130a08986838b0101612a98565b845250918301918301613072565b805160ff8116811461222957600080fd5b600080600080600060a086880312156130d757600080fd5b855167ffffffffffffffff808211156130ef57600080fd5b818801915088601f83011261310357600080fd5b81516020613113612a7183612f0b565b82815260059290921b8401810191818101908c84111561313257600080fd5b948201945b8386101561315957855161314a81612249565b82529482019490820190613137565b918b015191995090935050508082111561317257600080fd5b61317e89838a01612f2f565b9550604088015191508082111561319457600080fd5b6131a089838a01612f99565b945060608801519150808211156131b657600080fd5b506131c38882890161302e565b9250506131d2608087016130ae565b90509295509295909350565b81810381811115612e4157612e4161284056fe657865637574652875696e7431362c62797465732c62797465732c61646472657373297365745472757374656452656d6f7465416464726573732875696e7431362c627974657329736574436f6e6669672875696e7431362c75696e7431362c75696e743235362c6279746573297265747279457865637574652875696e743235362c75696e7431362c62797465732c62797465732c616464726573732c75696e7432353629a26469706673582212207640aa01bf0fe0091e9a77ed4591e13da364297a13e8537adede0f95d517267664736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x346C CODESIZE SUB DUP1 PUSH2 0x346C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SSTORE DUP1 PUSH2 0x3E CALLER PUSH2 0x8F JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH2 0x54 DUP2 PUSH2 0xE1 JUMP JUMPDEST PUSH1 0x2 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 0x7D DUP3 PUSH2 0xE1 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH2 0x15A JUMP JUMPDEST PUSH1 0x1 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 0x108 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 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x13E DUP2 PUSH2 0x10B JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x14F DUP2 PUSH2 0x10B JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x32CD PUSH2 0x19F PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4E0 ADD MSTORE DUP2 DUP2 PUSH2 0x5E8 ADD MSTORE DUP2 DUP2 PUSH2 0x700 ADD MSTORE DUP2 DUP2 PUSH2 0x1067 ADD MSTORE DUP2 DUP2 PUSH2 0x1227 ADD MSTORE DUP2 DUP2 PUSH2 0x164B ADD MSTORE PUSH2 0x1A3F ADD MSTORE PUSH2 0x32CD PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xE1 JUMPI DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0xE0354D7F EQ PUSH2 0x518 JUMPI DUP1 PUSH4 0xE2222B0E EQ PUSH2 0x545 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xCD4D1C64 EQ PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xBB JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x7DBB533C EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30FD54A0 GT PUSH2 0x14E JUMPI DUP1 PUSH4 0x4F4BA0F4 GT PUSH2 0x128 JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0x5F6716F7 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30FD54A0 EQ PUSH2 0x29D JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0x3FD9D7EF EQ PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x21B4EAA1 GT PUSH2 0x17F JUMPI DUP1 PUSH4 0x21B4EAA1 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x2DBBEC08 EQ PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x1183A3B2 EQ PUSH2 0x1E8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x578 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x1E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x65C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x22DF JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x2374 JUMP JUMPDEST PUSH2 0x7B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x298 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x855 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x2B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x97B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0xD11 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x2E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2442 JUMP JUMPDEST PUSH2 0xD59 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x24D5 JUMP JUMPDEST PUSH2 0x11DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x2561 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH2 0x3A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x12B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2574 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x134F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x47C CALLDATASIZE PUSH1 0x4 PUSH2 0x258D JUMP JUMPDEST PUSH2 0x1395 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x40F SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x4C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH2 0x15ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40F PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x553 CALLDATASIZE PUSH1 0x4 PUSH2 0x264F JUMP JUMPDEST PUSH2 0x16B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x564 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x573 CALLDATASIZE PUSH1 0x4 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x1AD8 JUMP JUMPDEST PUSH2 0x5B6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657453656E6456657273696F6E2875696E7431362900000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7E0DB1700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x664 PUSH2 0x1C5A JUMP JUMPDEST PUSH2 0x66D DUP2 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x40A7BB10 DUP10 ADDRESS DUP11 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x763 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x77F 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 0x7A3 SWAP2 SWAP1 PUSH2 0x2784 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x7F0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D61784461696C794C696D69742875696E7431362C75696E7432353629 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x893 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x72656D6F76655472757374656452656D6F74652875696E743136290000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x8B1 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 SUB PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2074727573746564 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2072656D6F7465206E6F7420666F756E64000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x949 SWAP2 PUSH2 0x21C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP3 AND SWAP1 PUSH32 0x6D5075C81D4D9E75BEC6052F4E44F58F8A8CF1327544ADDBBF015FB06F83BD37 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x983 PUSH2 0x1C5A JUMP JUMPDEST PUSH2 0x98B PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0x994 DUP9 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xA0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206E617469766520616D6F756E74000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 SUB PUSH2 0xA81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0xB03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A206E6F2073746F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564207061796C6F616400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB20 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP2 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0xBAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20657865637574696F6E20706172616D73000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP1 PUSH32 0x22FE8E8EAD80AD0961D77107E806BA9BCF9CA3B175A9D446145646D39C36AB96 SWAP1 PUSH2 0xC08 SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP9 PUSH32 0x2DC7AC5D08FD553243FC66B5F15262E3F3013E27ABF660D7BB3FCCF133322F6E DUP4 PUSH1 0x40 MLOAD PUSH2 0xC42 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xCA4 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 0xCA9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xCFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST POP POP POP PUSH2 0xD07 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD4F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E706175736528290000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xD57 PUSH2 0x1D67 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xD61 PUSH2 0x1DE4 JUMP JUMPDEST PUSH2 0xD82 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31F2 PUSH1 0x23 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT PUSH2 0xDF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2076616C75652063 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E6E6F74206265207A65726F00000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 SUB PUSH2 0xE6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xE8D SWAP1 PUSH2 0x27A8 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 0xEB9 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF06 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEDB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF06 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 0xEE9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xFAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2064657374696E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74696F6E20636861696E206973206E6F742061207472757374656420736F7572 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFEA 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 PUSH2 0x1E4F SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD PUSH2 0xFFB SWAP1 PUSH2 0x286F JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP8 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x101A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x28A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH32 0xC580310000000000000000000000000000000000000000000000000000000000 DUP3 MSTORE SWAP2 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 CALLVALUE SWAP1 PUSH2 0x10AA SWAP1 DUP14 SWAP1 DUP9 SWAP1 DUP8 SWAP1 CALLER SWAP1 DUP13 SWAP1 DUP16 SWAP1 DUP16 SWAP1 PUSH1 0x4 ADD PUSH2 0x28CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x10D5 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1193 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1103 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 0x1108 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP10 DUP3 DUP9 DUP9 CALLVALUE PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1122 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2933 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x8 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 KECCAK256 SSTORE PUSH2 0xFFFF DUP12 AND SWAP1 DUP5 SWAP1 PUSH32 0x6D16111647E03D7F1CB2B71C02EAFE3355B97DFC17AF3DE1B94EF39C8A9EE4D9 SWAP1 PUSH2 0x1185 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 CALLVALUE SWAP1 DUP10 SWAP1 PUSH2 0x2976 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH2 0x11D2 JUMP JUMPDEST DUP9 PUSH2 0xFFFF AND PUSH32 0x95A4FCF4EB9BE6F5CF2EB6830782870F8907BCCC513F765388A9CB2DAE2F3259 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11C9 SWAP3 SWAP2 SWAP1 PUSH2 0x29C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF5ECBDBC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP6 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1283 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 0x12AB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AB8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x12CE SWAP1 PUSH2 0x27A8 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 0x12FA SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1347 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x131C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1347 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 0x132A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x138D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061757365282900000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xD57 PUSH2 0x1F3C JUMP JUMPDEST PUSH2 0x13B6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3215 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0x1430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20636861696E4964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D757374206E6F74206265207A65726F000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1445 PUSH2 0x143D DUP3 DUP5 PUSH2 0x2AF5 JUMP JUMPDEST PUSH1 0x60 SHR PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x14 DUP2 EQ PUSH2 0x14BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61646472657373206D757374206265203230206279746573206C6F6E67000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x14D9 SWAP1 PUSH2 0x27A8 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 0x1505 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1552 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1527 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1552 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 0x1535 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 DUP3 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x156E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B3D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x1599 SWAP1 DUP3 PUSH2 0x2BC3 JUMP JUMPDEST POP PUSH2 0xFFFF DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH32 0xE84E609C32D71C678382F7C65CC051810A41DCAF660E55C9F8FCFFEBA4621A32 SWAP2 PUSH2 0x15DF SWAP2 DUP6 SWAP2 SWAP1 PUSH2 0x2CBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x160E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x323A PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCBED8B9C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1688 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2D78 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x16BE PUSH2 0x1DE4 JUMP JUMPDEST PUSH2 0x16C6 PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0x16E7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3260 PUSH1 0x38 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1705 SWAP1 PUSH2 0x27A8 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 0x1731 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x177E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1753 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x177E 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 0x1761 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2064657374696E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74696F6E20636861696E206973206E6F742061207472757374656420736F7572 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x18A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A206E6F2073746F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564207061796C6F616400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 SWAP1 SUB PUSH2 0x191B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1929 DUP9 DUP11 ADD DUP11 PUSH2 0x2DB1 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x1936 DUP11 DUP3 PUSH2 0x1E4F JUMP JUMPDEST DUP2 DUP11 DUP11 DUP11 DUP11 DUP11 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1952 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x19DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20657865637574696F6E20706172616D73000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD DUP12 SWAP1 PUSH32 0x2DC7AC5D08FD553243FC66B5F15262E3F3013E27ABF660D7BB3FCCF133322F6E SWAP1 PUSH2 0x1A20 SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND PUSH4 0xC5803100 PUSH2 0x1A6E CALLVALUE DUP8 PUSH2 0x2E2E JUMP JUMPDEST DUP13 DUP7 DUP14 DUP14 CALLER DUP13 DUP16 DUP16 PUSH1 0x40 MLOAD DUP11 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A99 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2E47 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP PUSH2 0xD07 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1AE0 PUSH2 0x1C5A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B69 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1B72 DUP2 PUSH2 0x1FAB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x1BCD SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x2EBF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BEA 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 0x1C0E SWAP2 SWAP1 PUSH2 0x2EEE JUMP JUMPDEST PUSH2 0x1B72 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6163636573732064656E69656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B72 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0x1D60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1D6F PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1E69 SWAP2 SWAP1 PUSH2 0x30BF JUMP JUMPDEST POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP3 MLOAD DUP5 MLOAD EQ DUP1 ISZERO PUSH2 0x1E84 JUMPI POP DUP2 MLOAD DUP5 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x1E91 JUMPI POP DUP1 MLOAD DUP5 MLOAD EQ JUMPDEST PUSH2 0x1F29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2070726F706F7361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C2066756E6374696F6E20696E666F726D6174696F6E206172697479206D6973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6D61746368000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1F34 DUP7 DUP6 MLOAD PUSH2 0x208C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F44 PUSH2 0x1DE4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1DBA CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x3 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD TIMESTAMP SWAP4 SWAP3 SWAP1 PUSH3 0x15180 PUSH2 0x20CF DUP6 DUP8 PUSH2 0x31DE JUMP JUMPDEST GT ISZERO PUSH2 0x20F3 JUMPI PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP6 SWAP3 POP PUSH2 0x2100 JUMP JUMPDEST PUSH2 0x20FD DUP7 DUP5 PUSH2 0x2E2E JUMP JUMPDEST SWAP3 POP JUMPDEST DUP2 DUP4 GT ISZERO PUSH2 0x2150 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565646564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST DUP5 DUP2 SUB PUSH2 0x219F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D756C7469706C65206272696467696E6720696E20612070726F706F73616C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE PUSH1 0x6 SWAP1 MSTORE SWAP4 SWAP1 SWAP4 KECCAK256 SSTORE POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x21D5 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x21E5 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 0x1B72 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21FF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP3 PUSH2 0x2217 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1B72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x227D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12AE DUP2 PUSH2 0x2249 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x229A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x22CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1B72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2301 DUP8 PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x231E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x232A DUP11 DUP4 DUP12 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH2 0x233F DUP3 PUSH2 0x22D1 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2362 DUP10 DUP3 DUP11 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2390 DUP4 PUSH2 0x2217 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x23BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0x23C5 DUP2 PUSH2 0x2249 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP7 POP PUSH2 0x23DA PUSH1 0x40 DUP11 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x23F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2403 DUP13 DUP4 DUP14 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x241C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2429 DUP12 DUP3 DUP13 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP5 SWAP8 SWAP5 SWAP6 PUSH1 0xA0 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x245B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2464 DUP8 PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2481 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x248D DUP11 DUP4 DUP12 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x24A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24B3 DUP10 DUP3 DUP11 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0x24C7 DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP5 PUSH2 0x2217 JUMP JUMPDEST SWAP3 POP PUSH2 0x2501 PUSH1 0x20 DUP6 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x252C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2514 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x254D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2511 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x12AE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25AB DUP5 PUSH2 0x2217 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25D3 DUP7 DUP3 DUP8 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x2217 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x263E DUP9 DUP3 DUP10 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x266B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x267B PUSH1 0x20 DUP11 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A4 DUP13 DUP4 DUP14 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x26BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26CA DUP12 DUP3 DUP13 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH2 0x26DE DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x275B PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2776 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27BC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27F5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2819 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x282C DUP2 DUP7 DUP9 PUSH2 0x26F6 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x28A0 JUMPI PUSH2 0x28A0 PUSH2 0x2840 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x28BB PUSH1 0x40 DUP4 ADD DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x28E8 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x28FA DUP2 DUP10 PUSH2 0x2535 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2776 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2950 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2963 DUP2 DUP7 DUP9 PUSH2 0x26F6 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2989 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x299C DUP2 DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x29B6 DUP2 DUP6 PUSH2 0x2535 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x12AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2A33 JUMPI PUSH2 0x2A33 PUSH2 0x29DB JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A55 JUMPI PUSH2 0x2A55 PUSH2 0x29DB JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A76 PUSH2 0x2A71 DUP5 PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x2A0A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2A8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2511 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2A63 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AED DUP5 DUP3 DUP6 ADD PUSH2 0x2A98 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x14 DUP6 LT ISZERO PUSH2 0x2B35 JUMPI DUP1 DUP2 DUP7 PUSH1 0x14 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2BBE JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2B9F JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F34 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2BAB JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BDD JUMPI PUSH2 0x2BDD PUSH2 0x29DB JUMP JUMPDEST PUSH2 0x2BF1 DUP2 PUSH2 0x2BEB DUP5 SLOAD PUSH2 0x27A8 JUMP JUMPDEST DUP5 PUSH2 0x2B76 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2C44 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2C0E JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1F34 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C73 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x2C54 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x2CAF JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2CD2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP3 SUB DUP2 DUP6 ADD MSTORE PUSH1 0x0 DUP6 SLOAD PUSH2 0x2CE8 DUP2 PUSH2 0x27A8 JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x2D03 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2D3B JUMPI PUSH2 0x2D69 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP5 AND DUP7 DUP9 ADD MSTORE DUP6 DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP9 ADD ADD SWAP5 POP PUSH2 0x2D69 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP6 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2D61 JUMPI DUP2 SLOAD DUP10 DUP3 ADD DUP10 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP8 ADD PUSH2 0x2D46 JUMP JUMPDEST DUP9 ADD DUP8 ADD SWAP6 POP POP JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2DA6 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x26F6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x2DEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2DFA PUSH2 0x2A71 DUP3 PUSH2 0x2A3B JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 SWAP3 DUP3 ADD DUP4 ADD MSTORE SWAP7 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2E41 JUMPI PUSH2 0x2E41 PUSH2 0x2840 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2E64 PUSH1 0xC0 DUP4 ADD DUP11 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2E77 DUP2 DUP10 DUP12 PUSH2 0x26F6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2EB0 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x12AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x12AE DUP2 PUSH2 0x22D1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2F25 JUMPI PUSH2 0x2F25 PUSH2 0x29DB JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x2F50 PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2F72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2F77 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x2FBA PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2FD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x300F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3020 DUP10 DUP7 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD PUSH2 0x2A63 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2FDD JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x303F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x304F PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x306E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3092 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x30A0 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x2A98 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x3072 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x30EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3103 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x3113 PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP13 DUP5 GT ISZERO PUSH2 0x3132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x3159 JUMPI DUP6 MLOAD PUSH2 0x314A DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH2 0x3137 JUMP JUMPDEST SWAP2 DUP12 ADD MLOAD SWAP2 SWAP10 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH2 0x3172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x317E DUP10 DUP4 DUP11 ADD PUSH2 0x2F2F JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31A0 DUP10 DUP4 DUP11 ADD PUSH2 0x2F99 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x31B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31C3 DUP9 DUP3 DUP10 ADD PUSH2 0x302E JUMP JUMPDEST SWAP3 POP POP PUSH2 0x31D2 PUSH1 0x80 DUP8 ADD PUSH2 0x30AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2E41 JUMPI PUSH2 0x2E41 PUSH2 0x2840 JUMP INVALID PUSH6 0x786563757465 0x28 PUSH22 0x696E7431362C62797465732C62797465732C61646472 PUSH6 0x737329736574 SLOAD PUSH19 0x757374656452656D6F74654164647265737328 PUSH22 0x696E7431362C627974657329736574436F6E66696728 PUSH22 0x696E7431362C75696E7431362C75696E743235362C62 PUSH26 0x746573297265747279457865637574652875696E743235362C75 PUSH10 0x6E7431362C6279746573 0x2C PUSH3 0x797465 PUSH20 0x2C616464726573732C75696E7432353629A26469 PUSH17 0x6673582212207640AA01BF0FE0091E9A77 0xED GASLIMIT SWAP2 0xE1 RETURNDATASIZE LOG3 PUSH5 0x297A13E853 PUSH27 0xDEDE0F95D517267664736F6C634300081900330000000000000000 ","sourceMap":"927:14147:29:-:0;;;2797:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1716:1:18;1821:7;:22;2921:21:29;936:32:16;719:10:19;936:18:16;:32::i;:::-;996:7:17;:15;;-1:-1:-1;;;;996:15:17;;;2007:43:26;2028:21;2007:20;:43::i;:::-;2060:20;:44;;-1:-1:-1;;;;;;2060:44:26;-1:-1:-1;;;;;2060:44:26;;;;;;;;;;2954:42:29::1;2983:11:::0;2954:20:::1;:42::i;:::-;-1:-1:-1::0;;;;;;3006:25:29::1;;::::0;927:14147;;2433:187:16;2525:6;;;-1:-1:-1;;;;;2541:17:16;;;-1:-1:-1;;;;;;2541:17:16;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;485:136:24:-;-1:-1:-1;;;;;548:22:24;;544:75;;589:23;;-1:-1:-1;;;589:23:24;;;;;;;;;;;544:75;485:136;:::o;14:151:54:-;-1:-1:-1;;;;;109:31:54;;99:42;;89:70;;155:1;152;145:12;170:452;276:6;284;337:2;325:9;316:7;312:23;308:32;305:52;;;353:1;350;343:12;305:52;385:9;379:16;404:51;449:5;404:51;:::i;:::-;524:2;509:18;;503:25;474:5;;-1:-1:-1;537:53:54;503:25;537:53;:::i;:::-;609:7;599:17;;;170:452;;;;;:::o;:::-;927:14147:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LZ_ENDPOINT_7219":{"entryPoint":null,"id":7219,"parameterSlots":0,"returnSlots":0},"@_checkOwner_4122":{"entryPoint":7258,"id":4122,"parameterSlots":0,"returnSlots":0},"@_ensureAllowed_5866":{"entryPoint":7029,"id":5866,"parameterSlots":1,"returnSlots":0},"@_isEligibleToSend_5847":{"entryPoint":8332,"id":5847,"parameterSlots":2,"returnSlots":0},"@_msgSender_4354":{"entryPoint":null,"id":4354,"parameterSlots":0,"returnSlots":1},"@_nonReentrantAfter_4341":{"entryPoint":null,"id":4341,"parameterSlots":0,"returnSlots":0},"@_nonReentrantBefore_4333":{"entryPoint":7438,"id":4333,"parameterSlots":0,"returnSlots":0},"@_pause_4271":{"entryPoint":7996,"id":4271,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_4244":{"entryPoint":7652,"id":4244,"parameterSlots":0,"returnSlots":0},"@_requirePaused_4255":{"entryPoint":8226,"id":4255,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_4179":{"entryPoint":8107,"id":4179,"parameterSlots":1,"returnSlots":0},"@_unpause_4287":{"entryPoint":7527,"id":4287,"parameterSlots":0,"returnSlots":0},"@_validateProposal_7913":{"entryPoint":7759,"id":7913,"parameterSlots":2,"returnSlots":0},"@accessControlManager_5633":{"entryPoint":null,"id":5633,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourCommandsSent_5643":{"entryPoint":null,"id":5643,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourWindowStart_5648":{"entryPoint":null,"id":5648,"parameterSlots":0,"returnSlots":0},"@chainIdToLastProposalSentTimestamp_5653":{"entryPoint":null,"id":5653,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxDailyLimit_5638":{"entryPoint":null,"id":5638,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":7361,"id":5466,"parameterSlots":1,"returnSlots":0},"@estimateFees_7328":{"entryPoint":1787,"id":7328,"parameterSlots":6,"returnSlots":2},"@execute_7480":{"entryPoint":3417,"id":7480,"parameterSlots":6,"returnSlots":0},"@fallbackWithdraw_7709":{"entryPoint":2427,"id":7709,"parameterSlots":8,"returnSlots":0},"@getConfig_7844":{"entryPoint":4573,"id":7844,"parameterSlots":3,"returnSlots":1},"@owner_4108":{"entryPoint":null,"id":4108,"parameterSlots":0,"returnSlots":1},"@pause_5721":{"entryPoint":4943,"id":5721,"parameterSlots":0,"returnSlots":0},"@paused_4232":{"entryPoint":null,"id":4232,"parameterSlots":0,"returnSlots":1},"@proposalCount_7210":{"entryPoint":null,"id":7210,"parameterSlots":0,"returnSlots":0},"@removeTrustedRemote_7358":{"entryPoint":2133,"id":7358,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_5761":{"entryPoint":null,"id":5761,"parameterSlots":0,"returnSlots":0},"@retryExecute_7605":{"entryPoint":5814,"id":7605,"parameterSlots":8,"returnSlots":0},"@setAccessControlManager_5755":{"entryPoint":1628,"id":5755,"parameterSlots":1,"returnSlots":0},"@setConfig_7803":{"entryPoint":5613,"id":7803,"parameterSlots":5,"returnSlots":0},"@setMaxDailyLimit_5709":{"entryPoint":1970,"id":5709,"parameterSlots":2,"returnSlots":0},"@setSendVersion_7820":{"entryPoint":1400,"id":7820,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_7777":{"entryPoint":5013,"id":7777,"parameterSlots":3,"returnSlots":0},"@storedExecutionHashes_7215":{"entryPoint":null,"id":7215,"parameterSlots":0,"returnSlots":0},"@transferOwnership_4159":{"entryPoint":6872,"id":4159,"parameterSlots":1,"returnSlots":0},"@trustedRemoteLookup_7224":{"entryPoint":4789,"id":7224,"parameterSlots":0,"returnSlots":0},"@unpause_5733":{"entryPoint":3345,"id":5733,"parameterSlots":0,"returnSlots":0},"abi_decode_array_bytes_dyn_fromMemory":{"entryPoint":12334,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_string_dyn_fromMemory":{"entryPoint":12185,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint256_dyn_fromMemory":{"entryPoint":12079,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_bytes_fromMemory":{"entryPoint":10851,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":8840,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_bytes_fromMemory":{"entryPoint":10904,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":8811,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_uint256":{"entryPoint":9118,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory":{"entryPoint":12479,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":12014,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":10936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptrt_uint256":{"entryPoint":11697,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16":{"entryPoint":8750,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":9613,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_boolt_bytes_calldata_ptr":{"entryPoint":8927,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_address":{"entryPoint":9282,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":9429,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":9696,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_uint256":{"entryPoint":9076,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":9588,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_addresst_uint256":{"entryPoint":9807,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":10116,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_uint16":{"entryPoint":8727,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint8_fromMemory":{"entryPoint":12462,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":9525,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":9974,"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":11069,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"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":11967,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"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_calldata_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":10407,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9569,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10614,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_storage__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11455,"id":null,"parameterSlots":3,"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_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_bytes_calldata_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10017,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":10235,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11847,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":10547,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10443,"id":null,"parameterSlots":8,"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":null,"id":null,"parameterSlots":5,"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":11640,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10690,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":10762,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_address_dyn":{"entryPoint":12043,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":10811,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11822,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":12766,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_bytes_storage":{"entryPoint":11126,"id":null,"parameterSlots":3,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20":{"entryPoint":10997,"id":null,"parameterSlots":2,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":11203,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":9489,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":10152,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":10351,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":10304,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":10715,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":8777,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":8913,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:36864:54","nodeType":"YulBlock","src":"0:36864:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"62:111:54","nodeType":"YulBlock","src":"62:111:54","statements":[{"nativeSrc":"72:29:54","nodeType":"YulAssignment","src":"72:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"94:6:54","nodeType":"YulIdentifier","src":"94:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"81:12:54","nodeType":"YulIdentifier","src":"81:12:54"},"nativeSrc":"81:20:54","nodeType":"YulFunctionCall","src":"81:20:54"},"variableNames":[{"name":"value","nativeSrc":"72:5:54","nodeType":"YulIdentifier","src":"72:5:54"}]},{"body":{"nativeSrc":"151:16:54","nodeType":"YulBlock","src":"151:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"160:1:54","nodeType":"YulLiteral","src":"160:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"163:1:54","nodeType":"YulLiteral","src":"163:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"153:6:54","nodeType":"YulIdentifier","src":"153:6:54"},"nativeSrc":"153:12:54","nodeType":"YulFunctionCall","src":"153:12:54"},"nativeSrc":"153:12:54","nodeType":"YulExpressionStatement","src":"153:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"123:5:54","nodeType":"YulIdentifier","src":"123:5:54"},{"arguments":[{"name":"value","nativeSrc":"134:5:54","nodeType":"YulIdentifier","src":"134:5:54"},{"kind":"number","nativeSrc":"141:6:54","nodeType":"YulLiteral","src":"141:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"130:3:54","nodeType":"YulIdentifier","src":"130:3:54"},"nativeSrc":"130:18:54","nodeType":"YulFunctionCall","src":"130:18:54"}],"functionName":{"name":"eq","nativeSrc":"120:2:54","nodeType":"YulIdentifier","src":"120:2:54"},"nativeSrc":"120:29:54","nodeType":"YulFunctionCall","src":"120:29:54"}],"functionName":{"name":"iszero","nativeSrc":"113:6:54","nodeType":"YulIdentifier","src":"113:6:54"},"nativeSrc":"113:37:54","nodeType":"YulFunctionCall","src":"113:37:54"},"nativeSrc":"110:57:54","nodeType":"YulIf","src":"110:57:54"}]},"name":"abi_decode_uint16","nativeSrc":"14:159:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"41:6:54","nodeType":"YulTypedName","src":"41:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"52:5:54","nodeType":"YulTypedName","src":"52:5:54","type":""}],"src":"14:159:54"},{"body":{"nativeSrc":"247:115:54","nodeType":"YulBlock","src":"247:115:54","statements":[{"body":{"nativeSrc":"293:16:54","nodeType":"YulBlock","src":"293:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"302:1:54","nodeType":"YulLiteral","src":"302:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"305:1:54","nodeType":"YulLiteral","src":"305:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"295:6:54","nodeType":"YulIdentifier","src":"295:6:54"},"nativeSrc":"295:12:54","nodeType":"YulFunctionCall","src":"295:12:54"},"nativeSrc":"295:12:54","nodeType":"YulExpressionStatement","src":"295:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"268:7:54","nodeType":"YulIdentifier","src":"268:7:54"},{"name":"headStart","nativeSrc":"277:9:54","nodeType":"YulIdentifier","src":"277:9:54"}],"functionName":{"name":"sub","nativeSrc":"264:3:54","nodeType":"YulIdentifier","src":"264:3:54"},"nativeSrc":"264:23:54","nodeType":"YulFunctionCall","src":"264:23:54"},{"kind":"number","nativeSrc":"289:2:54","nodeType":"YulLiteral","src":"289:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"260:3:54","nodeType":"YulIdentifier","src":"260:3:54"},"nativeSrc":"260:32:54","nodeType":"YulFunctionCall","src":"260:32:54"},"nativeSrc":"257:52:54","nodeType":"YulIf","src":"257:52:54"},{"nativeSrc":"318:38:54","nodeType":"YulAssignment","src":"318:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"346:9:54","nodeType":"YulIdentifier","src":"346:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"328:17:54","nodeType":"YulIdentifier","src":"328:17:54"},"nativeSrc":"328:28:54","nodeType":"YulFunctionCall","src":"328:28:54"},"variableNames":[{"name":"value0","nativeSrc":"318:6:54","nodeType":"YulIdentifier","src":"318:6:54"}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"178:184:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"213:9:54","nodeType":"YulTypedName","src":"213:9:54","type":""},{"name":"dataEnd","nativeSrc":"224:7:54","nodeType":"YulTypedName","src":"224:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"236:6:54","nodeType":"YulTypedName","src":"236:6:54","type":""}],"src":"178:184:54"},{"body":{"nativeSrc":"412:109:54","nodeType":"YulBlock","src":"412:109:54","statements":[{"body":{"nativeSrc":"499:16:54","nodeType":"YulBlock","src":"499:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"508:1:54","nodeType":"YulLiteral","src":"508:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"511:1:54","nodeType":"YulLiteral","src":"511:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"501:6:54","nodeType":"YulIdentifier","src":"501:6:54"},"nativeSrc":"501:12:54","nodeType":"YulFunctionCall","src":"501:12:54"},"nativeSrc":"501:12:54","nodeType":"YulExpressionStatement","src":"501:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"435:5:54","nodeType":"YulIdentifier","src":"435:5:54"},{"arguments":[{"name":"value","nativeSrc":"446:5:54","nodeType":"YulIdentifier","src":"446:5:54"},{"kind":"number","nativeSrc":"453:42:54","nodeType":"YulLiteral","src":"453:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"442:3:54","nodeType":"YulIdentifier","src":"442:3:54"},"nativeSrc":"442:54:54","nodeType":"YulFunctionCall","src":"442:54:54"}],"functionName":{"name":"eq","nativeSrc":"432:2:54","nodeType":"YulIdentifier","src":"432:2:54"},"nativeSrc":"432:65:54","nodeType":"YulFunctionCall","src":"432:65:54"}],"functionName":{"name":"iszero","nativeSrc":"425:6:54","nodeType":"YulIdentifier","src":"425:6:54"},"nativeSrc":"425:73:54","nodeType":"YulFunctionCall","src":"425:73:54"},"nativeSrc":"422:93:54","nodeType":"YulIf","src":"422:93:54"}]},"name":"validator_revert_address","nativeSrc":"367:154:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"401:5:54","nodeType":"YulTypedName","src":"401:5:54","type":""}],"src":"367:154:54"},{"body":{"nativeSrc":"596:177:54","nodeType":"YulBlock","src":"596:177:54","statements":[{"body":{"nativeSrc":"642:16:54","nodeType":"YulBlock","src":"642:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"651:1:54","nodeType":"YulLiteral","src":"651:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"654:1:54","nodeType":"YulLiteral","src":"654:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"644:6:54","nodeType":"YulIdentifier","src":"644:6:54"},"nativeSrc":"644:12:54","nodeType":"YulFunctionCall","src":"644:12:54"},"nativeSrc":"644:12:54","nodeType":"YulExpressionStatement","src":"644:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"617:7:54","nodeType":"YulIdentifier","src":"617:7:54"},{"name":"headStart","nativeSrc":"626:9:54","nodeType":"YulIdentifier","src":"626:9:54"}],"functionName":{"name":"sub","nativeSrc":"613:3:54","nodeType":"YulIdentifier","src":"613:3:54"},"nativeSrc":"613:23:54","nodeType":"YulFunctionCall","src":"613:23:54"},{"kind":"number","nativeSrc":"638:2:54","nodeType":"YulLiteral","src":"638:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"609:3:54","nodeType":"YulIdentifier","src":"609:3:54"},"nativeSrc":"609:32:54","nodeType":"YulFunctionCall","src":"609:32:54"},"nativeSrc":"606:52:54","nodeType":"YulIf","src":"606:52:54"},{"nativeSrc":"667:36:54","nodeType":"YulVariableDeclaration","src":"667:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"693:9:54","nodeType":"YulIdentifier","src":"693:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"680:12:54","nodeType":"YulIdentifier","src":"680:12:54"},"nativeSrc":"680:23:54","nodeType":"YulFunctionCall","src":"680:23:54"},"variables":[{"name":"value","nativeSrc":"671:5:54","nodeType":"YulTypedName","src":"671:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"737:5:54","nodeType":"YulIdentifier","src":"737:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"712:24:54","nodeType":"YulIdentifier","src":"712:24:54"},"nativeSrc":"712:31:54","nodeType":"YulFunctionCall","src":"712:31:54"},"nativeSrc":"712:31:54","nodeType":"YulExpressionStatement","src":"712:31:54"},{"nativeSrc":"752:15:54","nodeType":"YulAssignment","src":"752:15:54","value":{"name":"value","nativeSrc":"762:5:54","nodeType":"YulIdentifier","src":"762:5:54"},"variableNames":[{"name":"value0","nativeSrc":"752:6:54","nodeType":"YulIdentifier","src":"752:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"526:247:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"562:9:54","nodeType":"YulTypedName","src":"562:9:54","type":""},{"name":"dataEnd","nativeSrc":"573:7:54","nodeType":"YulTypedName","src":"573:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"585:6:54","nodeType":"YulTypedName","src":"585:6:54","type":""}],"src":"526:247:54"},{"body":{"nativeSrc":"879:76:54","nodeType":"YulBlock","src":"879:76:54","statements":[{"nativeSrc":"889:26:54","nodeType":"YulAssignment","src":"889:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"901:9:54","nodeType":"YulIdentifier","src":"901:9:54"},{"kind":"number","nativeSrc":"912:2:54","nodeType":"YulLiteral","src":"912:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"897:3:54","nodeType":"YulIdentifier","src":"897:3:54"},"nativeSrc":"897:18:54","nodeType":"YulFunctionCall","src":"897:18:54"},"variableNames":[{"name":"tail","nativeSrc":"889:4:54","nodeType":"YulIdentifier","src":"889:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"931:9:54","nodeType":"YulIdentifier","src":"931:9:54"},{"name":"value0","nativeSrc":"942:6:54","nodeType":"YulIdentifier","src":"942:6:54"}],"functionName":{"name":"mstore","nativeSrc":"924:6:54","nodeType":"YulIdentifier","src":"924:6:54"},"nativeSrc":"924:25:54","nodeType":"YulFunctionCall","src":"924:25:54"},"nativeSrc":"924:25:54","nodeType":"YulExpressionStatement","src":"924:25:54"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"778:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"848:9:54","nodeType":"YulTypedName","src":"848:9:54","type":""},{"name":"value0","nativeSrc":"859:6:54","nodeType":"YulTypedName","src":"859:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"870:4:54","nodeType":"YulTypedName","src":"870:4:54","type":""}],"src":"778:177:54"},{"body":{"nativeSrc":"1032:275:54","nodeType":"YulBlock","src":"1032:275:54","statements":[{"body":{"nativeSrc":"1081:16:54","nodeType":"YulBlock","src":"1081:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1090:1:54","nodeType":"YulLiteral","src":"1090:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1093:1:54","nodeType":"YulLiteral","src":"1093:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1083:6:54","nodeType":"YulIdentifier","src":"1083:6:54"},"nativeSrc":"1083:12:54","nodeType":"YulFunctionCall","src":"1083:12:54"},"nativeSrc":"1083:12:54","nodeType":"YulExpressionStatement","src":"1083:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1060:6:54","nodeType":"YulIdentifier","src":"1060:6:54"},{"kind":"number","nativeSrc":"1068:4:54","nodeType":"YulLiteral","src":"1068:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1056:3:54","nodeType":"YulIdentifier","src":"1056:3:54"},"nativeSrc":"1056:17:54","nodeType":"YulFunctionCall","src":"1056:17:54"},{"name":"end","nativeSrc":"1075:3:54","nodeType":"YulIdentifier","src":"1075:3:54"}],"functionName":{"name":"slt","nativeSrc":"1052:3:54","nodeType":"YulIdentifier","src":"1052:3:54"},"nativeSrc":"1052:27:54","nodeType":"YulFunctionCall","src":"1052:27:54"}],"functionName":{"name":"iszero","nativeSrc":"1045:6:54","nodeType":"YulIdentifier","src":"1045:6:54"},"nativeSrc":"1045:35:54","nodeType":"YulFunctionCall","src":"1045:35:54"},"nativeSrc":"1042:55:54","nodeType":"YulIf","src":"1042:55:54"},{"nativeSrc":"1106:30:54","nodeType":"YulAssignment","src":"1106:30:54","value":{"arguments":[{"name":"offset","nativeSrc":"1129:6:54","nodeType":"YulIdentifier","src":"1129:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"1116:12:54","nodeType":"YulIdentifier","src":"1116:12:54"},"nativeSrc":"1116:20:54","nodeType":"YulFunctionCall","src":"1116:20:54"},"variableNames":[{"name":"length","nativeSrc":"1106:6:54","nodeType":"YulIdentifier","src":"1106:6:54"}]},{"body":{"nativeSrc":"1179:16:54","nodeType":"YulBlock","src":"1179:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1188:1:54","nodeType":"YulLiteral","src":"1188:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1191:1:54","nodeType":"YulLiteral","src":"1191:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1181:6:54","nodeType":"YulIdentifier","src":"1181:6:54"},"nativeSrc":"1181:12:54","nodeType":"YulFunctionCall","src":"1181:12:54"},"nativeSrc":"1181:12:54","nodeType":"YulExpressionStatement","src":"1181:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1151:6:54","nodeType":"YulIdentifier","src":"1151:6:54"},{"kind":"number","nativeSrc":"1159:18:54","nodeType":"YulLiteral","src":"1159:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1148:2:54","nodeType":"YulIdentifier","src":"1148:2:54"},"nativeSrc":"1148:30:54","nodeType":"YulFunctionCall","src":"1148:30:54"},"nativeSrc":"1145:50:54","nodeType":"YulIf","src":"1145:50:54"},{"nativeSrc":"1204:29:54","nodeType":"YulAssignment","src":"1204:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"1220:6:54","nodeType":"YulIdentifier","src":"1220:6:54"},{"kind":"number","nativeSrc":"1228:4:54","nodeType":"YulLiteral","src":"1228:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1216:3:54","nodeType":"YulIdentifier","src":"1216:3:54"},"nativeSrc":"1216:17:54","nodeType":"YulFunctionCall","src":"1216:17:54"},"variableNames":[{"name":"arrayPos","nativeSrc":"1204:8:54","nodeType":"YulIdentifier","src":"1204:8:54"}]},{"body":{"nativeSrc":"1285:16:54","nodeType":"YulBlock","src":"1285:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1294:1:54","nodeType":"YulLiteral","src":"1294:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1297:1:54","nodeType":"YulLiteral","src":"1297:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1287:6:54","nodeType":"YulIdentifier","src":"1287:6:54"},"nativeSrc":"1287:12:54","nodeType":"YulFunctionCall","src":"1287:12:54"},"nativeSrc":"1287:12:54","nodeType":"YulExpressionStatement","src":"1287:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1256:6:54","nodeType":"YulIdentifier","src":"1256:6:54"},{"name":"length","nativeSrc":"1264:6:54","nodeType":"YulIdentifier","src":"1264:6:54"}],"functionName":{"name":"add","nativeSrc":"1252:3:54","nodeType":"YulIdentifier","src":"1252:3:54"},"nativeSrc":"1252:19:54","nodeType":"YulFunctionCall","src":"1252:19:54"},{"kind":"number","nativeSrc":"1273:4:54","nodeType":"YulLiteral","src":"1273:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1248:3:54","nodeType":"YulIdentifier","src":"1248:3:54"},"nativeSrc":"1248:30:54","nodeType":"YulFunctionCall","src":"1248:30:54"},{"name":"end","nativeSrc":"1280:3:54","nodeType":"YulIdentifier","src":"1280:3:54"}],"functionName":{"name":"gt","nativeSrc":"1245:2:54","nodeType":"YulIdentifier","src":"1245:2:54"},"nativeSrc":"1245:39:54","nodeType":"YulFunctionCall","src":"1245:39:54"},"nativeSrc":"1242:59:54","nodeType":"YulIf","src":"1242:59:54"}]},"name":"abi_decode_bytes_calldata","nativeSrc":"960:347:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"995:6:54","nodeType":"YulTypedName","src":"995:6:54","type":""},{"name":"end","nativeSrc":"1003:3:54","nodeType":"YulTypedName","src":"1003:3:54","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1011:8:54","nodeType":"YulTypedName","src":"1011:8:54","type":""},{"name":"length","nativeSrc":"1021:6:54","nodeType":"YulTypedName","src":"1021:6:54","type":""}],"src":"960:347:54"},{"body":{"nativeSrc":"1354:76:54","nodeType":"YulBlock","src":"1354:76:54","statements":[{"body":{"nativeSrc":"1408:16:54","nodeType":"YulBlock","src":"1408:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1417:1:54","nodeType":"YulLiteral","src":"1417:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1420:1:54","nodeType":"YulLiteral","src":"1420:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1410:6:54","nodeType":"YulIdentifier","src":"1410:6:54"},"nativeSrc":"1410:12:54","nodeType":"YulFunctionCall","src":"1410:12:54"},"nativeSrc":"1410:12:54","nodeType":"YulExpressionStatement","src":"1410:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1377:5:54","nodeType":"YulIdentifier","src":"1377:5:54"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1398:5:54","nodeType":"YulIdentifier","src":"1398:5:54"}],"functionName":{"name":"iszero","nativeSrc":"1391:6:54","nodeType":"YulIdentifier","src":"1391:6:54"},"nativeSrc":"1391:13:54","nodeType":"YulFunctionCall","src":"1391:13:54"}],"functionName":{"name":"iszero","nativeSrc":"1384:6:54","nodeType":"YulIdentifier","src":"1384:6:54"},"nativeSrc":"1384:21:54","nodeType":"YulFunctionCall","src":"1384:21:54"}],"functionName":{"name":"eq","nativeSrc":"1374:2:54","nodeType":"YulIdentifier","src":"1374:2:54"},"nativeSrc":"1374:32:54","nodeType":"YulFunctionCall","src":"1374:32:54"}],"functionName":{"name":"iszero","nativeSrc":"1367:6:54","nodeType":"YulIdentifier","src":"1367:6:54"},"nativeSrc":"1367:40:54","nodeType":"YulFunctionCall","src":"1367:40:54"},"nativeSrc":"1364:60:54","nodeType":"YulIf","src":"1364:60:54"}]},"name":"validator_revert_bool","nativeSrc":"1312:118:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1343:5:54","nodeType":"YulTypedName","src":"1343:5:54","type":""}],"src":"1312:118:54"},{"body":{"nativeSrc":"1590:764:54","nodeType":"YulBlock","src":"1590:764:54","statements":[{"body":{"nativeSrc":"1637:16:54","nodeType":"YulBlock","src":"1637:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1646:1:54","nodeType":"YulLiteral","src":"1646:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1649:1:54","nodeType":"YulLiteral","src":"1649:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1639:6:54","nodeType":"YulIdentifier","src":"1639:6:54"},"nativeSrc":"1639:12:54","nodeType":"YulFunctionCall","src":"1639:12:54"},"nativeSrc":"1639:12:54","nodeType":"YulExpressionStatement","src":"1639:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1611:7:54","nodeType":"YulIdentifier","src":"1611:7:54"},{"name":"headStart","nativeSrc":"1620:9:54","nodeType":"YulIdentifier","src":"1620:9:54"}],"functionName":{"name":"sub","nativeSrc":"1607:3:54","nodeType":"YulIdentifier","src":"1607:3:54"},"nativeSrc":"1607:23:54","nodeType":"YulFunctionCall","src":"1607:23:54"},{"kind":"number","nativeSrc":"1632:3:54","nodeType":"YulLiteral","src":"1632:3:54","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1603:3:54","nodeType":"YulIdentifier","src":"1603:3:54"},"nativeSrc":"1603:33:54","nodeType":"YulFunctionCall","src":"1603:33:54"},"nativeSrc":"1600:53:54","nodeType":"YulIf","src":"1600:53:54"},{"nativeSrc":"1662:38:54","nodeType":"YulAssignment","src":"1662:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1690:9:54","nodeType":"YulIdentifier","src":"1690:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"1672:17:54","nodeType":"YulIdentifier","src":"1672:17:54"},"nativeSrc":"1672:28:54","nodeType":"YulFunctionCall","src":"1672:28:54"},"variableNames":[{"name":"value0","nativeSrc":"1662:6:54","nodeType":"YulIdentifier","src":"1662:6:54"}]},{"nativeSrc":"1709:46:54","nodeType":"YulVariableDeclaration","src":"1709:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1740:9:54","nodeType":"YulIdentifier","src":"1740:9:54"},{"kind":"number","nativeSrc":"1751:2:54","nodeType":"YulLiteral","src":"1751:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1736:3:54","nodeType":"YulIdentifier","src":"1736:3:54"},"nativeSrc":"1736:18:54","nodeType":"YulFunctionCall","src":"1736:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1723:12:54","nodeType":"YulIdentifier","src":"1723:12:54"},"nativeSrc":"1723:32:54","nodeType":"YulFunctionCall","src":"1723:32:54"},"variables":[{"name":"offset","nativeSrc":"1713:6:54","nodeType":"YulTypedName","src":"1713:6:54","type":""}]},{"nativeSrc":"1764:28:54","nodeType":"YulVariableDeclaration","src":"1764:28:54","value":{"kind":"number","nativeSrc":"1774:18:54","nodeType":"YulLiteral","src":"1774:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1768:2:54","nodeType":"YulTypedName","src":"1768:2:54","type":""}]},{"body":{"nativeSrc":"1819:16:54","nodeType":"YulBlock","src":"1819:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1828:1:54","nodeType":"YulLiteral","src":"1828:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1831:1:54","nodeType":"YulLiteral","src":"1831:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1821:6:54","nodeType":"YulIdentifier","src":"1821:6:54"},"nativeSrc":"1821:12:54","nodeType":"YulFunctionCall","src":"1821:12:54"},"nativeSrc":"1821:12:54","nodeType":"YulExpressionStatement","src":"1821:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1807:6:54","nodeType":"YulIdentifier","src":"1807:6:54"},{"name":"_1","nativeSrc":"1815:2:54","nodeType":"YulIdentifier","src":"1815:2:54"}],"functionName":{"name":"gt","nativeSrc":"1804:2:54","nodeType":"YulIdentifier","src":"1804:2:54"},"nativeSrc":"1804:14:54","nodeType":"YulFunctionCall","src":"1804:14:54"},"nativeSrc":"1801:34:54","nodeType":"YulIf","src":"1801:34:54"},{"nativeSrc":"1844:84:54","nodeType":"YulVariableDeclaration","src":"1844:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1900:9:54","nodeType":"YulIdentifier","src":"1900:9:54"},{"name":"offset","nativeSrc":"1911:6:54","nodeType":"YulIdentifier","src":"1911:6:54"}],"functionName":{"name":"add","nativeSrc":"1896:3:54","nodeType":"YulIdentifier","src":"1896:3:54"},"nativeSrc":"1896:22:54","nodeType":"YulFunctionCall","src":"1896:22:54"},{"name":"dataEnd","nativeSrc":"1920:7:54","nodeType":"YulIdentifier","src":"1920:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"1870:25:54","nodeType":"YulIdentifier","src":"1870:25:54"},"nativeSrc":"1870:58:54","nodeType":"YulFunctionCall","src":"1870:58:54"},"variables":[{"name":"value1_1","nativeSrc":"1848:8:54","nodeType":"YulTypedName","src":"1848:8:54","type":""},{"name":"value2_1","nativeSrc":"1858:8:54","nodeType":"YulTypedName","src":"1858:8:54","type":""}]},{"nativeSrc":"1937:18:54","nodeType":"YulAssignment","src":"1937:18:54","value":{"name":"value1_1","nativeSrc":"1947:8:54","nodeType":"YulIdentifier","src":"1947:8:54"},"variableNames":[{"name":"value1","nativeSrc":"1937:6:54","nodeType":"YulIdentifier","src":"1937:6:54"}]},{"nativeSrc":"1964:18:54","nodeType":"YulAssignment","src":"1964:18:54","value":{"name":"value2_1","nativeSrc":"1974:8:54","nodeType":"YulIdentifier","src":"1974:8:54"},"variableNames":[{"name":"value2","nativeSrc":"1964:6:54","nodeType":"YulIdentifier","src":"1964:6:54"}]},{"nativeSrc":"1991:45:54","nodeType":"YulVariableDeclaration","src":"1991:45:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2021:9:54","nodeType":"YulIdentifier","src":"2021:9:54"},{"kind":"number","nativeSrc":"2032:2:54","nodeType":"YulLiteral","src":"2032:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2017:3:54","nodeType":"YulIdentifier","src":"2017:3:54"},"nativeSrc":"2017:18:54","nodeType":"YulFunctionCall","src":"2017:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"2004:12:54","nodeType":"YulIdentifier","src":"2004:12:54"},"nativeSrc":"2004:32:54","nodeType":"YulFunctionCall","src":"2004:32:54"},"variables":[{"name":"value","nativeSrc":"1995:5:54","nodeType":"YulTypedName","src":"1995:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2067:5:54","nodeType":"YulIdentifier","src":"2067:5:54"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"2045:21:54","nodeType":"YulIdentifier","src":"2045:21:54"},"nativeSrc":"2045:28:54","nodeType":"YulFunctionCall","src":"2045:28:54"},"nativeSrc":"2045:28:54","nodeType":"YulExpressionStatement","src":"2045:28:54"},{"nativeSrc":"2082:15:54","nodeType":"YulAssignment","src":"2082:15:54","value":{"name":"value","nativeSrc":"2092:5:54","nodeType":"YulIdentifier","src":"2092:5:54"},"variableNames":[{"name":"value3","nativeSrc":"2082:6:54","nodeType":"YulIdentifier","src":"2082:6:54"}]},{"nativeSrc":"2106:48:54","nodeType":"YulVariableDeclaration","src":"2106:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2139:9:54","nodeType":"YulIdentifier","src":"2139:9:54"},{"kind":"number","nativeSrc":"2150:2:54","nodeType":"YulLiteral","src":"2150:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2135:3:54","nodeType":"YulIdentifier","src":"2135:3:54"},"nativeSrc":"2135:18:54","nodeType":"YulFunctionCall","src":"2135:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"2122:12:54","nodeType":"YulIdentifier","src":"2122:12:54"},"nativeSrc":"2122:32:54","nodeType":"YulFunctionCall","src":"2122:32:54"},"variables":[{"name":"offset_1","nativeSrc":"2110:8:54","nodeType":"YulTypedName","src":"2110:8:54","type":""}]},{"body":{"nativeSrc":"2183:16:54","nodeType":"YulBlock","src":"2183:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2192:1:54","nodeType":"YulLiteral","src":"2192:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2195:1:54","nodeType":"YulLiteral","src":"2195:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2185:6:54","nodeType":"YulIdentifier","src":"2185:6:54"},"nativeSrc":"2185:12:54","nodeType":"YulFunctionCall","src":"2185:12:54"},"nativeSrc":"2185:12:54","nodeType":"YulExpressionStatement","src":"2185:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"2169:8:54","nodeType":"YulIdentifier","src":"2169:8:54"},{"name":"_1","nativeSrc":"2179:2:54","nodeType":"YulIdentifier","src":"2179:2:54"}],"functionName":{"name":"gt","nativeSrc":"2166:2:54","nodeType":"YulIdentifier","src":"2166:2:54"},"nativeSrc":"2166:16:54","nodeType":"YulFunctionCall","src":"2166:16:54"},"nativeSrc":"2163:36:54","nodeType":"YulIf","src":"2163:36:54"},{"nativeSrc":"2208:86:54","nodeType":"YulVariableDeclaration","src":"2208:86:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2264:9:54","nodeType":"YulIdentifier","src":"2264:9:54"},{"name":"offset_1","nativeSrc":"2275:8:54","nodeType":"YulIdentifier","src":"2275:8:54"}],"functionName":{"name":"add","nativeSrc":"2260:3:54","nodeType":"YulIdentifier","src":"2260:3:54"},"nativeSrc":"2260:24:54","nodeType":"YulFunctionCall","src":"2260:24:54"},{"name":"dataEnd","nativeSrc":"2286:7:54","nodeType":"YulIdentifier","src":"2286:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"2234:25:54","nodeType":"YulIdentifier","src":"2234:25:54"},"nativeSrc":"2234:60:54","nodeType":"YulFunctionCall","src":"2234:60:54"},"variables":[{"name":"value4_1","nativeSrc":"2212:8:54","nodeType":"YulTypedName","src":"2212:8:54","type":""},{"name":"value5_1","nativeSrc":"2222:8:54","nodeType":"YulTypedName","src":"2222:8:54","type":""}]},{"nativeSrc":"2303:18:54","nodeType":"YulAssignment","src":"2303:18:54","value":{"name":"value4_1","nativeSrc":"2313:8:54","nodeType":"YulIdentifier","src":"2313:8:54"},"variableNames":[{"name":"value4","nativeSrc":"2303:6:54","nodeType":"YulIdentifier","src":"2303:6:54"}]},{"nativeSrc":"2330:18:54","nodeType":"YulAssignment","src":"2330:18:54","value":{"name":"value5_1","nativeSrc":"2340:8:54","nodeType":"YulIdentifier","src":"2340:8:54"},"variableNames":[{"name":"value5","nativeSrc":"2330:6:54","nodeType":"YulIdentifier","src":"2330:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_boolt_bytes_calldata_ptr","nativeSrc":"1435:919:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1516:9:54","nodeType":"YulTypedName","src":"1516:9:54","type":""},{"name":"dataEnd","nativeSrc":"1527:7:54","nodeType":"YulTypedName","src":"1527:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1539:6:54","nodeType":"YulTypedName","src":"1539:6:54","type":""},{"name":"value1","nativeSrc":"1547:6:54","nodeType":"YulTypedName","src":"1547:6:54","type":""},{"name":"value2","nativeSrc":"1555:6:54","nodeType":"YulTypedName","src":"1555:6:54","type":""},{"name":"value3","nativeSrc":"1563:6:54","nodeType":"YulTypedName","src":"1563:6:54","type":""},{"name":"value4","nativeSrc":"1571:6:54","nodeType":"YulTypedName","src":"1571:6:54","type":""},{"name":"value5","nativeSrc":"1579:6:54","nodeType":"YulTypedName","src":"1579:6:54","type":""}],"src":"1435:919:54"},{"body":{"nativeSrc":"2488:119:54","nodeType":"YulBlock","src":"2488:119:54","statements":[{"nativeSrc":"2498:26:54","nodeType":"YulAssignment","src":"2498:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2510:9:54","nodeType":"YulIdentifier","src":"2510:9:54"},{"kind":"number","nativeSrc":"2521:2:54","nodeType":"YulLiteral","src":"2521:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2506:3:54","nodeType":"YulIdentifier","src":"2506:3:54"},"nativeSrc":"2506:18:54","nodeType":"YulFunctionCall","src":"2506:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2498:4:54","nodeType":"YulIdentifier","src":"2498:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2540:9:54","nodeType":"YulIdentifier","src":"2540:9:54"},{"name":"value0","nativeSrc":"2551:6:54","nodeType":"YulIdentifier","src":"2551:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2533:6:54","nodeType":"YulIdentifier","src":"2533:6:54"},"nativeSrc":"2533:25:54","nodeType":"YulFunctionCall","src":"2533:25:54"},"nativeSrc":"2533:25:54","nodeType":"YulExpressionStatement","src":"2533:25:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2578:9:54","nodeType":"YulIdentifier","src":"2578:9:54"},{"kind":"number","nativeSrc":"2589:2:54","nodeType":"YulLiteral","src":"2589:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2574:3:54","nodeType":"YulIdentifier","src":"2574:3:54"},"nativeSrc":"2574:18:54","nodeType":"YulFunctionCall","src":"2574:18:54"},{"name":"value1","nativeSrc":"2594:6:54","nodeType":"YulIdentifier","src":"2594:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2567:6:54","nodeType":"YulIdentifier","src":"2567:6:54"},"nativeSrc":"2567:34:54","nodeType":"YulFunctionCall","src":"2567:34:54"},"nativeSrc":"2567:34:54","nodeType":"YulExpressionStatement","src":"2567:34:54"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"2359:248:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2449:9:54","nodeType":"YulTypedName","src":"2449:9:54","type":""},{"name":"value1","nativeSrc":"2460:6:54","nodeType":"YulTypedName","src":"2460:6:54","type":""},{"name":"value0","nativeSrc":"2468:6:54","nodeType":"YulTypedName","src":"2468:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2479:4:54","nodeType":"YulTypedName","src":"2479:4:54","type":""}],"src":"2359:248:54"},{"body":{"nativeSrc":"2698:166:54","nodeType":"YulBlock","src":"2698:166:54","statements":[{"body":{"nativeSrc":"2744:16:54","nodeType":"YulBlock","src":"2744:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2753:1:54","nodeType":"YulLiteral","src":"2753:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2756:1:54","nodeType":"YulLiteral","src":"2756:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2746:6:54","nodeType":"YulIdentifier","src":"2746:6:54"},"nativeSrc":"2746:12:54","nodeType":"YulFunctionCall","src":"2746:12:54"},"nativeSrc":"2746:12:54","nodeType":"YulExpressionStatement","src":"2746:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2719:7:54","nodeType":"YulIdentifier","src":"2719:7:54"},{"name":"headStart","nativeSrc":"2728:9:54","nodeType":"YulIdentifier","src":"2728:9:54"}],"functionName":{"name":"sub","nativeSrc":"2715:3:54","nodeType":"YulIdentifier","src":"2715:3:54"},"nativeSrc":"2715:23:54","nodeType":"YulFunctionCall","src":"2715:23:54"},{"kind":"number","nativeSrc":"2740:2:54","nodeType":"YulLiteral","src":"2740:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2711:3:54","nodeType":"YulIdentifier","src":"2711:3:54"},"nativeSrc":"2711:32:54","nodeType":"YulFunctionCall","src":"2711:32:54"},"nativeSrc":"2708:52:54","nodeType":"YulIf","src":"2708:52:54"},{"nativeSrc":"2769:38:54","nodeType":"YulAssignment","src":"2769:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2797:9:54","nodeType":"YulIdentifier","src":"2797:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"2779:17:54","nodeType":"YulIdentifier","src":"2779:17:54"},"nativeSrc":"2779:28:54","nodeType":"YulFunctionCall","src":"2779:28:54"},"variableNames":[{"name":"value0","nativeSrc":"2769:6:54","nodeType":"YulIdentifier","src":"2769:6:54"}]},{"nativeSrc":"2816:42:54","nodeType":"YulAssignment","src":"2816:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2843:9:54","nodeType":"YulIdentifier","src":"2843:9:54"},{"kind":"number","nativeSrc":"2854:2:54","nodeType":"YulLiteral","src":"2854:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2839:3:54","nodeType":"YulIdentifier","src":"2839:3:54"},"nativeSrc":"2839:18:54","nodeType":"YulFunctionCall","src":"2839:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"2826:12:54","nodeType":"YulIdentifier","src":"2826:12:54"},"nativeSrc":"2826:32:54","nodeType":"YulFunctionCall","src":"2826:32:54"},"variableNames":[{"name":"value1","nativeSrc":"2816:6:54","nodeType":"YulIdentifier","src":"2816:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint256","nativeSrc":"2612:252:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2656:9:54","nodeType":"YulTypedName","src":"2656:9:54","type":""},{"name":"dataEnd","nativeSrc":"2667:7:54","nodeType":"YulTypedName","src":"2667:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2679:6:54","nodeType":"YulTypedName","src":"2679:6:54","type":""},{"name":"value1","nativeSrc":"2687:6:54","nodeType":"YulTypedName","src":"2687:6:54","type":""}],"src":"2612:252:54"},{"body":{"nativeSrc":"3061:871:54","nodeType":"YulBlock","src":"3061:871:54","statements":[{"body":{"nativeSrc":"3108:16:54","nodeType":"YulBlock","src":"3108:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3117:1:54","nodeType":"YulLiteral","src":"3117:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3120:1:54","nodeType":"YulLiteral","src":"3120:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3110:6:54","nodeType":"YulIdentifier","src":"3110:6:54"},"nativeSrc":"3110:12:54","nodeType":"YulFunctionCall","src":"3110:12:54"},"nativeSrc":"3110:12:54","nodeType":"YulExpressionStatement","src":"3110:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3082:7:54","nodeType":"YulIdentifier","src":"3082:7:54"},{"name":"headStart","nativeSrc":"3091:9:54","nodeType":"YulIdentifier","src":"3091:9:54"}],"functionName":{"name":"sub","nativeSrc":"3078:3:54","nodeType":"YulIdentifier","src":"3078:3:54"},"nativeSrc":"3078:23:54","nodeType":"YulFunctionCall","src":"3078:23:54"},{"kind":"number","nativeSrc":"3103:3:54","nodeType":"YulLiteral","src":"3103:3:54","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"3074:3:54","nodeType":"YulIdentifier","src":"3074:3:54"},"nativeSrc":"3074:33:54","nodeType":"YulFunctionCall","src":"3074:33:54"},"nativeSrc":"3071:53:54","nodeType":"YulIf","src":"3071:53:54"},{"nativeSrc":"3133:36:54","nodeType":"YulVariableDeclaration","src":"3133:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3159:9:54","nodeType":"YulIdentifier","src":"3159:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"3146:12:54","nodeType":"YulIdentifier","src":"3146:12:54"},"nativeSrc":"3146:23:54","nodeType":"YulFunctionCall","src":"3146:23:54"},"variables":[{"name":"value","nativeSrc":"3137:5:54","nodeType":"YulTypedName","src":"3137:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3203:5:54","nodeType":"YulIdentifier","src":"3203:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"3178:24:54","nodeType":"YulIdentifier","src":"3178:24:54"},"nativeSrc":"3178:31:54","nodeType":"YulFunctionCall","src":"3178:31:54"},"nativeSrc":"3178:31:54","nodeType":"YulExpressionStatement","src":"3178:31:54"},{"nativeSrc":"3218:15:54","nodeType":"YulAssignment","src":"3218:15:54","value":{"name":"value","nativeSrc":"3228:5:54","nodeType":"YulIdentifier","src":"3228:5:54"},"variableNames":[{"name":"value0","nativeSrc":"3218:6:54","nodeType":"YulIdentifier","src":"3218:6:54"}]},{"nativeSrc":"3242:42:54","nodeType":"YulAssignment","src":"3242:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3269:9:54","nodeType":"YulIdentifier","src":"3269:9:54"},{"kind":"number","nativeSrc":"3280:2:54","nodeType":"YulLiteral","src":"3280:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3265:3:54","nodeType":"YulIdentifier","src":"3265:3:54"},"nativeSrc":"3265:18:54","nodeType":"YulFunctionCall","src":"3265:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"3252:12:54","nodeType":"YulIdentifier","src":"3252:12:54"},"nativeSrc":"3252:32:54","nodeType":"YulFunctionCall","src":"3252:32:54"},"variableNames":[{"name":"value1","nativeSrc":"3242:6:54","nodeType":"YulIdentifier","src":"3242:6:54"}]},{"nativeSrc":"3293:47:54","nodeType":"YulAssignment","src":"3293:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3325:9:54","nodeType":"YulIdentifier","src":"3325:9:54"},{"kind":"number","nativeSrc":"3336:2:54","nodeType":"YulLiteral","src":"3336:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3321:3:54","nodeType":"YulIdentifier","src":"3321:3:54"},"nativeSrc":"3321:18:54","nodeType":"YulFunctionCall","src":"3321:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"3303:17:54","nodeType":"YulIdentifier","src":"3303:17:54"},"nativeSrc":"3303:37:54","nodeType":"YulFunctionCall","src":"3303:37:54"},"variableNames":[{"name":"value2","nativeSrc":"3293:6:54","nodeType":"YulIdentifier","src":"3293:6:54"}]},{"nativeSrc":"3349:46:54","nodeType":"YulVariableDeclaration","src":"3349:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3380:9:54","nodeType":"YulIdentifier","src":"3380:9:54"},{"kind":"number","nativeSrc":"3391:2:54","nodeType":"YulLiteral","src":"3391:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3376:3:54","nodeType":"YulIdentifier","src":"3376:3:54"},"nativeSrc":"3376:18:54","nodeType":"YulFunctionCall","src":"3376:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"3363:12:54","nodeType":"YulIdentifier","src":"3363:12:54"},"nativeSrc":"3363:32:54","nodeType":"YulFunctionCall","src":"3363:32:54"},"variables":[{"name":"offset","nativeSrc":"3353:6:54","nodeType":"YulTypedName","src":"3353:6:54","type":""}]},{"nativeSrc":"3404:28:54","nodeType":"YulVariableDeclaration","src":"3404:28:54","value":{"kind":"number","nativeSrc":"3414:18:54","nodeType":"YulLiteral","src":"3414:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3408:2:54","nodeType":"YulTypedName","src":"3408:2:54","type":""}]},{"body":{"nativeSrc":"3459:16:54","nodeType":"YulBlock","src":"3459:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3468:1:54","nodeType":"YulLiteral","src":"3468:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3471:1:54","nodeType":"YulLiteral","src":"3471:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3461:6:54","nodeType":"YulIdentifier","src":"3461:6:54"},"nativeSrc":"3461:12:54","nodeType":"YulFunctionCall","src":"3461:12:54"},"nativeSrc":"3461:12:54","nodeType":"YulExpressionStatement","src":"3461:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3447:6:54","nodeType":"YulIdentifier","src":"3447:6:54"},{"name":"_1","nativeSrc":"3455:2:54","nodeType":"YulIdentifier","src":"3455:2:54"}],"functionName":{"name":"gt","nativeSrc":"3444:2:54","nodeType":"YulIdentifier","src":"3444:2:54"},"nativeSrc":"3444:14:54","nodeType":"YulFunctionCall","src":"3444:14:54"},"nativeSrc":"3441:34:54","nodeType":"YulIf","src":"3441:34:54"},{"nativeSrc":"3484:84:54","nodeType":"YulVariableDeclaration","src":"3484:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3540:9:54","nodeType":"YulIdentifier","src":"3540:9:54"},{"name":"offset","nativeSrc":"3551:6:54","nodeType":"YulIdentifier","src":"3551:6:54"}],"functionName":{"name":"add","nativeSrc":"3536:3:54","nodeType":"YulIdentifier","src":"3536:3:54"},"nativeSrc":"3536:22:54","nodeType":"YulFunctionCall","src":"3536:22:54"},{"name":"dataEnd","nativeSrc":"3560:7:54","nodeType":"YulIdentifier","src":"3560:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3510:25:54","nodeType":"YulIdentifier","src":"3510:25:54"},"nativeSrc":"3510:58:54","nodeType":"YulFunctionCall","src":"3510:58:54"},"variables":[{"name":"value3_1","nativeSrc":"3488:8:54","nodeType":"YulTypedName","src":"3488:8:54","type":""},{"name":"value4_1","nativeSrc":"3498:8:54","nodeType":"YulTypedName","src":"3498:8:54","type":""}]},{"nativeSrc":"3577:18:54","nodeType":"YulAssignment","src":"3577:18:54","value":{"name":"value3_1","nativeSrc":"3587:8:54","nodeType":"YulIdentifier","src":"3587:8:54"},"variableNames":[{"name":"value3","nativeSrc":"3577:6:54","nodeType":"YulIdentifier","src":"3577:6:54"}]},{"nativeSrc":"3604:18:54","nodeType":"YulAssignment","src":"3604:18:54","value":{"name":"value4_1","nativeSrc":"3614:8:54","nodeType":"YulIdentifier","src":"3614:8:54"},"variableNames":[{"name":"value4","nativeSrc":"3604:6:54","nodeType":"YulIdentifier","src":"3604:6:54"}]},{"nativeSrc":"3631:49:54","nodeType":"YulVariableDeclaration","src":"3631:49:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3664:9:54","nodeType":"YulIdentifier","src":"3664:9:54"},{"kind":"number","nativeSrc":"3675:3:54","nodeType":"YulLiteral","src":"3675:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3660:3:54","nodeType":"YulIdentifier","src":"3660:3:54"},"nativeSrc":"3660:19:54","nodeType":"YulFunctionCall","src":"3660:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"3647:12:54","nodeType":"YulIdentifier","src":"3647:12:54"},"nativeSrc":"3647:33:54","nodeType":"YulFunctionCall","src":"3647:33:54"},"variables":[{"name":"offset_1","nativeSrc":"3635:8:54","nodeType":"YulTypedName","src":"3635:8:54","type":""}]},{"body":{"nativeSrc":"3709:16:54","nodeType":"YulBlock","src":"3709:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3718:1:54","nodeType":"YulLiteral","src":"3718:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3721:1:54","nodeType":"YulLiteral","src":"3721:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3711:6:54","nodeType":"YulIdentifier","src":"3711:6:54"},"nativeSrc":"3711:12:54","nodeType":"YulFunctionCall","src":"3711:12:54"},"nativeSrc":"3711:12:54","nodeType":"YulExpressionStatement","src":"3711:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3695:8:54","nodeType":"YulIdentifier","src":"3695:8:54"},{"name":"_1","nativeSrc":"3705:2:54","nodeType":"YulIdentifier","src":"3705:2:54"}],"functionName":{"name":"gt","nativeSrc":"3692:2:54","nodeType":"YulIdentifier","src":"3692:2:54"},"nativeSrc":"3692:16:54","nodeType":"YulFunctionCall","src":"3692:16:54"},"nativeSrc":"3689:36:54","nodeType":"YulIf","src":"3689:36:54"},{"nativeSrc":"3734:86:54","nodeType":"YulVariableDeclaration","src":"3734:86:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3790:9:54","nodeType":"YulIdentifier","src":"3790:9:54"},{"name":"offset_1","nativeSrc":"3801:8:54","nodeType":"YulIdentifier","src":"3801:8:54"}],"functionName":{"name":"add","nativeSrc":"3786:3:54","nodeType":"YulIdentifier","src":"3786:3:54"},"nativeSrc":"3786:24:54","nodeType":"YulFunctionCall","src":"3786:24:54"},{"name":"dataEnd","nativeSrc":"3812:7:54","nodeType":"YulIdentifier","src":"3812:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"3760:25:54","nodeType":"YulIdentifier","src":"3760:25:54"},"nativeSrc":"3760:60:54","nodeType":"YulFunctionCall","src":"3760:60:54"},"variables":[{"name":"value5_1","nativeSrc":"3738:8:54","nodeType":"YulTypedName","src":"3738:8:54","type":""},{"name":"value6_1","nativeSrc":"3748:8:54","nodeType":"YulTypedName","src":"3748:8:54","type":""}]},{"nativeSrc":"3829:18:54","nodeType":"YulAssignment","src":"3829:18:54","value":{"name":"value5_1","nativeSrc":"3839:8:54","nodeType":"YulIdentifier","src":"3839:8:54"},"variableNames":[{"name":"value5","nativeSrc":"3829:6:54","nodeType":"YulIdentifier","src":"3829:6:54"}]},{"nativeSrc":"3856:18:54","nodeType":"YulAssignment","src":"3856:18:54","value":{"name":"value6_1","nativeSrc":"3866:8:54","nodeType":"YulIdentifier","src":"3866:8:54"},"variableNames":[{"name":"value6","nativeSrc":"3856:6:54","nodeType":"YulIdentifier","src":"3856:6:54"}]},{"nativeSrc":"3883:43:54","nodeType":"YulAssignment","src":"3883:43:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3910:9:54","nodeType":"YulIdentifier","src":"3910:9:54"},{"kind":"number","nativeSrc":"3921:3:54","nodeType":"YulLiteral","src":"3921:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3906:3:54","nodeType":"YulIdentifier","src":"3906:3:54"},"nativeSrc":"3906:19:54","nodeType":"YulFunctionCall","src":"3906:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"3893:12:54","nodeType":"YulIdentifier","src":"3893:12:54"},"nativeSrc":"3893:33:54","nodeType":"YulFunctionCall","src":"3893:33:54"},"variableNames":[{"name":"value7","nativeSrc":"3883:6:54","nodeType":"YulIdentifier","src":"3883:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_uint256","nativeSrc":"2869:1063:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2971:9:54","nodeType":"YulTypedName","src":"2971:9:54","type":""},{"name":"dataEnd","nativeSrc":"2982:7:54","nodeType":"YulTypedName","src":"2982:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2994:6:54","nodeType":"YulTypedName","src":"2994:6:54","type":""},{"name":"value1","nativeSrc":"3002:6:54","nodeType":"YulTypedName","src":"3002:6:54","type":""},{"name":"value2","nativeSrc":"3010:6:54","nodeType":"YulTypedName","src":"3010:6:54","type":""},{"name":"value3","nativeSrc":"3018:6:54","nodeType":"YulTypedName","src":"3018:6:54","type":""},{"name":"value4","nativeSrc":"3026:6:54","nodeType":"YulTypedName","src":"3026:6:54","type":""},{"name":"value5","nativeSrc":"3034:6:54","nodeType":"YulTypedName","src":"3034:6:54","type":""},{"name":"value6","nativeSrc":"3042:6:54","nodeType":"YulTypedName","src":"3042:6:54","type":""},{"name":"value7","nativeSrc":"3050:6:54","nodeType":"YulTypedName","src":"3050:6:54","type":""}],"src":"2869:1063:54"},{"body":{"nativeSrc":"4095:767:54","nodeType":"YulBlock","src":"4095:767:54","statements":[{"body":{"nativeSrc":"4142:16:54","nodeType":"YulBlock","src":"4142:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4151:1:54","nodeType":"YulLiteral","src":"4151:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4154:1:54","nodeType":"YulLiteral","src":"4154:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4144:6:54","nodeType":"YulIdentifier","src":"4144:6:54"},"nativeSrc":"4144:12:54","nodeType":"YulFunctionCall","src":"4144:12:54"},"nativeSrc":"4144:12:54","nodeType":"YulExpressionStatement","src":"4144:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4116:7:54","nodeType":"YulIdentifier","src":"4116:7:54"},{"name":"headStart","nativeSrc":"4125:9:54","nodeType":"YulIdentifier","src":"4125:9:54"}],"functionName":{"name":"sub","nativeSrc":"4112:3:54","nodeType":"YulIdentifier","src":"4112:3:54"},"nativeSrc":"4112:23:54","nodeType":"YulFunctionCall","src":"4112:23:54"},{"kind":"number","nativeSrc":"4137:3:54","nodeType":"YulLiteral","src":"4137:3:54","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"4108:3:54","nodeType":"YulIdentifier","src":"4108:3:54"},"nativeSrc":"4108:33:54","nodeType":"YulFunctionCall","src":"4108:33:54"},"nativeSrc":"4105:53:54","nodeType":"YulIf","src":"4105:53:54"},{"nativeSrc":"4167:38:54","nodeType":"YulAssignment","src":"4167:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4195:9:54","nodeType":"YulIdentifier","src":"4195:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"4177:17:54","nodeType":"YulIdentifier","src":"4177:17:54"},"nativeSrc":"4177:28:54","nodeType":"YulFunctionCall","src":"4177:28:54"},"variableNames":[{"name":"value0","nativeSrc":"4167:6:54","nodeType":"YulIdentifier","src":"4167:6:54"}]},{"nativeSrc":"4214:46:54","nodeType":"YulVariableDeclaration","src":"4214:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4245:9:54","nodeType":"YulIdentifier","src":"4245:9:54"},{"kind":"number","nativeSrc":"4256:2:54","nodeType":"YulLiteral","src":"4256:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4241:3:54","nodeType":"YulIdentifier","src":"4241:3:54"},"nativeSrc":"4241:18:54","nodeType":"YulFunctionCall","src":"4241:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"4228:12:54","nodeType":"YulIdentifier","src":"4228:12:54"},"nativeSrc":"4228:32:54","nodeType":"YulFunctionCall","src":"4228:32:54"},"variables":[{"name":"offset","nativeSrc":"4218:6:54","nodeType":"YulTypedName","src":"4218:6:54","type":""}]},{"nativeSrc":"4269:28:54","nodeType":"YulVariableDeclaration","src":"4269:28:54","value":{"kind":"number","nativeSrc":"4279:18:54","nodeType":"YulLiteral","src":"4279:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"4273:2:54","nodeType":"YulTypedName","src":"4273:2:54","type":""}]},{"body":{"nativeSrc":"4324:16:54","nodeType":"YulBlock","src":"4324:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4333:1:54","nodeType":"YulLiteral","src":"4333:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4336:1:54","nodeType":"YulLiteral","src":"4336:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4326:6:54","nodeType":"YulIdentifier","src":"4326:6:54"},"nativeSrc":"4326:12:54","nodeType":"YulFunctionCall","src":"4326:12:54"},"nativeSrc":"4326:12:54","nodeType":"YulExpressionStatement","src":"4326:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4312:6:54","nodeType":"YulIdentifier","src":"4312:6:54"},{"name":"_1","nativeSrc":"4320:2:54","nodeType":"YulIdentifier","src":"4320:2:54"}],"functionName":{"name":"gt","nativeSrc":"4309:2:54","nodeType":"YulIdentifier","src":"4309:2:54"},"nativeSrc":"4309:14:54","nodeType":"YulFunctionCall","src":"4309:14:54"},"nativeSrc":"4306:34:54","nodeType":"YulIf","src":"4306:34:54"},{"nativeSrc":"4349:84:54","nodeType":"YulVariableDeclaration","src":"4349:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4405:9:54","nodeType":"YulIdentifier","src":"4405:9:54"},{"name":"offset","nativeSrc":"4416:6:54","nodeType":"YulIdentifier","src":"4416:6:54"}],"functionName":{"name":"add","nativeSrc":"4401:3:54","nodeType":"YulIdentifier","src":"4401:3:54"},"nativeSrc":"4401:22:54","nodeType":"YulFunctionCall","src":"4401:22:54"},{"name":"dataEnd","nativeSrc":"4425:7:54","nodeType":"YulIdentifier","src":"4425:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"4375:25:54","nodeType":"YulIdentifier","src":"4375:25:54"},"nativeSrc":"4375:58:54","nodeType":"YulFunctionCall","src":"4375:58:54"},"variables":[{"name":"value1_1","nativeSrc":"4353:8:54","nodeType":"YulTypedName","src":"4353:8:54","type":""},{"name":"value2_1","nativeSrc":"4363:8:54","nodeType":"YulTypedName","src":"4363:8:54","type":""}]},{"nativeSrc":"4442:18:54","nodeType":"YulAssignment","src":"4442:18:54","value":{"name":"value1_1","nativeSrc":"4452:8:54","nodeType":"YulIdentifier","src":"4452:8:54"},"variableNames":[{"name":"value1","nativeSrc":"4442:6:54","nodeType":"YulIdentifier","src":"4442:6:54"}]},{"nativeSrc":"4469:18:54","nodeType":"YulAssignment","src":"4469:18:54","value":{"name":"value2_1","nativeSrc":"4479:8:54","nodeType":"YulIdentifier","src":"4479:8:54"},"variableNames":[{"name":"value2","nativeSrc":"4469:6:54","nodeType":"YulIdentifier","src":"4469:6:54"}]},{"nativeSrc":"4496:48:54","nodeType":"YulVariableDeclaration","src":"4496:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4529:9:54","nodeType":"YulIdentifier","src":"4529:9:54"},{"kind":"number","nativeSrc":"4540:2:54","nodeType":"YulLiteral","src":"4540:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4525:3:54","nodeType":"YulIdentifier","src":"4525:3:54"},"nativeSrc":"4525:18:54","nodeType":"YulFunctionCall","src":"4525:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"4512:12:54","nodeType":"YulIdentifier","src":"4512:12:54"},"nativeSrc":"4512:32:54","nodeType":"YulFunctionCall","src":"4512:32:54"},"variables":[{"name":"offset_1","nativeSrc":"4500:8:54","nodeType":"YulTypedName","src":"4500:8:54","type":""}]},{"body":{"nativeSrc":"4573:16:54","nodeType":"YulBlock","src":"4573:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4582:1:54","nodeType":"YulLiteral","src":"4582:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4585:1:54","nodeType":"YulLiteral","src":"4585:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4575:6:54","nodeType":"YulIdentifier","src":"4575:6:54"},"nativeSrc":"4575:12:54","nodeType":"YulFunctionCall","src":"4575:12:54"},"nativeSrc":"4575:12:54","nodeType":"YulExpressionStatement","src":"4575:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"4559:8:54","nodeType":"YulIdentifier","src":"4559:8:54"},{"name":"_1","nativeSrc":"4569:2:54","nodeType":"YulIdentifier","src":"4569:2:54"}],"functionName":{"name":"gt","nativeSrc":"4556:2:54","nodeType":"YulIdentifier","src":"4556:2:54"},"nativeSrc":"4556:16:54","nodeType":"YulFunctionCall","src":"4556:16:54"},"nativeSrc":"4553:36:54","nodeType":"YulIf","src":"4553:36:54"},{"nativeSrc":"4598:86:54","nodeType":"YulVariableDeclaration","src":"4598:86:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4654:9:54","nodeType":"YulIdentifier","src":"4654:9:54"},{"name":"offset_1","nativeSrc":"4665:8:54","nodeType":"YulIdentifier","src":"4665:8:54"}],"functionName":{"name":"add","nativeSrc":"4650:3:54","nodeType":"YulIdentifier","src":"4650:3:54"},"nativeSrc":"4650:24:54","nodeType":"YulFunctionCall","src":"4650:24:54"},{"name":"dataEnd","nativeSrc":"4676:7:54","nodeType":"YulIdentifier","src":"4676:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"4624:25:54","nodeType":"YulIdentifier","src":"4624:25:54"},"nativeSrc":"4624:60:54","nodeType":"YulFunctionCall","src":"4624:60:54"},"variables":[{"name":"value3_1","nativeSrc":"4602:8:54","nodeType":"YulTypedName","src":"4602:8:54","type":""},{"name":"value4_1","nativeSrc":"4612:8:54","nodeType":"YulTypedName","src":"4612:8:54","type":""}]},{"nativeSrc":"4693:18:54","nodeType":"YulAssignment","src":"4693:18:54","value":{"name":"value3_1","nativeSrc":"4703:8:54","nodeType":"YulIdentifier","src":"4703:8:54"},"variableNames":[{"name":"value3","nativeSrc":"4693:6:54","nodeType":"YulIdentifier","src":"4693:6:54"}]},{"nativeSrc":"4720:18:54","nodeType":"YulAssignment","src":"4720:18:54","value":{"name":"value4_1","nativeSrc":"4730:8:54","nodeType":"YulIdentifier","src":"4730:8:54"},"variableNames":[{"name":"value4","nativeSrc":"4720:6:54","nodeType":"YulIdentifier","src":"4720:6:54"}]},{"nativeSrc":"4747:45:54","nodeType":"YulVariableDeclaration","src":"4747:45:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4777:9:54","nodeType":"YulIdentifier","src":"4777:9:54"},{"kind":"number","nativeSrc":"4788:2:54","nodeType":"YulLiteral","src":"4788:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4773:3:54","nodeType":"YulIdentifier","src":"4773:3:54"},"nativeSrc":"4773:18:54","nodeType":"YulFunctionCall","src":"4773:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"4760:12:54","nodeType":"YulIdentifier","src":"4760:12:54"},"nativeSrc":"4760:32:54","nodeType":"YulFunctionCall","src":"4760:32:54"},"variables":[{"name":"value","nativeSrc":"4751:5:54","nodeType":"YulTypedName","src":"4751:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4826:5:54","nodeType":"YulIdentifier","src":"4826:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"4801:24:54","nodeType":"YulIdentifier","src":"4801:24:54"},"nativeSrc":"4801:31:54","nodeType":"YulFunctionCall","src":"4801:31:54"},"nativeSrc":"4801:31:54","nodeType":"YulExpressionStatement","src":"4801:31:54"},{"nativeSrc":"4841:15:54","nodeType":"YulAssignment","src":"4841:15:54","value":{"name":"value","nativeSrc":"4851:5:54","nodeType":"YulIdentifier","src":"4851:5:54"},"variableNames":[{"name":"value5","nativeSrc":"4841:6:54","nodeType":"YulIdentifier","src":"4841:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_address","nativeSrc":"3937:925:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4021:9:54","nodeType":"YulTypedName","src":"4021:9:54","type":""},{"name":"dataEnd","nativeSrc":"4032:7:54","nodeType":"YulTypedName","src":"4032:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4044:6:54","nodeType":"YulTypedName","src":"4044:6:54","type":""},{"name":"value1","nativeSrc":"4052:6:54","nodeType":"YulTypedName","src":"4052:6:54","type":""},{"name":"value2","nativeSrc":"4060:6:54","nodeType":"YulTypedName","src":"4060:6:54","type":""},{"name":"value3","nativeSrc":"4068:6:54","nodeType":"YulTypedName","src":"4068:6:54","type":""},{"name":"value4","nativeSrc":"4076:6:54","nodeType":"YulTypedName","src":"4076:6:54","type":""},{"name":"value5","nativeSrc":"4084:6:54","nodeType":"YulTypedName","src":"4084:6:54","type":""}],"src":"3937:925:54"},{"body":{"nativeSrc":"4962:92:54","nodeType":"YulBlock","src":"4962:92:54","statements":[{"nativeSrc":"4972:26:54","nodeType":"YulAssignment","src":"4972:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4984:9:54","nodeType":"YulIdentifier","src":"4984:9:54"},{"kind":"number","nativeSrc":"4995:2:54","nodeType":"YulLiteral","src":"4995:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4980:3:54","nodeType":"YulIdentifier","src":"4980:3:54"},"nativeSrc":"4980:18:54","nodeType":"YulFunctionCall","src":"4980:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4972:4:54","nodeType":"YulIdentifier","src":"4972:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5014:9:54","nodeType":"YulIdentifier","src":"5014:9:54"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5039:6:54","nodeType":"YulIdentifier","src":"5039:6:54"}],"functionName":{"name":"iszero","nativeSrc":"5032:6:54","nodeType":"YulIdentifier","src":"5032:6:54"},"nativeSrc":"5032:14:54","nodeType":"YulFunctionCall","src":"5032:14:54"}],"functionName":{"name":"iszero","nativeSrc":"5025:6:54","nodeType":"YulIdentifier","src":"5025:6:54"},"nativeSrc":"5025:22:54","nodeType":"YulFunctionCall","src":"5025:22:54"}],"functionName":{"name":"mstore","nativeSrc":"5007:6:54","nodeType":"YulIdentifier","src":"5007:6:54"},"nativeSrc":"5007:41:54","nodeType":"YulFunctionCall","src":"5007:41:54"},"nativeSrc":"5007:41:54","nodeType":"YulExpressionStatement","src":"5007:41:54"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4867:187:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4931:9:54","nodeType":"YulTypedName","src":"4931:9:54","type":""},{"name":"value0","nativeSrc":"4942:6:54","nodeType":"YulTypedName","src":"4942:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4953:4:54","nodeType":"YulTypedName","src":"4953:4:54","type":""}],"src":"4867:187:54"},{"body":{"nativeSrc":"5161:222:54","nodeType":"YulBlock","src":"5161:222:54","statements":[{"body":{"nativeSrc":"5207:16:54","nodeType":"YulBlock","src":"5207:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5216:1:54","nodeType":"YulLiteral","src":"5216:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5219:1:54","nodeType":"YulLiteral","src":"5219:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5209:6:54","nodeType":"YulIdentifier","src":"5209:6:54"},"nativeSrc":"5209:12:54","nodeType":"YulFunctionCall","src":"5209:12:54"},"nativeSrc":"5209:12:54","nodeType":"YulExpressionStatement","src":"5209:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5182:7:54","nodeType":"YulIdentifier","src":"5182:7:54"},{"name":"headStart","nativeSrc":"5191:9:54","nodeType":"YulIdentifier","src":"5191:9:54"}],"functionName":{"name":"sub","nativeSrc":"5178:3:54","nodeType":"YulIdentifier","src":"5178:3:54"},"nativeSrc":"5178:23:54","nodeType":"YulFunctionCall","src":"5178:23:54"},{"kind":"number","nativeSrc":"5203:2:54","nodeType":"YulLiteral","src":"5203:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5174:3:54","nodeType":"YulIdentifier","src":"5174:3:54"},"nativeSrc":"5174:32:54","nodeType":"YulFunctionCall","src":"5174:32:54"},"nativeSrc":"5171:52:54","nodeType":"YulIf","src":"5171:52:54"},{"nativeSrc":"5232:38:54","nodeType":"YulAssignment","src":"5232:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5260:9:54","nodeType":"YulIdentifier","src":"5260:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"5242:17:54","nodeType":"YulIdentifier","src":"5242:17:54"},"nativeSrc":"5242:28:54","nodeType":"YulFunctionCall","src":"5242:28:54"},"variableNames":[{"name":"value0","nativeSrc":"5232:6:54","nodeType":"YulIdentifier","src":"5232:6:54"}]},{"nativeSrc":"5279:47:54","nodeType":"YulAssignment","src":"5279:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5311:9:54","nodeType":"YulIdentifier","src":"5311:9:54"},{"kind":"number","nativeSrc":"5322:2:54","nodeType":"YulLiteral","src":"5322:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5307:3:54","nodeType":"YulIdentifier","src":"5307:3:54"},"nativeSrc":"5307:18:54","nodeType":"YulFunctionCall","src":"5307:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"5289:17:54","nodeType":"YulIdentifier","src":"5289:17:54"},"nativeSrc":"5289:37:54","nodeType":"YulFunctionCall","src":"5289:37:54"},"variableNames":[{"name":"value1","nativeSrc":"5279:6:54","nodeType":"YulIdentifier","src":"5279:6:54"}]},{"nativeSrc":"5335:42:54","nodeType":"YulAssignment","src":"5335:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5362:9:54","nodeType":"YulIdentifier","src":"5362:9:54"},{"kind":"number","nativeSrc":"5373:2:54","nodeType":"YulLiteral","src":"5373:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5358:3:54","nodeType":"YulIdentifier","src":"5358:3:54"},"nativeSrc":"5358:18:54","nodeType":"YulFunctionCall","src":"5358:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"5345:12:54","nodeType":"YulIdentifier","src":"5345:12:54"},"nativeSrc":"5345:32:54","nodeType":"YulFunctionCall","src":"5345:32:54"},"variableNames":[{"name":"value2","nativeSrc":"5335:6:54","nodeType":"YulIdentifier","src":"5335:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nativeSrc":"5059:324:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5111:9:54","nodeType":"YulTypedName","src":"5111:9:54","type":""},{"name":"dataEnd","nativeSrc":"5122:7:54","nodeType":"YulTypedName","src":"5122:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5134:6:54","nodeType":"YulTypedName","src":"5134:6:54","type":""},{"name":"value1","nativeSrc":"5142:6:54","nodeType":"YulTypedName","src":"5142:6:54","type":""},{"name":"value2","nativeSrc":"5150:6:54","nodeType":"YulTypedName","src":"5150:6:54","type":""}],"src":"5059:324:54"},{"body":{"nativeSrc":"5454:184:54","nodeType":"YulBlock","src":"5454:184:54","statements":[{"nativeSrc":"5464:10:54","nodeType":"YulVariableDeclaration","src":"5464:10:54","value":{"kind":"number","nativeSrc":"5473:1:54","nodeType":"YulLiteral","src":"5473:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5468:1:54","nodeType":"YulTypedName","src":"5468:1:54","type":""}]},{"body":{"nativeSrc":"5533:63:54","nodeType":"YulBlock","src":"5533:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5558:3:54","nodeType":"YulIdentifier","src":"5558:3:54"},{"name":"i","nativeSrc":"5563:1:54","nodeType":"YulIdentifier","src":"5563:1:54"}],"functionName":{"name":"add","nativeSrc":"5554:3:54","nodeType":"YulIdentifier","src":"5554:3:54"},"nativeSrc":"5554:11:54","nodeType":"YulFunctionCall","src":"5554:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5577:3:54","nodeType":"YulIdentifier","src":"5577:3:54"},{"name":"i","nativeSrc":"5582:1:54","nodeType":"YulIdentifier","src":"5582:1:54"}],"functionName":{"name":"add","nativeSrc":"5573:3:54","nodeType":"YulIdentifier","src":"5573:3:54"},"nativeSrc":"5573:11:54","nodeType":"YulFunctionCall","src":"5573:11:54"}],"functionName":{"name":"mload","nativeSrc":"5567:5:54","nodeType":"YulIdentifier","src":"5567:5:54"},"nativeSrc":"5567:18:54","nodeType":"YulFunctionCall","src":"5567:18:54"}],"functionName":{"name":"mstore","nativeSrc":"5547:6:54","nodeType":"YulIdentifier","src":"5547:6:54"},"nativeSrc":"5547:39:54","nodeType":"YulFunctionCall","src":"5547:39:54"},"nativeSrc":"5547:39:54","nodeType":"YulExpressionStatement","src":"5547:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5494:1:54","nodeType":"YulIdentifier","src":"5494:1:54"},{"name":"length","nativeSrc":"5497:6:54","nodeType":"YulIdentifier","src":"5497:6:54"}],"functionName":{"name":"lt","nativeSrc":"5491:2:54","nodeType":"YulIdentifier","src":"5491:2:54"},"nativeSrc":"5491:13:54","nodeType":"YulFunctionCall","src":"5491:13:54"},"nativeSrc":"5483:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"5505:19:54","nodeType":"YulBlock","src":"5505:19:54","statements":[{"nativeSrc":"5507:15:54","nodeType":"YulAssignment","src":"5507:15:54","value":{"arguments":[{"name":"i","nativeSrc":"5516:1:54","nodeType":"YulIdentifier","src":"5516:1:54"},{"kind":"number","nativeSrc":"5519:2:54","nodeType":"YulLiteral","src":"5519:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5512:3:54","nodeType":"YulIdentifier","src":"5512:3:54"},"nativeSrc":"5512:10:54","nodeType":"YulFunctionCall","src":"5512:10:54"},"variableNames":[{"name":"i","nativeSrc":"5507:1:54","nodeType":"YulIdentifier","src":"5507:1:54"}]}]},"pre":{"nativeSrc":"5487:3:54","nodeType":"YulBlock","src":"5487:3:54","statements":[]},"src":"5483:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5616:3:54","nodeType":"YulIdentifier","src":"5616:3:54"},{"name":"length","nativeSrc":"5621:6:54","nodeType":"YulIdentifier","src":"5621:6:54"}],"functionName":{"name":"add","nativeSrc":"5612:3:54","nodeType":"YulIdentifier","src":"5612:3:54"},"nativeSrc":"5612:16:54","nodeType":"YulFunctionCall","src":"5612:16:54"},{"kind":"number","nativeSrc":"5630:1:54","nodeType":"YulLiteral","src":"5630:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5605:6:54","nodeType":"YulIdentifier","src":"5605:6:54"},"nativeSrc":"5605:27:54","nodeType":"YulFunctionCall","src":"5605:27:54"},"nativeSrc":"5605:27:54","nodeType":"YulExpressionStatement","src":"5605:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5388:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5432:3:54","nodeType":"YulTypedName","src":"5432:3:54","type":""},{"name":"dst","nativeSrc":"5437:3:54","nodeType":"YulTypedName","src":"5437:3:54","type":""},{"name":"length","nativeSrc":"5442:6:54","nodeType":"YulTypedName","src":"5442:6:54","type":""}],"src":"5388:250:54"},{"body":{"nativeSrc":"5692:280:54","nodeType":"YulBlock","src":"5692:280:54","statements":[{"nativeSrc":"5702:26:54","nodeType":"YulVariableDeclaration","src":"5702:26:54","value":{"arguments":[{"name":"value","nativeSrc":"5722:5:54","nodeType":"YulIdentifier","src":"5722:5:54"}],"functionName":{"name":"mload","nativeSrc":"5716:5:54","nodeType":"YulIdentifier","src":"5716:5:54"},"nativeSrc":"5716:12:54","nodeType":"YulFunctionCall","src":"5716:12:54"},"variables":[{"name":"length","nativeSrc":"5706:6:54","nodeType":"YulTypedName","src":"5706:6:54","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5744:3:54","nodeType":"YulIdentifier","src":"5744:3:54"},{"name":"length","nativeSrc":"5749:6:54","nodeType":"YulIdentifier","src":"5749:6:54"}],"functionName":{"name":"mstore","nativeSrc":"5737:6:54","nodeType":"YulIdentifier","src":"5737:6:54"},"nativeSrc":"5737:19:54","nodeType":"YulFunctionCall","src":"5737:19:54"},"nativeSrc":"5737:19:54","nodeType":"YulExpressionStatement","src":"5737:19:54"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5804:5:54","nodeType":"YulIdentifier","src":"5804:5:54"},{"kind":"number","nativeSrc":"5811:4:54","nodeType":"YulLiteral","src":"5811:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5800:3:54","nodeType":"YulIdentifier","src":"5800:3:54"},"nativeSrc":"5800:16:54","nodeType":"YulFunctionCall","src":"5800:16:54"},{"arguments":[{"name":"pos","nativeSrc":"5822:3:54","nodeType":"YulIdentifier","src":"5822:3:54"},{"kind":"number","nativeSrc":"5827:4:54","nodeType":"YulLiteral","src":"5827:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5818:3:54","nodeType":"YulIdentifier","src":"5818:3:54"},"nativeSrc":"5818:14:54","nodeType":"YulFunctionCall","src":"5818:14:54"},{"name":"length","nativeSrc":"5834:6:54","nodeType":"YulIdentifier","src":"5834:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5765:34:54","nodeType":"YulIdentifier","src":"5765:34:54"},"nativeSrc":"5765:76:54","nodeType":"YulFunctionCall","src":"5765:76:54"},"nativeSrc":"5765:76:54","nodeType":"YulExpressionStatement","src":"5765:76:54"},{"nativeSrc":"5850:116:54","nodeType":"YulAssignment","src":"5850:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5865:3:54","nodeType":"YulIdentifier","src":"5865:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5878:6:54","nodeType":"YulIdentifier","src":"5878:6:54"},{"kind":"number","nativeSrc":"5886:2:54","nodeType":"YulLiteral","src":"5886:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5874:3:54","nodeType":"YulIdentifier","src":"5874:3:54"},"nativeSrc":"5874:15:54","nodeType":"YulFunctionCall","src":"5874:15:54"},{"kind":"number","nativeSrc":"5891:66:54","nodeType":"YulLiteral","src":"5891:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"5870:3:54","nodeType":"YulIdentifier","src":"5870:3:54"},"nativeSrc":"5870:88:54","nodeType":"YulFunctionCall","src":"5870:88:54"}],"functionName":{"name":"add","nativeSrc":"5861:3:54","nodeType":"YulIdentifier","src":"5861:3:54"},"nativeSrc":"5861:98:54","nodeType":"YulFunctionCall","src":"5861:98:54"},{"kind":"number","nativeSrc":"5961:4:54","nodeType":"YulLiteral","src":"5961:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5857:3:54","nodeType":"YulIdentifier","src":"5857:3:54"},"nativeSrc":"5857:109:54","nodeType":"YulFunctionCall","src":"5857:109:54"},"variableNames":[{"name":"end","nativeSrc":"5850:3:54","nodeType":"YulIdentifier","src":"5850:3:54"}]}]},"name":"abi_encode_bytes","nativeSrc":"5643:329:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5669:5:54","nodeType":"YulTypedName","src":"5669:5:54","type":""},{"name":"pos","nativeSrc":"5676:3:54","nodeType":"YulTypedName","src":"5676:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5684:3:54","nodeType":"YulTypedName","src":"5684:3:54","type":""}],"src":"5643:329:54"},{"body":{"nativeSrc":"6096:98:54","nodeType":"YulBlock","src":"6096:98:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6113:9:54","nodeType":"YulIdentifier","src":"6113:9:54"},{"kind":"number","nativeSrc":"6124:2:54","nodeType":"YulLiteral","src":"6124:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6106:6:54","nodeType":"YulIdentifier","src":"6106:6:54"},"nativeSrc":"6106:21:54","nodeType":"YulFunctionCall","src":"6106:21:54"},"nativeSrc":"6106:21:54","nodeType":"YulExpressionStatement","src":"6106:21:54"},{"nativeSrc":"6136:52:54","nodeType":"YulAssignment","src":"6136:52:54","value":{"arguments":[{"name":"value0","nativeSrc":"6161:6:54","nodeType":"YulIdentifier","src":"6161:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"6173:9:54","nodeType":"YulIdentifier","src":"6173:9:54"},{"kind":"number","nativeSrc":"6184:2:54","nodeType":"YulLiteral","src":"6184:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6169:3:54","nodeType":"YulIdentifier","src":"6169:3:54"},"nativeSrc":"6169:18:54","nodeType":"YulFunctionCall","src":"6169:18:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"6144:16:54","nodeType":"YulIdentifier","src":"6144:16:54"},"nativeSrc":"6144:44:54","nodeType":"YulFunctionCall","src":"6144:44:54"},"variableNames":[{"name":"tail","nativeSrc":"6136:4:54","nodeType":"YulIdentifier","src":"6136:4:54"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"5977:217:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6065:9:54","nodeType":"YulTypedName","src":"6065:9:54","type":""},{"name":"value0","nativeSrc":"6076:6:54","nodeType":"YulTypedName","src":"6076:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6087:4:54","nodeType":"YulTypedName","src":"6087:4:54","type":""}],"src":"5977:217:54"},{"body":{"nativeSrc":"6269:110:54","nodeType":"YulBlock","src":"6269:110:54","statements":[{"body":{"nativeSrc":"6315:16:54","nodeType":"YulBlock","src":"6315:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6324:1:54","nodeType":"YulLiteral","src":"6324:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6327:1:54","nodeType":"YulLiteral","src":"6327:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6317:6:54","nodeType":"YulIdentifier","src":"6317:6:54"},"nativeSrc":"6317:12:54","nodeType":"YulFunctionCall","src":"6317:12:54"},"nativeSrc":"6317:12:54","nodeType":"YulExpressionStatement","src":"6317:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6290:7:54","nodeType":"YulIdentifier","src":"6290:7:54"},{"name":"headStart","nativeSrc":"6299:9:54","nodeType":"YulIdentifier","src":"6299:9:54"}],"functionName":{"name":"sub","nativeSrc":"6286:3:54","nodeType":"YulIdentifier","src":"6286:3:54"},"nativeSrc":"6286:23:54","nodeType":"YulFunctionCall","src":"6286:23:54"},{"kind":"number","nativeSrc":"6311:2:54","nodeType":"YulLiteral","src":"6311:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6282:3:54","nodeType":"YulIdentifier","src":"6282:3:54"},"nativeSrc":"6282:32:54","nodeType":"YulFunctionCall","src":"6282:32:54"},"nativeSrc":"6279:52:54","nodeType":"YulIf","src":"6279:52:54"},{"nativeSrc":"6340:33:54","nodeType":"YulAssignment","src":"6340:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6363:9:54","nodeType":"YulIdentifier","src":"6363:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"6350:12:54","nodeType":"YulIdentifier","src":"6350:12:54"},"nativeSrc":"6350:23:54","nodeType":"YulFunctionCall","src":"6350:23:54"},"variableNames":[{"name":"value0","nativeSrc":"6340:6:54","nodeType":"YulIdentifier","src":"6340:6:54"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6199:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6235:9:54","nodeType":"YulTypedName","src":"6235:9:54","type":""},{"name":"dataEnd","nativeSrc":"6246:7:54","nodeType":"YulTypedName","src":"6246:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6258:6:54","nodeType":"YulTypedName","src":"6258:6:54","type":""}],"src":"6199:180:54"},{"body":{"nativeSrc":"6485:76:54","nodeType":"YulBlock","src":"6485:76:54","statements":[{"nativeSrc":"6495:26:54","nodeType":"YulAssignment","src":"6495:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6507:9:54","nodeType":"YulIdentifier","src":"6507:9:54"},{"kind":"number","nativeSrc":"6518:2:54","nodeType":"YulLiteral","src":"6518:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6503:3:54","nodeType":"YulIdentifier","src":"6503:3:54"},"nativeSrc":"6503:18:54","nodeType":"YulFunctionCall","src":"6503:18:54"},"variableNames":[{"name":"tail","nativeSrc":"6495:4:54","nodeType":"YulIdentifier","src":"6495:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6537:9:54","nodeType":"YulIdentifier","src":"6537:9:54"},{"name":"value0","nativeSrc":"6548:6:54","nodeType":"YulIdentifier","src":"6548:6:54"}],"functionName":{"name":"mstore","nativeSrc":"6530:6:54","nodeType":"YulIdentifier","src":"6530:6:54"},"nativeSrc":"6530:25:54","nodeType":"YulFunctionCall","src":"6530:25:54"},"nativeSrc":"6530:25:54","nodeType":"YulExpressionStatement","src":"6530:25:54"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"6384:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6454:9:54","nodeType":"YulTypedName","src":"6454:9:54","type":""},{"name":"value0","nativeSrc":"6465:6:54","nodeType":"YulTypedName","src":"6465:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6476:4:54","nodeType":"YulTypedName","src":"6476:4:54","type":""}],"src":"6384:177:54"},{"body":{"nativeSrc":"6667:125:54","nodeType":"YulBlock","src":"6667:125:54","statements":[{"nativeSrc":"6677:26:54","nodeType":"YulAssignment","src":"6677:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6689:9:54","nodeType":"YulIdentifier","src":"6689:9:54"},{"kind":"number","nativeSrc":"6700:2:54","nodeType":"YulLiteral","src":"6700:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6685:3:54","nodeType":"YulIdentifier","src":"6685:3:54"},"nativeSrc":"6685:18:54","nodeType":"YulFunctionCall","src":"6685:18:54"},"variableNames":[{"name":"tail","nativeSrc":"6677:4:54","nodeType":"YulIdentifier","src":"6677:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6719:9:54","nodeType":"YulIdentifier","src":"6719:9:54"},{"arguments":[{"name":"value0","nativeSrc":"6734:6:54","nodeType":"YulIdentifier","src":"6734:6:54"},{"kind":"number","nativeSrc":"6742:42:54","nodeType":"YulLiteral","src":"6742:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6730:3:54","nodeType":"YulIdentifier","src":"6730:3:54"},"nativeSrc":"6730:55:54","nodeType":"YulFunctionCall","src":"6730:55:54"}],"functionName":{"name":"mstore","nativeSrc":"6712:6:54","nodeType":"YulIdentifier","src":"6712:6:54"},"nativeSrc":"6712:74:54","nodeType":"YulFunctionCall","src":"6712:74:54"},"nativeSrc":"6712:74:54","nodeType":"YulExpressionStatement","src":"6712:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6566:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6636:9:54","nodeType":"YulTypedName","src":"6636:9:54","type":""},{"name":"value0","nativeSrc":"6647:6:54","nodeType":"YulTypedName","src":"6647:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6658:4:54","nodeType":"YulTypedName","src":"6658:4:54","type":""}],"src":"6566:226:54"},{"body":{"nativeSrc":"6902:376:54","nodeType":"YulBlock","src":"6902:376:54","statements":[{"body":{"nativeSrc":"6948:16:54","nodeType":"YulBlock","src":"6948:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6957:1:54","nodeType":"YulLiteral","src":"6957:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6960:1:54","nodeType":"YulLiteral","src":"6960:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6950:6:54","nodeType":"YulIdentifier","src":"6950:6:54"},"nativeSrc":"6950:12:54","nodeType":"YulFunctionCall","src":"6950:12:54"},"nativeSrc":"6950:12:54","nodeType":"YulExpressionStatement","src":"6950:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6923:7:54","nodeType":"YulIdentifier","src":"6923:7:54"},{"name":"headStart","nativeSrc":"6932:9:54","nodeType":"YulIdentifier","src":"6932:9:54"}],"functionName":{"name":"sub","nativeSrc":"6919:3:54","nodeType":"YulIdentifier","src":"6919:3:54"},"nativeSrc":"6919:23:54","nodeType":"YulFunctionCall","src":"6919:23:54"},{"kind":"number","nativeSrc":"6944:2:54","nodeType":"YulLiteral","src":"6944:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6915:3:54","nodeType":"YulIdentifier","src":"6915:3:54"},"nativeSrc":"6915:32:54","nodeType":"YulFunctionCall","src":"6915:32:54"},"nativeSrc":"6912:52:54","nodeType":"YulIf","src":"6912:52:54"},{"nativeSrc":"6973:38:54","nodeType":"YulAssignment","src":"6973:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"7001:9:54","nodeType":"YulIdentifier","src":"7001:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"6983:17:54","nodeType":"YulIdentifier","src":"6983:17:54"},"nativeSrc":"6983:28:54","nodeType":"YulFunctionCall","src":"6983:28:54"},"variableNames":[{"name":"value0","nativeSrc":"6973:6:54","nodeType":"YulIdentifier","src":"6973:6:54"}]},{"nativeSrc":"7020:46:54","nodeType":"YulVariableDeclaration","src":"7020:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7051:9:54","nodeType":"YulIdentifier","src":"7051:9:54"},{"kind":"number","nativeSrc":"7062:2:54","nodeType":"YulLiteral","src":"7062:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7047:3:54","nodeType":"YulIdentifier","src":"7047:3:54"},"nativeSrc":"7047:18:54","nodeType":"YulFunctionCall","src":"7047:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"7034:12:54","nodeType":"YulIdentifier","src":"7034:12:54"},"nativeSrc":"7034:32:54","nodeType":"YulFunctionCall","src":"7034:32:54"},"variables":[{"name":"offset","nativeSrc":"7024:6:54","nodeType":"YulTypedName","src":"7024:6:54","type":""}]},{"body":{"nativeSrc":"7109:16:54","nodeType":"YulBlock","src":"7109:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7118:1:54","nodeType":"YulLiteral","src":"7118:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7121:1:54","nodeType":"YulLiteral","src":"7121:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7111:6:54","nodeType":"YulIdentifier","src":"7111:6:54"},"nativeSrc":"7111:12:54","nodeType":"YulFunctionCall","src":"7111:12:54"},"nativeSrc":"7111:12:54","nodeType":"YulExpressionStatement","src":"7111:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7081:6:54","nodeType":"YulIdentifier","src":"7081:6:54"},{"kind":"number","nativeSrc":"7089:18:54","nodeType":"YulLiteral","src":"7089:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7078:2:54","nodeType":"YulIdentifier","src":"7078:2:54"},"nativeSrc":"7078:30:54","nodeType":"YulFunctionCall","src":"7078:30:54"},"nativeSrc":"7075:50:54","nodeType":"YulIf","src":"7075:50:54"},{"nativeSrc":"7134:84:54","nodeType":"YulVariableDeclaration","src":"7134:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7190:9:54","nodeType":"YulIdentifier","src":"7190:9:54"},{"name":"offset","nativeSrc":"7201:6:54","nodeType":"YulIdentifier","src":"7201:6:54"}],"functionName":{"name":"add","nativeSrc":"7186:3:54","nodeType":"YulIdentifier","src":"7186:3:54"},"nativeSrc":"7186:22:54","nodeType":"YulFunctionCall","src":"7186:22:54"},{"name":"dataEnd","nativeSrc":"7210:7:54","nodeType":"YulIdentifier","src":"7210:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"7160:25:54","nodeType":"YulIdentifier","src":"7160:25:54"},"nativeSrc":"7160:58:54","nodeType":"YulFunctionCall","src":"7160:58:54"},"variables":[{"name":"value1_1","nativeSrc":"7138:8:54","nodeType":"YulTypedName","src":"7138:8:54","type":""},{"name":"value2_1","nativeSrc":"7148:8:54","nodeType":"YulTypedName","src":"7148:8:54","type":""}]},{"nativeSrc":"7227:18:54","nodeType":"YulAssignment","src":"7227:18:54","value":{"name":"value1_1","nativeSrc":"7237:8:54","nodeType":"YulIdentifier","src":"7237:8:54"},"variableNames":[{"name":"value1","nativeSrc":"7227:6:54","nodeType":"YulIdentifier","src":"7227:6:54"}]},{"nativeSrc":"7254:18:54","nodeType":"YulAssignment","src":"7254:18:54","value":{"name":"value2_1","nativeSrc":"7264:8:54","nodeType":"YulIdentifier","src":"7264:8:54"},"variableNames":[{"name":"value2","nativeSrc":"7254:6:54","nodeType":"YulIdentifier","src":"7254:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"6797:481:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6852:9:54","nodeType":"YulTypedName","src":"6852:9:54","type":""},{"name":"dataEnd","nativeSrc":"6863:7:54","nodeType":"YulTypedName","src":"6863:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6875:6:54","nodeType":"YulTypedName","src":"6875:6:54","type":""},{"name":"value1","nativeSrc":"6883:6:54","nodeType":"YulTypedName","src":"6883:6:54","type":""},{"name":"value2","nativeSrc":"6891:6:54","nodeType":"YulTypedName","src":"6891:6:54","type":""}],"src":"6797:481:54"},{"body":{"nativeSrc":"7421:484:54","nodeType":"YulBlock","src":"7421:484:54","statements":[{"body":{"nativeSrc":"7468:16:54","nodeType":"YulBlock","src":"7468:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7477:1:54","nodeType":"YulLiteral","src":"7477:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7480:1:54","nodeType":"YulLiteral","src":"7480:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7470:6:54","nodeType":"YulIdentifier","src":"7470:6:54"},"nativeSrc":"7470:12:54","nodeType":"YulFunctionCall","src":"7470:12:54"},"nativeSrc":"7470:12:54","nodeType":"YulExpressionStatement","src":"7470:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7442:7:54","nodeType":"YulIdentifier","src":"7442:7:54"},{"name":"headStart","nativeSrc":"7451:9:54","nodeType":"YulIdentifier","src":"7451:9:54"}],"functionName":{"name":"sub","nativeSrc":"7438:3:54","nodeType":"YulIdentifier","src":"7438:3:54"},"nativeSrc":"7438:23:54","nodeType":"YulFunctionCall","src":"7438:23:54"},{"kind":"number","nativeSrc":"7463:3:54","nodeType":"YulLiteral","src":"7463:3:54","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"7434:3:54","nodeType":"YulIdentifier","src":"7434:3:54"},"nativeSrc":"7434:33:54","nodeType":"YulFunctionCall","src":"7434:33:54"},"nativeSrc":"7431:53:54","nodeType":"YulIf","src":"7431:53:54"},{"nativeSrc":"7493:38:54","nodeType":"YulAssignment","src":"7493:38:54","value":{"arguments":[{"name":"headStart","nativeSrc":"7521:9:54","nodeType":"YulIdentifier","src":"7521:9:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7503:17:54","nodeType":"YulIdentifier","src":"7503:17:54"},"nativeSrc":"7503:28:54","nodeType":"YulFunctionCall","src":"7503:28:54"},"variableNames":[{"name":"value0","nativeSrc":"7493:6:54","nodeType":"YulIdentifier","src":"7493:6:54"}]},{"nativeSrc":"7540:47:54","nodeType":"YulAssignment","src":"7540:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7572:9:54","nodeType":"YulIdentifier","src":"7572:9:54"},{"kind":"number","nativeSrc":"7583:2:54","nodeType":"YulLiteral","src":"7583:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7568:3:54","nodeType":"YulIdentifier","src":"7568:3:54"},"nativeSrc":"7568:18:54","nodeType":"YulFunctionCall","src":"7568:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"7550:17:54","nodeType":"YulIdentifier","src":"7550:17:54"},"nativeSrc":"7550:37:54","nodeType":"YulFunctionCall","src":"7550:37:54"},"variableNames":[{"name":"value1","nativeSrc":"7540:6:54","nodeType":"YulIdentifier","src":"7540:6:54"}]},{"nativeSrc":"7596:42:54","nodeType":"YulAssignment","src":"7596:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7623:9:54","nodeType":"YulIdentifier","src":"7623:9:54"},{"kind":"number","nativeSrc":"7634:2:54","nodeType":"YulLiteral","src":"7634:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7619:3:54","nodeType":"YulIdentifier","src":"7619:3:54"},"nativeSrc":"7619:18:54","nodeType":"YulFunctionCall","src":"7619:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"7606:12:54","nodeType":"YulIdentifier","src":"7606:12:54"},"nativeSrc":"7606:32:54","nodeType":"YulFunctionCall","src":"7606:32:54"},"variableNames":[{"name":"value2","nativeSrc":"7596:6:54","nodeType":"YulIdentifier","src":"7596:6:54"}]},{"nativeSrc":"7647:46:54","nodeType":"YulVariableDeclaration","src":"7647:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7678:9:54","nodeType":"YulIdentifier","src":"7678:9:54"},{"kind":"number","nativeSrc":"7689:2:54","nodeType":"YulLiteral","src":"7689:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7674:3:54","nodeType":"YulIdentifier","src":"7674:3:54"},"nativeSrc":"7674:18:54","nodeType":"YulFunctionCall","src":"7674:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"7661:12:54","nodeType":"YulIdentifier","src":"7661:12:54"},"nativeSrc":"7661:32:54","nodeType":"YulFunctionCall","src":"7661:32:54"},"variables":[{"name":"offset","nativeSrc":"7651:6:54","nodeType":"YulTypedName","src":"7651:6:54","type":""}]},{"body":{"nativeSrc":"7736:16:54","nodeType":"YulBlock","src":"7736:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7745:1:54","nodeType":"YulLiteral","src":"7745:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7748:1:54","nodeType":"YulLiteral","src":"7748:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7738:6:54","nodeType":"YulIdentifier","src":"7738:6:54"},"nativeSrc":"7738:12:54","nodeType":"YulFunctionCall","src":"7738:12:54"},"nativeSrc":"7738:12:54","nodeType":"YulExpressionStatement","src":"7738:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7708:6:54","nodeType":"YulIdentifier","src":"7708:6:54"},{"kind":"number","nativeSrc":"7716:18:54","nodeType":"YulLiteral","src":"7716:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7705:2:54","nodeType":"YulIdentifier","src":"7705:2:54"},"nativeSrc":"7705:30:54","nodeType":"YulFunctionCall","src":"7705:30:54"},"nativeSrc":"7702:50:54","nodeType":"YulIf","src":"7702:50:54"},{"nativeSrc":"7761:84:54","nodeType":"YulVariableDeclaration","src":"7761:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7817:9:54","nodeType":"YulIdentifier","src":"7817:9:54"},{"name":"offset","nativeSrc":"7828:6:54","nodeType":"YulIdentifier","src":"7828:6:54"}],"functionName":{"name":"add","nativeSrc":"7813:3:54","nodeType":"YulIdentifier","src":"7813:3:54"},"nativeSrc":"7813:22:54","nodeType":"YulFunctionCall","src":"7813:22:54"},{"name":"dataEnd","nativeSrc":"7837:7:54","nodeType":"YulIdentifier","src":"7837:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"7787:25:54","nodeType":"YulIdentifier","src":"7787:25:54"},"nativeSrc":"7787:58:54","nodeType":"YulFunctionCall","src":"7787:58:54"},"variables":[{"name":"value3_1","nativeSrc":"7765:8:54","nodeType":"YulTypedName","src":"7765:8:54","type":""},{"name":"value4_1","nativeSrc":"7775:8:54","nodeType":"YulTypedName","src":"7775:8:54","type":""}]},{"nativeSrc":"7854:18:54","nodeType":"YulAssignment","src":"7854:18:54","value":{"name":"value3_1","nativeSrc":"7864:8:54","nodeType":"YulIdentifier","src":"7864:8:54"},"variableNames":[{"name":"value3","nativeSrc":"7854:6:54","nodeType":"YulIdentifier","src":"7854:6:54"}]},{"nativeSrc":"7881:18:54","nodeType":"YulAssignment","src":"7881:18:54","value":{"name":"value4_1","nativeSrc":"7891:8:54","nodeType":"YulIdentifier","src":"7891:8:54"},"variableNames":[{"name":"value4","nativeSrc":"7881:6:54","nodeType":"YulIdentifier","src":"7881:6:54"}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nativeSrc":"7283:622:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7355:9:54","nodeType":"YulTypedName","src":"7355:9:54","type":""},{"name":"dataEnd","nativeSrc":"7366:7:54","nodeType":"YulTypedName","src":"7366:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7378:6:54","nodeType":"YulTypedName","src":"7378:6:54","type":""},{"name":"value1","nativeSrc":"7386:6:54","nodeType":"YulTypedName","src":"7386:6:54","type":""},{"name":"value2","nativeSrc":"7394:6:54","nodeType":"YulTypedName","src":"7394:6:54","type":""},{"name":"value3","nativeSrc":"7402:6:54","nodeType":"YulTypedName","src":"7402:6:54","type":""},{"name":"value4","nativeSrc":"7410:6:54","nodeType":"YulTypedName","src":"7410:6:54","type":""}],"src":"7283:622:54"},{"body":{"nativeSrc":"8038:125:54","nodeType":"YulBlock","src":"8038:125:54","statements":[{"nativeSrc":"8048:26:54","nodeType":"YulAssignment","src":"8048:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8060:9:54","nodeType":"YulIdentifier","src":"8060:9:54"},{"kind":"number","nativeSrc":"8071:2:54","nodeType":"YulLiteral","src":"8071:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8056:3:54","nodeType":"YulIdentifier","src":"8056:3:54"},"nativeSrc":"8056:18:54","nodeType":"YulFunctionCall","src":"8056:18:54"},"variableNames":[{"name":"tail","nativeSrc":"8048:4:54","nodeType":"YulIdentifier","src":"8048:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8090:9:54","nodeType":"YulIdentifier","src":"8090:9:54"},{"arguments":[{"name":"value0","nativeSrc":"8105:6:54","nodeType":"YulIdentifier","src":"8105:6:54"},{"kind":"number","nativeSrc":"8113:42:54","nodeType":"YulLiteral","src":"8113:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8101:3:54","nodeType":"YulIdentifier","src":"8101:3:54"},"nativeSrc":"8101:55:54","nodeType":"YulFunctionCall","src":"8101:55:54"}],"functionName":{"name":"mstore","nativeSrc":"8083:6:54","nodeType":"YulIdentifier","src":"8083:6:54"},"nativeSrc":"8083:74:54","nodeType":"YulFunctionCall","src":"8083:74:54"},"nativeSrc":"8083:74:54","nodeType":"YulExpressionStatement","src":"8083:74:54"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed","nativeSrc":"7910:253:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8007:9:54","nodeType":"YulTypedName","src":"8007:9:54","type":""},{"name":"value0","nativeSrc":"8018:6:54","nodeType":"YulTypedName","src":"8018:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8029:4:54","nodeType":"YulTypedName","src":"8029:4:54","type":""}],"src":"7910:253:54"},{"body":{"nativeSrc":"8360:871:54","nodeType":"YulBlock","src":"8360:871:54","statements":[{"body":{"nativeSrc":"8407:16:54","nodeType":"YulBlock","src":"8407:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8416:1:54","nodeType":"YulLiteral","src":"8416:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8419:1:54","nodeType":"YulLiteral","src":"8419:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8409:6:54","nodeType":"YulIdentifier","src":"8409:6:54"},"nativeSrc":"8409:12:54","nodeType":"YulFunctionCall","src":"8409:12:54"},"nativeSrc":"8409:12:54","nodeType":"YulExpressionStatement","src":"8409:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8381:7:54","nodeType":"YulIdentifier","src":"8381:7:54"},{"name":"headStart","nativeSrc":"8390:9:54","nodeType":"YulIdentifier","src":"8390:9:54"}],"functionName":{"name":"sub","nativeSrc":"8377:3:54","nodeType":"YulIdentifier","src":"8377:3:54"},"nativeSrc":"8377:23:54","nodeType":"YulFunctionCall","src":"8377:23:54"},{"kind":"number","nativeSrc":"8402:3:54","nodeType":"YulLiteral","src":"8402:3:54","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"8373:3:54","nodeType":"YulIdentifier","src":"8373:3:54"},"nativeSrc":"8373:33:54","nodeType":"YulFunctionCall","src":"8373:33:54"},"nativeSrc":"8370:53:54","nodeType":"YulIf","src":"8370:53:54"},{"nativeSrc":"8432:33:54","nodeType":"YulAssignment","src":"8432:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8455:9:54","nodeType":"YulIdentifier","src":"8455:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"8442:12:54","nodeType":"YulIdentifier","src":"8442:12:54"},"nativeSrc":"8442:23:54","nodeType":"YulFunctionCall","src":"8442:23:54"},"variableNames":[{"name":"value0","nativeSrc":"8432:6:54","nodeType":"YulIdentifier","src":"8432:6:54"}]},{"nativeSrc":"8474:47:54","nodeType":"YulAssignment","src":"8474:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8506:9:54","nodeType":"YulIdentifier","src":"8506:9:54"},{"kind":"number","nativeSrc":"8517:2:54","nodeType":"YulLiteral","src":"8517:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8502:3:54","nodeType":"YulIdentifier","src":"8502:3:54"},"nativeSrc":"8502:18:54","nodeType":"YulFunctionCall","src":"8502:18:54"}],"functionName":{"name":"abi_decode_uint16","nativeSrc":"8484:17:54","nodeType":"YulIdentifier","src":"8484:17:54"},"nativeSrc":"8484:37:54","nodeType":"YulFunctionCall","src":"8484:37:54"},"variableNames":[{"name":"value1","nativeSrc":"8474:6:54","nodeType":"YulIdentifier","src":"8474:6:54"}]},{"nativeSrc":"8530:46:54","nodeType":"YulVariableDeclaration","src":"8530:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8561:9:54","nodeType":"YulIdentifier","src":"8561:9:54"},{"kind":"number","nativeSrc":"8572:2:54","nodeType":"YulLiteral","src":"8572:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8557:3:54","nodeType":"YulIdentifier","src":"8557:3:54"},"nativeSrc":"8557:18:54","nodeType":"YulFunctionCall","src":"8557:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"8544:12:54","nodeType":"YulIdentifier","src":"8544:12:54"},"nativeSrc":"8544:32:54","nodeType":"YulFunctionCall","src":"8544:32:54"},"variables":[{"name":"offset","nativeSrc":"8534:6:54","nodeType":"YulTypedName","src":"8534:6:54","type":""}]},{"nativeSrc":"8585:28:54","nodeType":"YulVariableDeclaration","src":"8585:28:54","value":{"kind":"number","nativeSrc":"8595:18:54","nodeType":"YulLiteral","src":"8595:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"8589:2:54","nodeType":"YulTypedName","src":"8589:2:54","type":""}]},{"body":{"nativeSrc":"8640:16:54","nodeType":"YulBlock","src":"8640:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8649:1:54","nodeType":"YulLiteral","src":"8649:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8652:1:54","nodeType":"YulLiteral","src":"8652:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8642:6:54","nodeType":"YulIdentifier","src":"8642:6:54"},"nativeSrc":"8642:12:54","nodeType":"YulFunctionCall","src":"8642:12:54"},"nativeSrc":"8642:12:54","nodeType":"YulExpressionStatement","src":"8642:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8628:6:54","nodeType":"YulIdentifier","src":"8628:6:54"},{"name":"_1","nativeSrc":"8636:2:54","nodeType":"YulIdentifier","src":"8636:2:54"}],"functionName":{"name":"gt","nativeSrc":"8625:2:54","nodeType":"YulIdentifier","src":"8625:2:54"},"nativeSrc":"8625:14:54","nodeType":"YulFunctionCall","src":"8625:14:54"},"nativeSrc":"8622:34:54","nodeType":"YulIf","src":"8622:34:54"},{"nativeSrc":"8665:84:54","nodeType":"YulVariableDeclaration","src":"8665:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8721:9:54","nodeType":"YulIdentifier","src":"8721:9:54"},{"name":"offset","nativeSrc":"8732:6:54","nodeType":"YulIdentifier","src":"8732:6:54"}],"functionName":{"name":"add","nativeSrc":"8717:3:54","nodeType":"YulIdentifier","src":"8717:3:54"},"nativeSrc":"8717:22:54","nodeType":"YulFunctionCall","src":"8717:22:54"},{"name":"dataEnd","nativeSrc":"8741:7:54","nodeType":"YulIdentifier","src":"8741:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8691:25:54","nodeType":"YulIdentifier","src":"8691:25:54"},"nativeSrc":"8691:58:54","nodeType":"YulFunctionCall","src":"8691:58:54"},"variables":[{"name":"value2_1","nativeSrc":"8669:8:54","nodeType":"YulTypedName","src":"8669:8:54","type":""},{"name":"value3_1","nativeSrc":"8679:8:54","nodeType":"YulTypedName","src":"8679:8:54","type":""}]},{"nativeSrc":"8758:18:54","nodeType":"YulAssignment","src":"8758:18:54","value":{"name":"value2_1","nativeSrc":"8768:8:54","nodeType":"YulIdentifier","src":"8768:8:54"},"variableNames":[{"name":"value2","nativeSrc":"8758:6:54","nodeType":"YulIdentifier","src":"8758:6:54"}]},{"nativeSrc":"8785:18:54","nodeType":"YulAssignment","src":"8785:18:54","value":{"name":"value3_1","nativeSrc":"8795:8:54","nodeType":"YulIdentifier","src":"8795:8:54"},"variableNames":[{"name":"value3","nativeSrc":"8785:6:54","nodeType":"YulIdentifier","src":"8785:6:54"}]},{"nativeSrc":"8812:48:54","nodeType":"YulVariableDeclaration","src":"8812:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8845:9:54","nodeType":"YulIdentifier","src":"8845:9:54"},{"kind":"number","nativeSrc":"8856:2:54","nodeType":"YulLiteral","src":"8856:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8841:3:54","nodeType":"YulIdentifier","src":"8841:3:54"},"nativeSrc":"8841:18:54","nodeType":"YulFunctionCall","src":"8841:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"8828:12:54","nodeType":"YulIdentifier","src":"8828:12:54"},"nativeSrc":"8828:32:54","nodeType":"YulFunctionCall","src":"8828:32:54"},"variables":[{"name":"offset_1","nativeSrc":"8816:8:54","nodeType":"YulTypedName","src":"8816:8:54","type":""}]},{"body":{"nativeSrc":"8889:16:54","nodeType":"YulBlock","src":"8889:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8898:1:54","nodeType":"YulLiteral","src":"8898:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"8901:1:54","nodeType":"YulLiteral","src":"8901:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8891:6:54","nodeType":"YulIdentifier","src":"8891:6:54"},"nativeSrc":"8891:12:54","nodeType":"YulFunctionCall","src":"8891:12:54"},"nativeSrc":"8891:12:54","nodeType":"YulExpressionStatement","src":"8891:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"8875:8:54","nodeType":"YulIdentifier","src":"8875:8:54"},{"name":"_1","nativeSrc":"8885:2:54","nodeType":"YulIdentifier","src":"8885:2:54"}],"functionName":{"name":"gt","nativeSrc":"8872:2:54","nodeType":"YulIdentifier","src":"8872:2:54"},"nativeSrc":"8872:16:54","nodeType":"YulFunctionCall","src":"8872:16:54"},"nativeSrc":"8869:36:54","nodeType":"YulIf","src":"8869:36:54"},{"nativeSrc":"8914:86:54","nodeType":"YulVariableDeclaration","src":"8914:86:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8970:9:54","nodeType":"YulIdentifier","src":"8970:9:54"},{"name":"offset_1","nativeSrc":"8981:8:54","nodeType":"YulIdentifier","src":"8981:8:54"}],"functionName":{"name":"add","nativeSrc":"8966:3:54","nodeType":"YulIdentifier","src":"8966:3:54"},"nativeSrc":"8966:24:54","nodeType":"YulFunctionCall","src":"8966:24:54"},{"name":"dataEnd","nativeSrc":"8992:7:54","nodeType":"YulIdentifier","src":"8992:7:54"}],"functionName":{"name":"abi_decode_bytes_calldata","nativeSrc":"8940:25:54","nodeType":"YulIdentifier","src":"8940:25:54"},"nativeSrc":"8940:60:54","nodeType":"YulFunctionCall","src":"8940:60:54"},"variables":[{"name":"value4_1","nativeSrc":"8918:8:54","nodeType":"YulTypedName","src":"8918:8:54","type":""},{"name":"value5_1","nativeSrc":"8928:8:54","nodeType":"YulTypedName","src":"8928:8:54","type":""}]},{"nativeSrc":"9009:18:54","nodeType":"YulAssignment","src":"9009:18:54","value":{"name":"value4_1","nativeSrc":"9019:8:54","nodeType":"YulIdentifier","src":"9019:8:54"},"variableNames":[{"name":"value4","nativeSrc":"9009:6:54","nodeType":"YulIdentifier","src":"9009:6:54"}]},{"nativeSrc":"9036:18:54","nodeType":"YulAssignment","src":"9036:18:54","value":{"name":"value5_1","nativeSrc":"9046:8:54","nodeType":"YulIdentifier","src":"9046:8:54"},"variableNames":[{"name":"value5","nativeSrc":"9036:6:54","nodeType":"YulIdentifier","src":"9036:6:54"}]},{"nativeSrc":"9063:46:54","nodeType":"YulVariableDeclaration","src":"9063:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9093:9:54","nodeType":"YulIdentifier","src":"9093:9:54"},{"kind":"number","nativeSrc":"9104:3:54","nodeType":"YulLiteral","src":"9104:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9089:3:54","nodeType":"YulIdentifier","src":"9089:3:54"},"nativeSrc":"9089:19:54","nodeType":"YulFunctionCall","src":"9089:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"9076:12:54","nodeType":"YulIdentifier","src":"9076:12:54"},"nativeSrc":"9076:33:54","nodeType":"YulFunctionCall","src":"9076:33:54"},"variables":[{"name":"value","nativeSrc":"9067:5:54","nodeType":"YulTypedName","src":"9067:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9143:5:54","nodeType":"YulIdentifier","src":"9143:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"9118:24:54","nodeType":"YulIdentifier","src":"9118:24:54"},"nativeSrc":"9118:31:54","nodeType":"YulFunctionCall","src":"9118:31:54"},"nativeSrc":"9118:31:54","nodeType":"YulExpressionStatement","src":"9118:31:54"},{"nativeSrc":"9158:15:54","nodeType":"YulAssignment","src":"9158:15:54","value":{"name":"value","nativeSrc":"9168:5:54","nodeType":"YulIdentifier","src":"9168:5:54"},"variableNames":[{"name":"value6","nativeSrc":"9158:6:54","nodeType":"YulIdentifier","src":"9158:6:54"}]},{"nativeSrc":"9182:43:54","nodeType":"YulAssignment","src":"9182:43:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9209:9:54","nodeType":"YulIdentifier","src":"9209:9:54"},{"kind":"number","nativeSrc":"9220:3:54","nodeType":"YulLiteral","src":"9220:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9205:3:54","nodeType":"YulIdentifier","src":"9205:3:54"},"nativeSrc":"9205:19:54","nodeType":"YulFunctionCall","src":"9205:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"9192:12:54","nodeType":"YulIdentifier","src":"9192:12:54"},"nativeSrc":"9192:33:54","nodeType":"YulFunctionCall","src":"9192:33:54"},"variableNames":[{"name":"value7","nativeSrc":"9182:6:54","nodeType":"YulIdentifier","src":"9182:6:54"}]}]},"name":"abi_decode_tuple_t_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_addresst_uint256","nativeSrc":"8168:1063:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8270:9:54","nodeType":"YulTypedName","src":"8270:9:54","type":""},{"name":"dataEnd","nativeSrc":"8281:7:54","nodeType":"YulTypedName","src":"8281:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8293:6:54","nodeType":"YulTypedName","src":"8293:6:54","type":""},{"name":"value1","nativeSrc":"8301:6:54","nodeType":"YulTypedName","src":"8301:6:54","type":""},{"name":"value2","nativeSrc":"8309:6:54","nodeType":"YulTypedName","src":"8309:6:54","type":""},{"name":"value3","nativeSrc":"8317:6:54","nodeType":"YulTypedName","src":"8317:6:54","type":""},{"name":"value4","nativeSrc":"8325:6:54","nodeType":"YulTypedName","src":"8325:6:54","type":""},{"name":"value5","nativeSrc":"8333:6:54","nodeType":"YulTypedName","src":"8333:6:54","type":""},{"name":"value6","nativeSrc":"8341:6:54","nodeType":"YulTypedName","src":"8341:6:54","type":""},{"name":"value7","nativeSrc":"8349:6:54","nodeType":"YulTypedName","src":"8349:6:54","type":""}],"src":"8168:1063:54"},{"body":{"nativeSrc":"9335:89:54","nodeType":"YulBlock","src":"9335:89:54","statements":[{"nativeSrc":"9345:26:54","nodeType":"YulAssignment","src":"9345:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9357:9:54","nodeType":"YulIdentifier","src":"9357:9:54"},{"kind":"number","nativeSrc":"9368:2:54","nodeType":"YulLiteral","src":"9368:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9353:3:54","nodeType":"YulIdentifier","src":"9353:3:54"},"nativeSrc":"9353:18:54","nodeType":"YulFunctionCall","src":"9353:18:54"},"variableNames":[{"name":"tail","nativeSrc":"9345:4:54","nodeType":"YulIdentifier","src":"9345:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9387:9:54","nodeType":"YulIdentifier","src":"9387:9:54"},{"arguments":[{"name":"value0","nativeSrc":"9402:6:54","nodeType":"YulIdentifier","src":"9402:6:54"},{"kind":"number","nativeSrc":"9410:6:54","nodeType":"YulLiteral","src":"9410:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"9398:3:54","nodeType":"YulIdentifier","src":"9398:3:54"},"nativeSrc":"9398:19:54","nodeType":"YulFunctionCall","src":"9398:19:54"}],"functionName":{"name":"mstore","nativeSrc":"9380:6:54","nodeType":"YulIdentifier","src":"9380:6:54"},"nativeSrc":"9380:38:54","nodeType":"YulFunctionCall","src":"9380:38:54"},"nativeSrc":"9380:38:54","nodeType":"YulExpressionStatement","src":"9380:38:54"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"9236:188:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9304:9:54","nodeType":"YulTypedName","src":"9304:9:54","type":""},{"name":"value0","nativeSrc":"9315:6:54","nodeType":"YulTypedName","src":"9315:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9326:4:54","nodeType":"YulTypedName","src":"9326:4:54","type":""}],"src":"9236:188:54"},{"body":{"nativeSrc":"9495:259:54","nodeType":"YulBlock","src":"9495:259:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9512:3:54","nodeType":"YulIdentifier","src":"9512:3:54"},{"name":"length","nativeSrc":"9517:6:54","nodeType":"YulIdentifier","src":"9517:6:54"}],"functionName":{"name":"mstore","nativeSrc":"9505:6:54","nodeType":"YulIdentifier","src":"9505:6:54"},"nativeSrc":"9505:19:54","nodeType":"YulFunctionCall","src":"9505:19:54"},"nativeSrc":"9505:19:54","nodeType":"YulExpressionStatement","src":"9505:19:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"9550:3:54","nodeType":"YulIdentifier","src":"9550:3:54"},{"kind":"number","nativeSrc":"9555:4:54","nodeType":"YulLiteral","src":"9555:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9546:3:54","nodeType":"YulIdentifier","src":"9546:3:54"},"nativeSrc":"9546:14:54","nodeType":"YulFunctionCall","src":"9546:14:54"},{"name":"start","nativeSrc":"9562:5:54","nodeType":"YulIdentifier","src":"9562:5:54"},{"name":"length","nativeSrc":"9569:6:54","nodeType":"YulIdentifier","src":"9569:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"9533:12:54","nodeType":"YulIdentifier","src":"9533:12:54"},"nativeSrc":"9533:43:54","nodeType":"YulFunctionCall","src":"9533:43:54"},"nativeSrc":"9533:43:54","nodeType":"YulExpressionStatement","src":"9533:43:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"9600:3:54","nodeType":"YulIdentifier","src":"9600:3:54"},{"name":"length","nativeSrc":"9605:6:54","nodeType":"YulIdentifier","src":"9605:6:54"}],"functionName":{"name":"add","nativeSrc":"9596:3:54","nodeType":"YulIdentifier","src":"9596:3:54"},"nativeSrc":"9596:16:54","nodeType":"YulFunctionCall","src":"9596:16:54"},{"kind":"number","nativeSrc":"9614:4:54","nodeType":"YulLiteral","src":"9614:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9592:3:54","nodeType":"YulIdentifier","src":"9592:3:54"},"nativeSrc":"9592:27:54","nodeType":"YulFunctionCall","src":"9592:27:54"},{"kind":"number","nativeSrc":"9621:1:54","nodeType":"YulLiteral","src":"9621:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9585:6:54","nodeType":"YulIdentifier","src":"9585:6:54"},"nativeSrc":"9585:38:54","nodeType":"YulFunctionCall","src":"9585:38:54"},"nativeSrc":"9585:38:54","nodeType":"YulExpressionStatement","src":"9585:38:54"},{"nativeSrc":"9632:116:54","nodeType":"YulAssignment","src":"9632:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"9647:3:54","nodeType":"YulIdentifier","src":"9647:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9660:6:54","nodeType":"YulIdentifier","src":"9660:6:54"},{"kind":"number","nativeSrc":"9668:2:54","nodeType":"YulLiteral","src":"9668:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9656:3:54","nodeType":"YulIdentifier","src":"9656:3:54"},"nativeSrc":"9656:15:54","nodeType":"YulFunctionCall","src":"9656:15:54"},{"kind":"number","nativeSrc":"9673:66:54","nodeType":"YulLiteral","src":"9673:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"9652:3:54","nodeType":"YulIdentifier","src":"9652:3:54"},"nativeSrc":"9652:88:54","nodeType":"YulFunctionCall","src":"9652:88:54"}],"functionName":{"name":"add","nativeSrc":"9643:3:54","nodeType":"YulIdentifier","src":"9643:3:54"},"nativeSrc":"9643:98:54","nodeType":"YulFunctionCall","src":"9643:98:54"},{"kind":"number","nativeSrc":"9743:4:54","nodeType":"YulLiteral","src":"9743:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9639:3:54","nodeType":"YulIdentifier","src":"9639:3:54"},"nativeSrc":"9639:109:54","nodeType":"YulFunctionCall","src":"9639:109:54"},"variableNames":[{"name":"end","nativeSrc":"9632:3:54","nodeType":"YulIdentifier","src":"9632:3:54"}]}]},"name":"abi_encode_bytes_calldata","nativeSrc":"9429:325:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"9464:5:54","nodeType":"YulTypedName","src":"9464:5:54","type":""},{"name":"length","nativeSrc":"9471:6:54","nodeType":"YulTypedName","src":"9471:6:54","type":""},{"name":"pos","nativeSrc":"9479:3:54","nodeType":"YulTypedName","src":"9479:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9487:3:54","nodeType":"YulTypedName","src":"9487:3:54","type":""}],"src":"9429:325:54"},{"body":{"nativeSrc":"10020:456:54","nodeType":"YulBlock","src":"10020:456:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10037:9:54","nodeType":"YulIdentifier","src":"10037:9:54"},{"arguments":[{"name":"value0","nativeSrc":"10052:6:54","nodeType":"YulIdentifier","src":"10052:6:54"},{"kind":"number","nativeSrc":"10060:6:54","nodeType":"YulLiteral","src":"10060:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"10048:3:54","nodeType":"YulIdentifier","src":"10048:3:54"},"nativeSrc":"10048:19:54","nodeType":"YulFunctionCall","src":"10048:19:54"}],"functionName":{"name":"mstore","nativeSrc":"10030:6:54","nodeType":"YulIdentifier","src":"10030:6:54"},"nativeSrc":"10030:38:54","nodeType":"YulFunctionCall","src":"10030:38:54"},"nativeSrc":"10030:38:54","nodeType":"YulExpressionStatement","src":"10030:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10088:9:54","nodeType":"YulIdentifier","src":"10088:9:54"},{"kind":"number","nativeSrc":"10099:2:54","nodeType":"YulLiteral","src":"10099:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10084:3:54","nodeType":"YulIdentifier","src":"10084:3:54"},"nativeSrc":"10084:18:54","nodeType":"YulFunctionCall","src":"10084:18:54"},{"arguments":[{"name":"value1","nativeSrc":"10108:6:54","nodeType":"YulIdentifier","src":"10108:6:54"},{"kind":"number","nativeSrc":"10116:42:54","nodeType":"YulLiteral","src":"10116:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10104:3:54","nodeType":"YulIdentifier","src":"10104:3:54"},"nativeSrc":"10104:55:54","nodeType":"YulFunctionCall","src":"10104:55:54"}],"functionName":{"name":"mstore","nativeSrc":"10077:6:54","nodeType":"YulIdentifier","src":"10077:6:54"},"nativeSrc":"10077:83:54","nodeType":"YulFunctionCall","src":"10077:83:54"},"nativeSrc":"10077:83:54","nodeType":"YulExpressionStatement","src":"10077:83:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10180:9:54","nodeType":"YulIdentifier","src":"10180:9:54"},{"kind":"number","nativeSrc":"10191:2:54","nodeType":"YulLiteral","src":"10191:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10176:3:54","nodeType":"YulIdentifier","src":"10176:3:54"},"nativeSrc":"10176:18:54","nodeType":"YulFunctionCall","src":"10176:18:54"},{"kind":"number","nativeSrc":"10196:3:54","nodeType":"YulLiteral","src":"10196:3:54","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"10169:6:54","nodeType":"YulIdentifier","src":"10169:6:54"},"nativeSrc":"10169:31:54","nodeType":"YulFunctionCall","src":"10169:31:54"},"nativeSrc":"10169:31:54","nodeType":"YulExpressionStatement","src":"10169:31:54"},{"nativeSrc":"10209:76:54","nodeType":"YulVariableDeclaration","src":"10209:76:54","value":{"arguments":[{"name":"value2","nativeSrc":"10249:6:54","nodeType":"YulIdentifier","src":"10249:6:54"},{"name":"value3","nativeSrc":"10257:6:54","nodeType":"YulIdentifier","src":"10257:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"10269:9:54","nodeType":"YulIdentifier","src":"10269:9:54"},{"kind":"number","nativeSrc":"10280:3:54","nodeType":"YulLiteral","src":"10280:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"10265:3:54","nodeType":"YulIdentifier","src":"10265:3:54"},"nativeSrc":"10265:19:54","nodeType":"YulFunctionCall","src":"10265:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"10223:25:54","nodeType":"YulIdentifier","src":"10223:25:54"},"nativeSrc":"10223:62:54","nodeType":"YulFunctionCall","src":"10223:62:54"},"variables":[{"name":"tail_1","nativeSrc":"10213:6:54","nodeType":"YulTypedName","src":"10213:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:54","nodeType":"YulIdentifier","src":"10305:9:54"},{"kind":"number","nativeSrc":"10316:2:54","nodeType":"YulLiteral","src":"10316:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10301:3:54","nodeType":"YulIdentifier","src":"10301:3:54"},"nativeSrc":"10301:18:54","nodeType":"YulFunctionCall","src":"10301:18:54"},{"arguments":[{"arguments":[{"name":"value4","nativeSrc":"10335:6:54","nodeType":"YulIdentifier","src":"10335:6:54"}],"functionName":{"name":"iszero","nativeSrc":"10328:6:54","nodeType":"YulIdentifier","src":"10328:6:54"},"nativeSrc":"10328:14:54","nodeType":"YulFunctionCall","src":"10328:14:54"}],"functionName":{"name":"iszero","nativeSrc":"10321:6:54","nodeType":"YulIdentifier","src":"10321:6:54"},"nativeSrc":"10321:22:54","nodeType":"YulFunctionCall","src":"10321:22:54"}],"functionName":{"name":"mstore","nativeSrc":"10294:6:54","nodeType":"YulIdentifier","src":"10294:6:54"},"nativeSrc":"10294:50:54","nodeType":"YulFunctionCall","src":"10294:50:54"},"nativeSrc":"10294:50:54","nodeType":"YulExpressionStatement","src":"10294:50:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10364:9:54","nodeType":"YulIdentifier","src":"10364:9:54"},{"kind":"number","nativeSrc":"10375:3:54","nodeType":"YulLiteral","src":"10375:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10360:3:54","nodeType":"YulIdentifier","src":"10360:3:54"},"nativeSrc":"10360:19:54","nodeType":"YulFunctionCall","src":"10360:19:54"},{"arguments":[{"name":"tail_1","nativeSrc":"10385:6:54","nodeType":"YulIdentifier","src":"10385:6:54"},{"name":"headStart","nativeSrc":"10393:9:54","nodeType":"YulIdentifier","src":"10393:9:54"}],"functionName":{"name":"sub","nativeSrc":"10381:3:54","nodeType":"YulIdentifier","src":"10381:3:54"},"nativeSrc":"10381:22:54","nodeType":"YulFunctionCall","src":"10381:22:54"}],"functionName":{"name":"mstore","nativeSrc":"10353:6:54","nodeType":"YulIdentifier","src":"10353:6:54"},"nativeSrc":"10353:51:54","nodeType":"YulFunctionCall","src":"10353:51:54"},"nativeSrc":"10353:51:54","nodeType":"YulExpressionStatement","src":"10353:51:54"},{"nativeSrc":"10413:57:54","nodeType":"YulAssignment","src":"10413:57:54","value":{"arguments":[{"name":"value5","nativeSrc":"10447:6:54","nodeType":"YulIdentifier","src":"10447:6:54"},{"name":"value6","nativeSrc":"10455:6:54","nodeType":"YulIdentifier","src":"10455:6:54"},{"name":"tail_1","nativeSrc":"10463:6:54","nodeType":"YulIdentifier","src":"10463:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"10421:25:54","nodeType":"YulIdentifier","src":"10421:25:54"},"nativeSrc":"10421:49:54","nodeType":"YulFunctionCall","src":"10421:49:54"},"variableNames":[{"name":"tail","nativeSrc":"10413:4:54","nodeType":"YulIdentifier","src":"10413:4:54"}]}]},"name":"abi_encode_tuple_t_uint16_t_address_t_bytes_calldata_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"9759:717:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9941:9:54","nodeType":"YulTypedName","src":"9941:9:54","type":""},{"name":"value6","nativeSrc":"9952:6:54","nodeType":"YulTypedName","src":"9952:6:54","type":""},{"name":"value5","nativeSrc":"9960:6:54","nodeType":"YulTypedName","src":"9960:6:54","type":""},{"name":"value4","nativeSrc":"9968:6:54","nodeType":"YulTypedName","src":"9968:6:54","type":""},{"name":"value3","nativeSrc":"9976:6:54","nodeType":"YulTypedName","src":"9976:6:54","type":""},{"name":"value2","nativeSrc":"9984:6:54","nodeType":"YulTypedName","src":"9984:6:54","type":""},{"name":"value1","nativeSrc":"9992:6:54","nodeType":"YulTypedName","src":"9992:6:54","type":""},{"name":"value0","nativeSrc":"10000:6:54","nodeType":"YulTypedName","src":"10000:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10011:4:54","nodeType":"YulTypedName","src":"10011:4:54","type":""}],"src":"9759:717:54"},{"body":{"nativeSrc":"10579:147:54","nodeType":"YulBlock","src":"10579:147:54","statements":[{"body":{"nativeSrc":"10625:16:54","nodeType":"YulBlock","src":"10625:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10634:1:54","nodeType":"YulLiteral","src":"10634:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"10637:1:54","nodeType":"YulLiteral","src":"10637:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10627:6:54","nodeType":"YulIdentifier","src":"10627:6:54"},"nativeSrc":"10627:12:54","nodeType":"YulFunctionCall","src":"10627:12:54"},"nativeSrc":"10627:12:54","nodeType":"YulExpressionStatement","src":"10627:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10600:7:54","nodeType":"YulIdentifier","src":"10600:7:54"},{"name":"headStart","nativeSrc":"10609:9:54","nodeType":"YulIdentifier","src":"10609:9:54"}],"functionName":{"name":"sub","nativeSrc":"10596:3:54","nodeType":"YulIdentifier","src":"10596:3:54"},"nativeSrc":"10596:23:54","nodeType":"YulFunctionCall","src":"10596:23:54"},{"kind":"number","nativeSrc":"10621:2:54","nodeType":"YulLiteral","src":"10621:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10592:3:54","nodeType":"YulIdentifier","src":"10592:3:54"},"nativeSrc":"10592:32:54","nodeType":"YulFunctionCall","src":"10592:32:54"},"nativeSrc":"10589:52:54","nodeType":"YulIf","src":"10589:52:54"},{"nativeSrc":"10650:26:54","nodeType":"YulAssignment","src":"10650:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10666:9:54","nodeType":"YulIdentifier","src":"10666:9:54"}],"functionName":{"name":"mload","nativeSrc":"10660:5:54","nodeType":"YulIdentifier","src":"10660:5:54"},"nativeSrc":"10660:16:54","nodeType":"YulFunctionCall","src":"10660:16:54"},"variableNames":[{"name":"value0","nativeSrc":"10650:6:54","nodeType":"YulIdentifier","src":"10650:6:54"}]},{"nativeSrc":"10685:35:54","nodeType":"YulAssignment","src":"10685:35:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10705:9:54","nodeType":"YulIdentifier","src":"10705:9:54"},{"kind":"number","nativeSrc":"10716:2:54","nodeType":"YulLiteral","src":"10716:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10701:3:54","nodeType":"YulIdentifier","src":"10701:3:54"},"nativeSrc":"10701:18:54","nodeType":"YulFunctionCall","src":"10701:18:54"}],"functionName":{"name":"mload","nativeSrc":"10695:5:54","nodeType":"YulIdentifier","src":"10695:5:54"},"nativeSrc":"10695:25:54","nodeType":"YulFunctionCall","src":"10695:25:54"},"variableNames":[{"name":"value1","nativeSrc":"10685:6:54","nodeType":"YulIdentifier","src":"10685:6:54"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nativeSrc":"10481:245:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10537:9:54","nodeType":"YulTypedName","src":"10537:9:54","type":""},{"name":"dataEnd","nativeSrc":"10548:7:54","nodeType":"YulTypedName","src":"10548:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10560:6:54","nodeType":"YulTypedName","src":"10560:6:54","type":""},{"name":"value1","nativeSrc":"10568:6:54","nodeType":"YulTypedName","src":"10568:6:54","type":""}],"src":"10481:245:54"},{"body":{"nativeSrc":"10786:382:54","nodeType":"YulBlock","src":"10786:382:54","statements":[{"nativeSrc":"10796:22:54","nodeType":"YulAssignment","src":"10796:22:54","value":{"arguments":[{"kind":"number","nativeSrc":"10810:1:54","nodeType":"YulLiteral","src":"10810:1:54","type":"","value":"1"},{"name":"data","nativeSrc":"10813:4:54","nodeType":"YulIdentifier","src":"10813:4:54"}],"functionName":{"name":"shr","nativeSrc":"10806:3:54","nodeType":"YulIdentifier","src":"10806:3:54"},"nativeSrc":"10806:12:54","nodeType":"YulFunctionCall","src":"10806:12:54"},"variableNames":[{"name":"length","nativeSrc":"10796:6:54","nodeType":"YulIdentifier","src":"10796:6:54"}]},{"nativeSrc":"10827:38:54","nodeType":"YulVariableDeclaration","src":"10827:38:54","value":{"arguments":[{"name":"data","nativeSrc":"10857:4:54","nodeType":"YulIdentifier","src":"10857:4:54"},{"kind":"number","nativeSrc":"10863:1:54","nodeType":"YulLiteral","src":"10863:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"10853:3:54","nodeType":"YulIdentifier","src":"10853:3:54"},"nativeSrc":"10853:12:54","nodeType":"YulFunctionCall","src":"10853:12:54"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"10831:18:54","nodeType":"YulTypedName","src":"10831:18:54","type":""}]},{"body":{"nativeSrc":"10904:31:54","nodeType":"YulBlock","src":"10904:31:54","statements":[{"nativeSrc":"10906:27:54","nodeType":"YulAssignment","src":"10906:27:54","value":{"arguments":[{"name":"length","nativeSrc":"10920:6:54","nodeType":"YulIdentifier","src":"10920:6:54"},{"kind":"number","nativeSrc":"10928:4:54","nodeType":"YulLiteral","src":"10928:4:54","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10916:3:54","nodeType":"YulIdentifier","src":"10916:3:54"},"nativeSrc":"10916:17:54","nodeType":"YulFunctionCall","src":"10916:17:54"},"variableNames":[{"name":"length","nativeSrc":"10906:6:54","nodeType":"YulIdentifier","src":"10906:6:54"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10884:18:54","nodeType":"YulIdentifier","src":"10884:18:54"}],"functionName":{"name":"iszero","nativeSrc":"10877:6:54","nodeType":"YulIdentifier","src":"10877:6:54"},"nativeSrc":"10877:26:54","nodeType":"YulFunctionCall","src":"10877:26:54"},"nativeSrc":"10874:61:54","nodeType":"YulIf","src":"10874:61:54"},{"body":{"nativeSrc":"10994:168:54","nodeType":"YulBlock","src":"10994:168:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11015:1:54","nodeType":"YulLiteral","src":"11015:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"11018:77:54","nodeType":"YulLiteral","src":"11018:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11008:6:54","nodeType":"YulIdentifier","src":"11008:6:54"},"nativeSrc":"11008:88:54","nodeType":"YulFunctionCall","src":"11008:88:54"},"nativeSrc":"11008:88:54","nodeType":"YulExpressionStatement","src":"11008:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11116:1:54","nodeType":"YulLiteral","src":"11116:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"11119:4:54","nodeType":"YulLiteral","src":"11119:4:54","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"11109:6:54","nodeType":"YulIdentifier","src":"11109:6:54"},"nativeSrc":"11109:15:54","nodeType":"YulFunctionCall","src":"11109:15:54"},"nativeSrc":"11109:15:54","nodeType":"YulExpressionStatement","src":"11109:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11144:1:54","nodeType":"YulLiteral","src":"11144:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"11147:4:54","nodeType":"YulLiteral","src":"11147:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11137:6:54","nodeType":"YulIdentifier","src":"11137:6:54"},"nativeSrc":"11137:15:54","nodeType":"YulFunctionCall","src":"11137:15:54"},"nativeSrc":"11137:15:54","nodeType":"YulExpressionStatement","src":"11137:15:54"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"10950:18:54","nodeType":"YulIdentifier","src":"10950:18:54"},{"arguments":[{"name":"length","nativeSrc":"10973:6:54","nodeType":"YulIdentifier","src":"10973:6:54"},{"kind":"number","nativeSrc":"10981:2:54","nodeType":"YulLiteral","src":"10981:2:54","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"10970:2:54","nodeType":"YulIdentifier","src":"10970:2:54"},"nativeSrc":"10970:14:54","nodeType":"YulFunctionCall","src":"10970:14:54"}],"functionName":{"name":"eq","nativeSrc":"10947:2:54","nodeType":"YulIdentifier","src":"10947:2:54"},"nativeSrc":"10947:38:54","nodeType":"YulFunctionCall","src":"10947:38:54"},"nativeSrc":"10944:218:54","nodeType":"YulIf","src":"10944:218:54"}]},"name":"extract_byte_array_length","nativeSrc":"10731:437:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"10766:4:54","nodeType":"YulTypedName","src":"10766:4:54","type":""}],"returnVariables":[{"name":"length","nativeSrc":"10775:6:54","nodeType":"YulTypedName","src":"10775:6:54","type":""}],"src":"10731:437:54"},{"body":{"nativeSrc":"11347:239:54","nodeType":"YulBlock","src":"11347:239:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11364:9:54","nodeType":"YulIdentifier","src":"11364:9:54"},{"kind":"number","nativeSrc":"11375:2:54","nodeType":"YulLiteral","src":"11375:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11357:6:54","nodeType":"YulIdentifier","src":"11357:6:54"},"nativeSrc":"11357:21:54","nodeType":"YulFunctionCall","src":"11357:21:54"},"nativeSrc":"11357:21:54","nodeType":"YulExpressionStatement","src":"11357:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11398:9:54","nodeType":"YulIdentifier","src":"11398:9:54"},{"kind":"number","nativeSrc":"11409:2:54","nodeType":"YulLiteral","src":"11409:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11394:3:54","nodeType":"YulIdentifier","src":"11394:3:54"},"nativeSrc":"11394:18:54","nodeType":"YulFunctionCall","src":"11394:18:54"},{"kind":"number","nativeSrc":"11414:2:54","nodeType":"YulLiteral","src":"11414:2:54","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"11387:6:54","nodeType":"YulIdentifier","src":"11387:6:54"},"nativeSrc":"11387:30:54","nodeType":"YulFunctionCall","src":"11387:30:54"},"nativeSrc":"11387:30:54","nodeType":"YulExpressionStatement","src":"11387:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11437:9:54","nodeType":"YulIdentifier","src":"11437:9:54"},{"kind":"number","nativeSrc":"11448:2:54","nodeType":"YulLiteral","src":"11448:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11433:3:54","nodeType":"YulIdentifier","src":"11433:3:54"},"nativeSrc":"11433:18:54","nodeType":"YulFunctionCall","src":"11433:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2074727573746564","kind":"string","nativeSrc":"11453:34:54","nodeType":"YulLiteral","src":"11453:34:54","type":"","value":"OmnichainProposalSender: trusted"}],"functionName":{"name":"mstore","nativeSrc":"11426:6:54","nodeType":"YulIdentifier","src":"11426:6:54"},"nativeSrc":"11426:62:54","nodeType":"YulFunctionCall","src":"11426:62:54"},"nativeSrc":"11426:62:54","nodeType":"YulExpressionStatement","src":"11426:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11508:9:54","nodeType":"YulIdentifier","src":"11508:9:54"},{"kind":"number","nativeSrc":"11519:2:54","nodeType":"YulLiteral","src":"11519:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11504:3:54","nodeType":"YulIdentifier","src":"11504:3:54"},"nativeSrc":"11504:18:54","nodeType":"YulFunctionCall","src":"11504:18:54"},{"hexValue":"2072656d6f7465206e6f7420666f756e64","kind":"string","nativeSrc":"11524:19:54","nodeType":"YulLiteral","src":"11524:19:54","type":"","value":" remote not found"}],"functionName":{"name":"mstore","nativeSrc":"11497:6:54","nodeType":"YulIdentifier","src":"11497:6:54"},"nativeSrc":"11497:47:54","nodeType":"YulFunctionCall","src":"11497:47:54"},"nativeSrc":"11497:47:54","nodeType":"YulExpressionStatement","src":"11497:47:54"},{"nativeSrc":"11553:27:54","nodeType":"YulAssignment","src":"11553:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11565:9:54","nodeType":"YulIdentifier","src":"11565:9:54"},{"kind":"number","nativeSrc":"11576:3:54","nodeType":"YulLiteral","src":"11576:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11561:3:54","nodeType":"YulIdentifier","src":"11561:3:54"},"nativeSrc":"11561:19:54","nodeType":"YulFunctionCall","src":"11561:19:54"},"variableNames":[{"name":"tail","nativeSrc":"11553:4:54","nodeType":"YulIdentifier","src":"11553:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11173:413:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11324:9:54","nodeType":"YulTypedName","src":"11324:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11338:4:54","nodeType":"YulTypedName","src":"11338:4:54","type":""}],"src":"11173:413:54"},{"body":{"nativeSrc":"11765:236:54","nodeType":"YulBlock","src":"11765:236:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11782:9:54","nodeType":"YulIdentifier","src":"11782:9:54"},{"kind":"number","nativeSrc":"11793:2:54","nodeType":"YulLiteral","src":"11793:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11775:6:54","nodeType":"YulIdentifier","src":"11775:6:54"},"nativeSrc":"11775:21:54","nodeType":"YulFunctionCall","src":"11775:21:54"},"nativeSrc":"11775:21:54","nodeType":"YulExpressionStatement","src":"11775:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11816:9:54","nodeType":"YulIdentifier","src":"11816:9:54"},{"kind":"number","nativeSrc":"11827:2:54","nodeType":"YulLiteral","src":"11827:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11812:3:54","nodeType":"YulIdentifier","src":"11812:3:54"},"nativeSrc":"11812:18:54","nodeType":"YulFunctionCall","src":"11812:18:54"},{"kind":"number","nativeSrc":"11832:2:54","nodeType":"YulLiteral","src":"11832:2:54","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"11805:6:54","nodeType":"YulIdentifier","src":"11805:6:54"},"nativeSrc":"11805:30:54","nodeType":"YulFunctionCall","src":"11805:30:54"},"nativeSrc":"11805:30:54","nodeType":"YulExpressionStatement","src":"11805:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11855:9:54","nodeType":"YulIdentifier","src":"11855:9:54"},{"kind":"number","nativeSrc":"11866:2:54","nodeType":"YulLiteral","src":"11866:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11851:3:54","nodeType":"YulIdentifier","src":"11851:3:54"},"nativeSrc":"11851:18:54","nodeType":"YulFunctionCall","src":"11851:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c6964","kind":"string","nativeSrc":"11871:34:54","nodeType":"YulLiteral","src":"11871:34:54","type":"","value":"OmnichainProposalSender: invalid"}],"functionName":{"name":"mstore","nativeSrc":"11844:6:54","nodeType":"YulIdentifier","src":"11844:6:54"},"nativeSrc":"11844:62:54","nodeType":"YulFunctionCall","src":"11844:62:54"},"nativeSrc":"11844:62:54","nodeType":"YulExpressionStatement","src":"11844:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11926:9:54","nodeType":"YulIdentifier","src":"11926:9:54"},{"kind":"number","nativeSrc":"11937:2:54","nodeType":"YulLiteral","src":"11937:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11922:3:54","nodeType":"YulIdentifier","src":"11922:3:54"},"nativeSrc":"11922:18:54","nodeType":"YulFunctionCall","src":"11922:18:54"},{"hexValue":"206e617469766520616d6f756e74","kind":"string","nativeSrc":"11942:16:54","nodeType":"YulLiteral","src":"11942:16:54","type":"","value":" native amount"}],"functionName":{"name":"mstore","nativeSrc":"11915:6:54","nodeType":"YulIdentifier","src":"11915:6:54"},"nativeSrc":"11915:44:54","nodeType":"YulFunctionCall","src":"11915:44:54"},"nativeSrc":"11915:44:54","nodeType":"YulExpressionStatement","src":"11915:44:54"},{"nativeSrc":"11968:27:54","nodeType":"YulAssignment","src":"11968:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11980:9:54","nodeType":"YulIdentifier","src":"11980:9:54"},{"kind":"number","nativeSrc":"11991:3:54","nodeType":"YulLiteral","src":"11991:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11976:3:54","nodeType":"YulIdentifier","src":"11976:3:54"},"nativeSrc":"11976:19:54","nodeType":"YulFunctionCall","src":"11976:19:54"},"variableNames":[{"name":"tail","nativeSrc":"11968:4:54","nodeType":"YulIdentifier","src":"11968:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11591:410:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11742:9:54","nodeType":"YulTypedName","src":"11742:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11756:4:54","nodeType":"YulTypedName","src":"11756:4:54","type":""}],"src":"11591:410:54"},{"body":{"nativeSrc":"12180:228:54","nodeType":"YulBlock","src":"12180:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12197:9:54","nodeType":"YulIdentifier","src":"12197:9:54"},{"kind":"number","nativeSrc":"12208:2:54","nodeType":"YulLiteral","src":"12208:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12190:6:54","nodeType":"YulIdentifier","src":"12190:6:54"},"nativeSrc":"12190:21:54","nodeType":"YulFunctionCall","src":"12190:21:54"},"nativeSrc":"12190:21:54","nodeType":"YulExpressionStatement","src":"12190:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12231:9:54","nodeType":"YulIdentifier","src":"12231:9:54"},{"kind":"number","nativeSrc":"12242:2:54","nodeType":"YulLiteral","src":"12242:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12227:3:54","nodeType":"YulIdentifier","src":"12227:3:54"},"nativeSrc":"12227:18:54","nodeType":"YulFunctionCall","src":"12227:18:54"},{"kind":"number","nativeSrc":"12247:2:54","nodeType":"YulLiteral","src":"12247:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"12220:6:54","nodeType":"YulIdentifier","src":"12220:6:54"},"nativeSrc":"12220:30:54","nodeType":"YulFunctionCall","src":"12220:30:54"},"nativeSrc":"12220:30:54","nodeType":"YulExpressionStatement","src":"12220:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12270:9:54","nodeType":"YulIdentifier","src":"12270:9:54"},{"kind":"number","nativeSrc":"12281:2:54","nodeType":"YulLiteral","src":"12281:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12266:3:54","nodeType":"YulIdentifier","src":"12266:3:54"},"nativeSrc":"12266:18:54","nodeType":"YulFunctionCall","src":"12266:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20656d7074792070","kind":"string","nativeSrc":"12286:34:54","nodeType":"YulLiteral","src":"12286:34:54","type":"","value":"OmnichainProposalSender: empty p"}],"functionName":{"name":"mstore","nativeSrc":"12259:6:54","nodeType":"YulIdentifier","src":"12259:6:54"},"nativeSrc":"12259:62:54","nodeType":"YulFunctionCall","src":"12259:62:54"},"nativeSrc":"12259:62:54","nodeType":"YulExpressionStatement","src":"12259:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12341:9:54","nodeType":"YulIdentifier","src":"12341:9:54"},{"kind":"number","nativeSrc":"12352:2:54","nodeType":"YulLiteral","src":"12352:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12337:3:54","nodeType":"YulIdentifier","src":"12337:3:54"},"nativeSrc":"12337:18:54","nodeType":"YulFunctionCall","src":"12337:18:54"},{"hexValue":"61796c6f6164","kind":"string","nativeSrc":"12357:8:54","nodeType":"YulLiteral","src":"12357:8:54","type":"","value":"ayload"}],"functionName":{"name":"mstore","nativeSrc":"12330:6:54","nodeType":"YulIdentifier","src":"12330:6:54"},"nativeSrc":"12330:36:54","nodeType":"YulFunctionCall","src":"12330:36:54"},"nativeSrc":"12330:36:54","nodeType":"YulExpressionStatement","src":"12330:36:54"},{"nativeSrc":"12375:27:54","nodeType":"YulAssignment","src":"12375:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12387:9:54","nodeType":"YulIdentifier","src":"12387:9:54"},{"kind":"number","nativeSrc":"12398:3:54","nodeType":"YulLiteral","src":"12398:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12383:3:54","nodeType":"YulIdentifier","src":"12383:3:54"},"nativeSrc":"12383:19:54","nodeType":"YulFunctionCall","src":"12383:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12375:4:54","nodeType":"YulIdentifier","src":"12375:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12006:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12157:9:54","nodeType":"YulTypedName","src":"12157:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12171:4:54","nodeType":"YulTypedName","src":"12171:4:54","type":""}],"src":"12006:402:54"},{"body":{"nativeSrc":"12587:232:54","nodeType":"YulBlock","src":"12587:232:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12604:9:54","nodeType":"YulIdentifier","src":"12604:9:54"},{"kind":"number","nativeSrc":"12615:2:54","nodeType":"YulLiteral","src":"12615:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12597:6:54","nodeType":"YulIdentifier","src":"12597:6:54"},"nativeSrc":"12597:21:54","nodeType":"YulFunctionCall","src":"12597:21:54"},"nativeSrc":"12597:21:54","nodeType":"YulExpressionStatement","src":"12597:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12638:9:54","nodeType":"YulIdentifier","src":"12638:9:54"},{"kind":"number","nativeSrc":"12649:2:54","nodeType":"YulLiteral","src":"12649:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12634:3:54","nodeType":"YulIdentifier","src":"12634:3:54"},"nativeSrc":"12634:18:54","nodeType":"YulFunctionCall","src":"12634:18:54"},{"kind":"number","nativeSrc":"12654:2:54","nodeType":"YulLiteral","src":"12654:2:54","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"12627:6:54","nodeType":"YulIdentifier","src":"12627:6:54"},"nativeSrc":"12627:30:54","nodeType":"YulFunctionCall","src":"12627:30:54"},"nativeSrc":"12627:30:54","nodeType":"YulExpressionStatement","src":"12627:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12677:9:54","nodeType":"YulIdentifier","src":"12677:9:54"},{"kind":"number","nativeSrc":"12688:2:54","nodeType":"YulLiteral","src":"12688:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12673:3:54","nodeType":"YulIdentifier","src":"12673:3:54"},"nativeSrc":"12673:18:54","nodeType":"YulFunctionCall","src":"12673:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f72","kind":"string","nativeSrc":"12693:34:54","nodeType":"YulLiteral","src":"12693:34:54","type":"","value":"OmnichainProposalSender: no stor"}],"functionName":{"name":"mstore","nativeSrc":"12666:6:54","nodeType":"YulIdentifier","src":"12666:6:54"},"nativeSrc":"12666:62:54","nodeType":"YulFunctionCall","src":"12666:62:54"},"nativeSrc":"12666:62:54","nodeType":"YulExpressionStatement","src":"12666:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12748:9:54","nodeType":"YulIdentifier","src":"12748:9:54"},{"kind":"number","nativeSrc":"12759:2:54","nodeType":"YulLiteral","src":"12759:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12744:3:54","nodeType":"YulIdentifier","src":"12744:3:54"},"nativeSrc":"12744:18:54","nodeType":"YulFunctionCall","src":"12744:18:54"},{"hexValue":"6564207061796c6f6164","kind":"string","nativeSrc":"12764:12:54","nodeType":"YulLiteral","src":"12764:12:54","type":"","value":"ed payload"}],"functionName":{"name":"mstore","nativeSrc":"12737:6:54","nodeType":"YulIdentifier","src":"12737:6:54"},"nativeSrc":"12737:40:54","nodeType":"YulFunctionCall","src":"12737:40:54"},"nativeSrc":"12737:40:54","nodeType":"YulExpressionStatement","src":"12737:40:54"},{"nativeSrc":"12786:27:54","nodeType":"YulAssignment","src":"12786:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12798:9:54","nodeType":"YulIdentifier","src":"12798:9:54"},{"kind":"number","nativeSrc":"12809:3:54","nodeType":"YulLiteral","src":"12809:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12794:3:54","nodeType":"YulIdentifier","src":"12794:3:54"},"nativeSrc":"12794:19:54","nodeType":"YulFunctionCall","src":"12794:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12786:4:54","nodeType":"YulIdentifier","src":"12786:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12413:406:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12564:9:54","nodeType":"YulTypedName","src":"12564:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12578:4:54","nodeType":"YulTypedName","src":"12578:4:54","type":""}],"src":"12413:406:54"},{"body":{"nativeSrc":"13063:347:54","nodeType":"YulBlock","src":"13063:347:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13080:9:54","nodeType":"YulIdentifier","src":"13080:9:54"},{"arguments":[{"name":"value0","nativeSrc":"13095:6:54","nodeType":"YulIdentifier","src":"13095:6:54"},{"kind":"number","nativeSrc":"13103:6:54","nodeType":"YulLiteral","src":"13103:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"13091:3:54","nodeType":"YulIdentifier","src":"13091:3:54"},"nativeSrc":"13091:19:54","nodeType":"YulFunctionCall","src":"13091:19:54"}],"functionName":{"name":"mstore","nativeSrc":"13073:6:54","nodeType":"YulIdentifier","src":"13073:6:54"},"nativeSrc":"13073:38:54","nodeType":"YulFunctionCall","src":"13073:38:54"},"nativeSrc":"13073:38:54","nodeType":"YulExpressionStatement","src":"13073:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13131:9:54","nodeType":"YulIdentifier","src":"13131:9:54"},{"kind":"number","nativeSrc":"13142:2:54","nodeType":"YulLiteral","src":"13142:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13127:3:54","nodeType":"YulIdentifier","src":"13127:3:54"},"nativeSrc":"13127:18:54","nodeType":"YulFunctionCall","src":"13127:18:54"},{"kind":"number","nativeSrc":"13147:3:54","nodeType":"YulLiteral","src":"13147:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"13120:6:54","nodeType":"YulIdentifier","src":"13120:6:54"},"nativeSrc":"13120:31:54","nodeType":"YulFunctionCall","src":"13120:31:54"},"nativeSrc":"13120:31:54","nodeType":"YulExpressionStatement","src":"13120:31:54"},{"nativeSrc":"13160:76:54","nodeType":"YulVariableDeclaration","src":"13160:76:54","value":{"arguments":[{"name":"value1","nativeSrc":"13200:6:54","nodeType":"YulIdentifier","src":"13200:6:54"},{"name":"value2","nativeSrc":"13208:6:54","nodeType":"YulIdentifier","src":"13208:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"13220:9:54","nodeType":"YulIdentifier","src":"13220:9:54"},{"kind":"number","nativeSrc":"13231:3:54","nodeType":"YulLiteral","src":"13231:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13216:3:54","nodeType":"YulIdentifier","src":"13216:3:54"},"nativeSrc":"13216:19:54","nodeType":"YulFunctionCall","src":"13216:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"13174:25:54","nodeType":"YulIdentifier","src":"13174:25:54"},"nativeSrc":"13174:62:54","nodeType":"YulFunctionCall","src":"13174:62:54"},"variables":[{"name":"tail_1","nativeSrc":"13164:6:54","nodeType":"YulTypedName","src":"13164:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13256:9:54","nodeType":"YulIdentifier","src":"13256:9:54"},{"kind":"number","nativeSrc":"13267:2:54","nodeType":"YulLiteral","src":"13267:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13252:3:54","nodeType":"YulIdentifier","src":"13252:3:54"},"nativeSrc":"13252:18:54","nodeType":"YulFunctionCall","src":"13252:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"13276:6:54","nodeType":"YulIdentifier","src":"13276:6:54"},{"name":"headStart","nativeSrc":"13284:9:54","nodeType":"YulIdentifier","src":"13284:9:54"}],"functionName":{"name":"sub","nativeSrc":"13272:3:54","nodeType":"YulIdentifier","src":"13272:3:54"},"nativeSrc":"13272:22:54","nodeType":"YulFunctionCall","src":"13272:22:54"}],"functionName":{"name":"mstore","nativeSrc":"13245:6:54","nodeType":"YulIdentifier","src":"13245:6:54"},"nativeSrc":"13245:50:54","nodeType":"YulFunctionCall","src":"13245:50:54"},"nativeSrc":"13245:50:54","nodeType":"YulExpressionStatement","src":"13245:50:54"},{"nativeSrc":"13304:57:54","nodeType":"YulAssignment","src":"13304:57:54","value":{"arguments":[{"name":"value3","nativeSrc":"13338:6:54","nodeType":"YulIdentifier","src":"13338:6:54"},{"name":"value4","nativeSrc":"13346:6:54","nodeType":"YulIdentifier","src":"13346:6:54"},{"name":"tail_1","nativeSrc":"13354:6:54","nodeType":"YulIdentifier","src":"13354:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"13312:25:54","nodeType":"YulIdentifier","src":"13312:25:54"},"nativeSrc":"13312:49:54","nodeType":"YulFunctionCall","src":"13312:49:54"},"variableNames":[{"name":"tail","nativeSrc":"13304:4:54","nodeType":"YulIdentifier","src":"13304:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13381:9:54","nodeType":"YulIdentifier","src":"13381:9:54"},{"kind":"number","nativeSrc":"13392:2:54","nodeType":"YulLiteral","src":"13392:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13377:3:54","nodeType":"YulIdentifier","src":"13377:3:54"},"nativeSrc":"13377:18:54","nodeType":"YulFunctionCall","src":"13377:18:54"},{"name":"value5","nativeSrc":"13397:6:54","nodeType":"YulIdentifier","src":"13397:6:54"}],"functionName":{"name":"mstore","nativeSrc":"13370:6:54","nodeType":"YulIdentifier","src":"13370:6:54"},"nativeSrc":"13370:34:54","nodeType":"YulFunctionCall","src":"13370:34:54"},"nativeSrc":"13370:34:54","nodeType":"YulExpressionStatement","src":"13370:34:54"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"12824:586:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12992:9:54","nodeType":"YulTypedName","src":"12992:9:54","type":""},{"name":"value5","nativeSrc":"13003:6:54","nodeType":"YulTypedName","src":"13003:6:54","type":""},{"name":"value4","nativeSrc":"13011:6:54","nodeType":"YulTypedName","src":"13011:6:54","type":""},{"name":"value3","nativeSrc":"13019:6:54","nodeType":"YulTypedName","src":"13019:6:54","type":""},{"name":"value2","nativeSrc":"13027:6:54","nodeType":"YulTypedName","src":"13027:6:54","type":""},{"name":"value1","nativeSrc":"13035:6:54","nodeType":"YulTypedName","src":"13035:6:54","type":""},{"name":"value0","nativeSrc":"13043:6:54","nodeType":"YulTypedName","src":"13043:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13054:4:54","nodeType":"YulTypedName","src":"13054:4:54","type":""}],"src":"12824:586:54"},{"body":{"nativeSrc":"13589:239:54","nodeType":"YulBlock","src":"13589:239:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13606:9:54","nodeType":"YulIdentifier","src":"13606:9:54"},{"kind":"number","nativeSrc":"13617:2:54","nodeType":"YulLiteral","src":"13617:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13599:6:54","nodeType":"YulIdentifier","src":"13599:6:54"},"nativeSrc":"13599:21:54","nodeType":"YulFunctionCall","src":"13599:21:54"},"nativeSrc":"13599:21:54","nodeType":"YulExpressionStatement","src":"13599:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13640:9:54","nodeType":"YulIdentifier","src":"13640:9:54"},{"kind":"number","nativeSrc":"13651:2:54","nodeType":"YulLiteral","src":"13651:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13636:3:54","nodeType":"YulIdentifier","src":"13636:3:54"},"nativeSrc":"13636:18:54","nodeType":"YulFunctionCall","src":"13636:18:54"},{"kind":"number","nativeSrc":"13656:2:54","nodeType":"YulLiteral","src":"13656:2:54","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"13629:6:54","nodeType":"YulIdentifier","src":"13629:6:54"},"nativeSrc":"13629:30:54","nodeType":"YulFunctionCall","src":"13629:30:54"},"nativeSrc":"13629:30:54","nodeType":"YulExpressionStatement","src":"13629:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13679:9:54","nodeType":"YulIdentifier","src":"13679:9:54"},{"kind":"number","nativeSrc":"13690:2:54","nodeType":"YulLiteral","src":"13690:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13675:3:54","nodeType":"YulIdentifier","src":"13675:3:54"},"nativeSrc":"13675:18:54","nodeType":"YulFunctionCall","src":"13675:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c6964","kind":"string","nativeSrc":"13695:34:54","nodeType":"YulLiteral","src":"13695:34:54","type":"","value":"OmnichainProposalSender: invalid"}],"functionName":{"name":"mstore","nativeSrc":"13668:6:54","nodeType":"YulIdentifier","src":"13668:6:54"},"nativeSrc":"13668:62:54","nodeType":"YulFunctionCall","src":"13668:62:54"},"nativeSrc":"13668:62:54","nodeType":"YulExpressionStatement","src":"13668:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13750:9:54","nodeType":"YulIdentifier","src":"13750:9:54"},{"kind":"number","nativeSrc":"13761:2:54","nodeType":"YulLiteral","src":"13761:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13746:3:54","nodeType":"YulIdentifier","src":"13746:3:54"},"nativeSrc":"13746:18:54","nodeType":"YulFunctionCall","src":"13746:18:54"},{"hexValue":"20657865637574696f6e20706172616d73","kind":"string","nativeSrc":"13766:19:54","nodeType":"YulLiteral","src":"13766:19:54","type":"","value":" execution params"}],"functionName":{"name":"mstore","nativeSrc":"13739:6:54","nodeType":"YulIdentifier","src":"13739:6:54"},"nativeSrc":"13739:47:54","nodeType":"YulFunctionCall","src":"13739:47:54"},"nativeSrc":"13739:47:54","nodeType":"YulExpressionStatement","src":"13739:47:54"},{"nativeSrc":"13795:27:54","nodeType":"YulAssignment","src":"13795:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"13807:9:54","nodeType":"YulIdentifier","src":"13807:9:54"},{"kind":"number","nativeSrc":"13818:3:54","nodeType":"YulLiteral","src":"13818:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13803:3:54","nodeType":"YulIdentifier","src":"13803:3:54"},"nativeSrc":"13803:19:54","nodeType":"YulFunctionCall","src":"13803:19:54"},"variableNames":[{"name":"tail","nativeSrc":"13795:4:54","nodeType":"YulIdentifier","src":"13795:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13415:413:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13566:9:54","nodeType":"YulTypedName","src":"13566:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13580:4:54","nodeType":"YulTypedName","src":"13580:4:54","type":""}],"src":"13415:413:54"},{"body":{"nativeSrc":"14024:14:54","nodeType":"YulBlock","src":"14024:14:54","statements":[{"nativeSrc":"14026:10:54","nodeType":"YulAssignment","src":"14026:10:54","value":{"name":"pos","nativeSrc":"14033:3:54","nodeType":"YulIdentifier","src":"14033:3:54"},"variableNames":[{"name":"end","nativeSrc":"14026:3:54","nodeType":"YulIdentifier","src":"14026:3:54"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"13833:205:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14008:3:54","nodeType":"YulTypedName","src":"14008:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14016:3:54","nodeType":"YulTypedName","src":"14016:3:54","type":""}],"src":"13833:205:54"},{"body":{"nativeSrc":"14217:161:54","nodeType":"YulBlock","src":"14217:161:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14234:9:54","nodeType":"YulIdentifier","src":"14234:9:54"},{"kind":"number","nativeSrc":"14245:2:54","nodeType":"YulLiteral","src":"14245:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14227:6:54","nodeType":"YulIdentifier","src":"14227:6:54"},"nativeSrc":"14227:21:54","nodeType":"YulFunctionCall","src":"14227:21:54"},"nativeSrc":"14227:21:54","nodeType":"YulExpressionStatement","src":"14227:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14268:9:54","nodeType":"YulIdentifier","src":"14268:9:54"},{"kind":"number","nativeSrc":"14279:2:54","nodeType":"YulLiteral","src":"14279:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14264:3:54","nodeType":"YulIdentifier","src":"14264:3:54"},"nativeSrc":"14264:18:54","nodeType":"YulFunctionCall","src":"14264:18:54"},{"kind":"number","nativeSrc":"14284:2:54","nodeType":"YulLiteral","src":"14284:2:54","type":"","value":"11"}],"functionName":{"name":"mstore","nativeSrc":"14257:6:54","nodeType":"YulIdentifier","src":"14257:6:54"},"nativeSrc":"14257:30:54","nodeType":"YulFunctionCall","src":"14257:30:54"},"nativeSrc":"14257:30:54","nodeType":"YulExpressionStatement","src":"14257:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14307:9:54","nodeType":"YulIdentifier","src":"14307:9:54"},{"kind":"number","nativeSrc":"14318:2:54","nodeType":"YulLiteral","src":"14318:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14303:3:54","nodeType":"YulIdentifier","src":"14303:3:54"},"nativeSrc":"14303:18:54","nodeType":"YulFunctionCall","src":"14303:18:54"},{"hexValue":"43616c6c206661696c6564","kind":"string","nativeSrc":"14323:13:54","nodeType":"YulLiteral","src":"14323:13:54","type":"","value":"Call failed"}],"functionName":{"name":"mstore","nativeSrc":"14296:6:54","nodeType":"YulIdentifier","src":"14296:6:54"},"nativeSrc":"14296:41:54","nodeType":"YulFunctionCall","src":"14296:41:54"},"nativeSrc":"14296:41:54","nodeType":"YulExpressionStatement","src":"14296:41:54"},{"nativeSrc":"14346:26:54","nodeType":"YulAssignment","src":"14346:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"14358:9:54","nodeType":"YulIdentifier","src":"14358:9:54"},{"kind":"number","nativeSrc":"14369:2:54","nodeType":"YulLiteral","src":"14369:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14354:3:54","nodeType":"YulIdentifier","src":"14354:3:54"},"nativeSrc":"14354:18:54","nodeType":"YulFunctionCall","src":"14354:18:54"},"variableNames":[{"name":"tail","nativeSrc":"14346:4:54","nodeType":"YulIdentifier","src":"14346:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14043:335:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14194:9:54","nodeType":"YulTypedName","src":"14194:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14208:4:54","nodeType":"YulTypedName","src":"14208:4:54","type":""}],"src":"14043:335:54"},{"body":{"nativeSrc":"14557:235:54","nodeType":"YulBlock","src":"14557:235:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14574:9:54","nodeType":"YulIdentifier","src":"14574:9:54"},{"kind":"number","nativeSrc":"14585:2:54","nodeType":"YulLiteral","src":"14585:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14567:6:54","nodeType":"YulIdentifier","src":"14567:6:54"},"nativeSrc":"14567:21:54","nodeType":"YulFunctionCall","src":"14567:21:54"},"nativeSrc":"14567:21:54","nodeType":"YulExpressionStatement","src":"14567:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14608:9:54","nodeType":"YulIdentifier","src":"14608:9:54"},{"kind":"number","nativeSrc":"14619:2:54","nodeType":"YulLiteral","src":"14619:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14604:3:54","nodeType":"YulIdentifier","src":"14604:3:54"},"nativeSrc":"14604:18:54","nodeType":"YulFunctionCall","src":"14604:18:54"},{"kind":"number","nativeSrc":"14624:2:54","nodeType":"YulLiteral","src":"14624:2:54","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"14597:6:54","nodeType":"YulIdentifier","src":"14597:6:54"},"nativeSrc":"14597:30:54","nodeType":"YulFunctionCall","src":"14597:30:54"},"nativeSrc":"14597:30:54","nodeType":"YulExpressionStatement","src":"14597:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14647:9:54","nodeType":"YulIdentifier","src":"14647:9:54"},{"kind":"number","nativeSrc":"14658:2:54","nodeType":"YulLiteral","src":"14658:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14643:3:54","nodeType":"YulIdentifier","src":"14643:3:54"},"nativeSrc":"14643:18:54","nodeType":"YulFunctionCall","src":"14643:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2076616c75652063","kind":"string","nativeSrc":"14663:34:54","nodeType":"YulLiteral","src":"14663:34:54","type":"","value":"OmnichainProposalSender: value c"}],"functionName":{"name":"mstore","nativeSrc":"14636:6:54","nodeType":"YulIdentifier","src":"14636:6:54"},"nativeSrc":"14636:62:54","nodeType":"YulFunctionCall","src":"14636:62:54"},"nativeSrc":"14636:62:54","nodeType":"YulExpressionStatement","src":"14636:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14718:9:54","nodeType":"YulIdentifier","src":"14718:9:54"},{"kind":"number","nativeSrc":"14729:2:54","nodeType":"YulLiteral","src":"14729:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14714:3:54","nodeType":"YulIdentifier","src":"14714:3:54"},"nativeSrc":"14714:18:54","nodeType":"YulFunctionCall","src":"14714:18:54"},{"hexValue":"616e6e6f74206265207a65726f","kind":"string","nativeSrc":"14734:15:54","nodeType":"YulLiteral","src":"14734:15:54","type":"","value":"annot be zero"}],"functionName":{"name":"mstore","nativeSrc":"14707:6:54","nodeType":"YulIdentifier","src":"14707:6:54"},"nativeSrc":"14707:43:54","nodeType":"YulFunctionCall","src":"14707:43:54"},"nativeSrc":"14707:43:54","nodeType":"YulExpressionStatement","src":"14707:43:54"},{"nativeSrc":"14759:27:54","nodeType":"YulAssignment","src":"14759:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"14771:9:54","nodeType":"YulIdentifier","src":"14771:9:54"},{"kind":"number","nativeSrc":"14782:3:54","nodeType":"YulLiteral","src":"14782:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14767:3:54","nodeType":"YulIdentifier","src":"14767:3:54"},"nativeSrc":"14767:19:54","nodeType":"YulFunctionCall","src":"14767:19:54"},"variableNames":[{"name":"tail","nativeSrc":"14759:4:54","nodeType":"YulIdentifier","src":"14759:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14383:409:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14534:9:54","nodeType":"YulTypedName","src":"14534:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14548:4:54","nodeType":"YulTypedName","src":"14548:4:54","type":""}],"src":"14383:409:54"},{"body":{"nativeSrc":"14971:296:54","nodeType":"YulBlock","src":"14971:296:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14988:9:54","nodeType":"YulIdentifier","src":"14988:9:54"},{"kind":"number","nativeSrc":"14999:2:54","nodeType":"YulLiteral","src":"14999:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14981:6:54","nodeType":"YulIdentifier","src":"14981:6:54"},"nativeSrc":"14981:21:54","nodeType":"YulFunctionCall","src":"14981:21:54"},"nativeSrc":"14981:21:54","nodeType":"YulExpressionStatement","src":"14981:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15022:9:54","nodeType":"YulIdentifier","src":"15022:9:54"},{"kind":"number","nativeSrc":"15033:2:54","nodeType":"YulLiteral","src":"15033:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15018:3:54","nodeType":"YulIdentifier","src":"15018:3:54"},"nativeSrc":"15018:18:54","nodeType":"YulFunctionCall","src":"15018:18:54"},{"kind":"number","nativeSrc":"15038:2:54","nodeType":"YulLiteral","src":"15038:2:54","type":"","value":"66"}],"functionName":{"name":"mstore","nativeSrc":"15011:6:54","nodeType":"YulIdentifier","src":"15011:6:54"},"nativeSrc":"15011:30:54","nodeType":"YulFunctionCall","src":"15011:30:54"},"nativeSrc":"15011:30:54","nodeType":"YulExpressionStatement","src":"15011:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15061:9:54","nodeType":"YulIdentifier","src":"15061:9:54"},{"kind":"number","nativeSrc":"15072:2:54","nodeType":"YulLiteral","src":"15072:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15057:3:54","nodeType":"YulIdentifier","src":"15057:3:54"},"nativeSrc":"15057:18:54","nodeType":"YulFunctionCall","src":"15057:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e61","kind":"string","nativeSrc":"15077:34:54","nodeType":"YulLiteral","src":"15077:34:54","type":"","value":"OmnichainProposalSender: destina"}],"functionName":{"name":"mstore","nativeSrc":"15050:6:54","nodeType":"YulIdentifier","src":"15050:6:54"},"nativeSrc":"15050:62:54","nodeType":"YulFunctionCall","src":"15050:62:54"},"nativeSrc":"15050:62:54","nodeType":"YulExpressionStatement","src":"15050:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15132:9:54","nodeType":"YulIdentifier","src":"15132:9:54"},{"kind":"number","nativeSrc":"15143:2:54","nodeType":"YulLiteral","src":"15143:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15128:3:54","nodeType":"YulIdentifier","src":"15128:3:54"},"nativeSrc":"15128:18:54","nodeType":"YulFunctionCall","src":"15128:18:54"},{"hexValue":"74696f6e20636861696e206973206e6f742061207472757374656420736f7572","kind":"string","nativeSrc":"15148:34:54","nodeType":"YulLiteral","src":"15148:34:54","type":"","value":"tion chain is not a trusted sour"}],"functionName":{"name":"mstore","nativeSrc":"15121:6:54","nodeType":"YulIdentifier","src":"15121:6:54"},"nativeSrc":"15121:62:54","nodeType":"YulFunctionCall","src":"15121:62:54"},"nativeSrc":"15121:62:54","nodeType":"YulExpressionStatement","src":"15121:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15203:9:54","nodeType":"YulIdentifier","src":"15203:9:54"},{"kind":"number","nativeSrc":"15214:3:54","nodeType":"YulLiteral","src":"15214:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15199:3:54","nodeType":"YulIdentifier","src":"15199:3:54"},"nativeSrc":"15199:19:54","nodeType":"YulFunctionCall","src":"15199:19:54"},{"hexValue":"6365","kind":"string","nativeSrc":"15220:4:54","nodeType":"YulLiteral","src":"15220:4:54","type":"","value":"ce"}],"functionName":{"name":"mstore","nativeSrc":"15192:6:54","nodeType":"YulIdentifier","src":"15192:6:54"},"nativeSrc":"15192:33:54","nodeType":"YulFunctionCall","src":"15192:33:54"},"nativeSrc":"15192:33:54","nodeType":"YulExpressionStatement","src":"15192:33:54"},{"nativeSrc":"15234:27:54","nodeType":"YulAssignment","src":"15234:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"15246:9:54","nodeType":"YulIdentifier","src":"15246:9:54"},{"kind":"number","nativeSrc":"15257:3:54","nodeType":"YulLiteral","src":"15257:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"15242:3:54","nodeType":"YulIdentifier","src":"15242:3:54"},"nativeSrc":"15242:19:54","nodeType":"YulFunctionCall","src":"15242:19:54"},"variableNames":[{"name":"tail","nativeSrc":"15234:4:54","nodeType":"YulIdentifier","src":"15234:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14797:470:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14948:9:54","nodeType":"YulTypedName","src":"14948:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14962:4:54","nodeType":"YulTypedName","src":"14962:4:54","type":""}],"src":"14797:470:54"},{"body":{"nativeSrc":"15304:152:54","nodeType":"YulBlock","src":"15304:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15321:1:54","nodeType":"YulLiteral","src":"15321:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"15324:77:54","nodeType":"YulLiteral","src":"15324:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15314:6:54","nodeType":"YulIdentifier","src":"15314:6:54"},"nativeSrc":"15314:88:54","nodeType":"YulFunctionCall","src":"15314:88:54"},"nativeSrc":"15314:88:54","nodeType":"YulExpressionStatement","src":"15314:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15418:1:54","nodeType":"YulLiteral","src":"15418:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"15421:4:54","nodeType":"YulLiteral","src":"15421:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"15411:6:54","nodeType":"YulIdentifier","src":"15411:6:54"},"nativeSrc":"15411:15:54","nodeType":"YulFunctionCall","src":"15411:15:54"},"nativeSrc":"15411:15:54","nodeType":"YulExpressionStatement","src":"15411:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15442:1:54","nodeType":"YulLiteral","src":"15442:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"15445:4:54","nodeType":"YulLiteral","src":"15445:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15435:6:54","nodeType":"YulIdentifier","src":"15435:6:54"},"nativeSrc":"15435:15:54","nodeType":"YulFunctionCall","src":"15435:15:54"},"nativeSrc":"15435:15:54","nodeType":"YulExpressionStatement","src":"15435:15:54"}]},"name":"panic_error_0x11","nativeSrc":"15272:184:54","nodeType":"YulFunctionDefinition","src":"15272:184:54"},{"body":{"nativeSrc":"15508:148:54","nodeType":"YulBlock","src":"15508:148:54","statements":[{"body":{"nativeSrc":"15599:22:54","nodeType":"YulBlock","src":"15599:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"15601:16:54","nodeType":"YulIdentifier","src":"15601:16:54"},"nativeSrc":"15601:18:54","nodeType":"YulFunctionCall","src":"15601:18:54"},"nativeSrc":"15601:18:54","nodeType":"YulExpressionStatement","src":"15601:18:54"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"15524:5:54","nodeType":"YulIdentifier","src":"15524:5:54"},{"kind":"number","nativeSrc":"15531:66:54","nodeType":"YulLiteral","src":"15531:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"15521:2:54","nodeType":"YulIdentifier","src":"15521:2:54"},"nativeSrc":"15521:77:54","nodeType":"YulFunctionCall","src":"15521:77:54"},"nativeSrc":"15518:103:54","nodeType":"YulIf","src":"15518:103:54"},{"nativeSrc":"15630:20:54","nodeType":"YulAssignment","src":"15630:20:54","value":{"arguments":[{"name":"value","nativeSrc":"15641:5:54","nodeType":"YulIdentifier","src":"15641:5:54"},{"kind":"number","nativeSrc":"15648:1:54","nodeType":"YulLiteral","src":"15648:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15637:3:54","nodeType":"YulIdentifier","src":"15637:3:54"},"nativeSrc":"15637:13:54","nodeType":"YulFunctionCall","src":"15637:13:54"},"variableNames":[{"name":"ret","nativeSrc":"15630:3:54","nodeType":"YulIdentifier","src":"15630:3:54"}]}]},"name":"increment_t_uint256","nativeSrc":"15461:195:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15490:5:54","nodeType":"YulTypedName","src":"15490:5:54","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"15500:3:54","nodeType":"YulTypedName","src":"15500:3:54","type":""}],"src":"15461:195:54"},{"body":{"nativeSrc":"15818:158:54","nodeType":"YulBlock","src":"15818:158:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15835:9:54","nodeType":"YulIdentifier","src":"15835:9:54"},{"kind":"number","nativeSrc":"15846:2:54","nodeType":"YulLiteral","src":"15846:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"15828:6:54","nodeType":"YulIdentifier","src":"15828:6:54"},"nativeSrc":"15828:21:54","nodeType":"YulFunctionCall","src":"15828:21:54"},"nativeSrc":"15828:21:54","nodeType":"YulExpressionStatement","src":"15828:21:54"},{"nativeSrc":"15858:69:54","nodeType":"YulAssignment","src":"15858:69:54","value":{"arguments":[{"name":"value0","nativeSrc":"15892:6:54","nodeType":"YulIdentifier","src":"15892:6:54"},{"name":"value1","nativeSrc":"15900:6:54","nodeType":"YulIdentifier","src":"15900:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"15912:9:54","nodeType":"YulIdentifier","src":"15912:9:54"},{"kind":"number","nativeSrc":"15923:2:54","nodeType":"YulLiteral","src":"15923:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15908:3:54","nodeType":"YulIdentifier","src":"15908:3:54"},"nativeSrc":"15908:18:54","nodeType":"YulFunctionCall","src":"15908:18:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"15866:25:54","nodeType":"YulIdentifier","src":"15866:25:54"},"nativeSrc":"15866:61:54","nodeType":"YulFunctionCall","src":"15866:61:54"},"variableNames":[{"name":"tail","nativeSrc":"15858:4:54","nodeType":"YulIdentifier","src":"15858:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15947:9:54","nodeType":"YulIdentifier","src":"15947:9:54"},{"kind":"number","nativeSrc":"15958:2:54","nodeType":"YulLiteral","src":"15958:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15943:3:54","nodeType":"YulIdentifier","src":"15943:3:54"},"nativeSrc":"15943:18:54","nodeType":"YulFunctionCall","src":"15943:18:54"},{"name":"value2","nativeSrc":"15963:6:54","nodeType":"YulIdentifier","src":"15963:6:54"}],"functionName":{"name":"mstore","nativeSrc":"15936:6:54","nodeType":"YulIdentifier","src":"15936:6:54"},"nativeSrc":"15936:34:54","nodeType":"YulFunctionCall","src":"15936:34:54"},"nativeSrc":"15936:34:54","nodeType":"YulExpressionStatement","src":"15936:34:54"}]},"name":"abi_encode_tuple_t_bytes_calldata_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"15661:315:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15771:9:54","nodeType":"YulTypedName","src":"15771:9:54","type":""},{"name":"value2","nativeSrc":"15782:6:54","nodeType":"YulTypedName","src":"15782:6:54","type":""},{"name":"value1","nativeSrc":"15790:6:54","nodeType":"YulTypedName","src":"15790:6:54","type":""},{"name":"value0","nativeSrc":"15798:6:54","nodeType":"YulTypedName","src":"15798:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15809:4:54","nodeType":"YulTypedName","src":"15809:4:54","type":""}],"src":"15661:315:54"},{"body":{"nativeSrc":"16300:568:54","nodeType":"YulBlock","src":"16300:568:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16317:9:54","nodeType":"YulIdentifier","src":"16317:9:54"},{"arguments":[{"name":"value0","nativeSrc":"16332:6:54","nodeType":"YulIdentifier","src":"16332:6:54"},{"kind":"number","nativeSrc":"16340:6:54","nodeType":"YulLiteral","src":"16340:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"16328:3:54","nodeType":"YulIdentifier","src":"16328:3:54"},"nativeSrc":"16328:19:54","nodeType":"YulFunctionCall","src":"16328:19:54"}],"functionName":{"name":"mstore","nativeSrc":"16310:6:54","nodeType":"YulIdentifier","src":"16310:6:54"},"nativeSrc":"16310:38:54","nodeType":"YulFunctionCall","src":"16310:38:54"},"nativeSrc":"16310:38:54","nodeType":"YulExpressionStatement","src":"16310:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16368:9:54","nodeType":"YulIdentifier","src":"16368:9:54"},{"kind":"number","nativeSrc":"16379:2:54","nodeType":"YulLiteral","src":"16379:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16364:3:54","nodeType":"YulIdentifier","src":"16364:3:54"},"nativeSrc":"16364:18:54","nodeType":"YulFunctionCall","src":"16364:18:54"},{"kind":"number","nativeSrc":"16384:3:54","nodeType":"YulLiteral","src":"16384:3:54","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"16357:6:54","nodeType":"YulIdentifier","src":"16357:6:54"},"nativeSrc":"16357:31:54","nodeType":"YulFunctionCall","src":"16357:31:54"},"nativeSrc":"16357:31:54","nodeType":"YulExpressionStatement","src":"16357:31:54"},{"nativeSrc":"16397:59:54","nodeType":"YulVariableDeclaration","src":"16397:59:54","value":{"arguments":[{"name":"value1","nativeSrc":"16428:6:54","nodeType":"YulIdentifier","src":"16428:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"16440:9:54","nodeType":"YulIdentifier","src":"16440:9:54"},{"kind":"number","nativeSrc":"16451:3:54","nodeType":"YulLiteral","src":"16451:3:54","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"16436:3:54","nodeType":"YulIdentifier","src":"16436:3:54"},"nativeSrc":"16436:19:54","nodeType":"YulFunctionCall","src":"16436:19:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"16411:16:54","nodeType":"YulIdentifier","src":"16411:16:54"},"nativeSrc":"16411:45:54","nodeType":"YulFunctionCall","src":"16411:45:54"},"variables":[{"name":"tail_1","nativeSrc":"16401:6:54","nodeType":"YulTypedName","src":"16401:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16476:9:54","nodeType":"YulIdentifier","src":"16476:9:54"},{"kind":"number","nativeSrc":"16487:2:54","nodeType":"YulLiteral","src":"16487:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16472:3:54","nodeType":"YulIdentifier","src":"16472:3:54"},"nativeSrc":"16472:18:54","nodeType":"YulFunctionCall","src":"16472:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"16496:6:54","nodeType":"YulIdentifier","src":"16496:6:54"},{"name":"headStart","nativeSrc":"16504:9:54","nodeType":"YulIdentifier","src":"16504:9:54"}],"functionName":{"name":"sub","nativeSrc":"16492:3:54","nodeType":"YulIdentifier","src":"16492:3:54"},"nativeSrc":"16492:22:54","nodeType":"YulFunctionCall","src":"16492:22:54"}],"functionName":{"name":"mstore","nativeSrc":"16465:6:54","nodeType":"YulIdentifier","src":"16465:6:54"},"nativeSrc":"16465:50:54","nodeType":"YulFunctionCall","src":"16465:50:54"},"nativeSrc":"16465:50:54","nodeType":"YulExpressionStatement","src":"16465:50:54"},{"nativeSrc":"16524:46:54","nodeType":"YulVariableDeclaration","src":"16524:46:54","value":{"arguments":[{"name":"value2","nativeSrc":"16555:6:54","nodeType":"YulIdentifier","src":"16555:6:54"},{"name":"tail_1","nativeSrc":"16563:6:54","nodeType":"YulIdentifier","src":"16563:6:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"16538:16:54","nodeType":"YulIdentifier","src":"16538:16:54"},"nativeSrc":"16538:32:54","nodeType":"YulFunctionCall","src":"16538:32:54"},"variables":[{"name":"tail_2","nativeSrc":"16528:6:54","nodeType":"YulTypedName","src":"16528:6:54","type":""}]},{"nativeSrc":"16579:52:54","nodeType":"YulVariableDeclaration","src":"16579:52:54","value":{"kind":"number","nativeSrc":"16589:42:54","nodeType":"YulLiteral","src":"16589:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"16583:2:54","nodeType":"YulTypedName","src":"16583:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16651:9:54","nodeType":"YulIdentifier","src":"16651:9:54"},{"kind":"number","nativeSrc":"16662:2:54","nodeType":"YulLiteral","src":"16662:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16647:3:54","nodeType":"YulIdentifier","src":"16647:3:54"},"nativeSrc":"16647:18:54","nodeType":"YulFunctionCall","src":"16647:18:54"},{"arguments":[{"name":"value3","nativeSrc":"16671:6:54","nodeType":"YulIdentifier","src":"16671:6:54"},{"name":"_1","nativeSrc":"16679:2:54","nodeType":"YulIdentifier","src":"16679:2:54"}],"functionName":{"name":"and","nativeSrc":"16667:3:54","nodeType":"YulIdentifier","src":"16667:3:54"},"nativeSrc":"16667:15:54","nodeType":"YulFunctionCall","src":"16667:15:54"}],"functionName":{"name":"mstore","nativeSrc":"16640:6:54","nodeType":"YulIdentifier","src":"16640:6:54"},"nativeSrc":"16640:43:54","nodeType":"YulFunctionCall","src":"16640:43:54"},"nativeSrc":"16640:43:54","nodeType":"YulExpressionStatement","src":"16640:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16703:9:54","nodeType":"YulIdentifier","src":"16703:9:54"},{"kind":"number","nativeSrc":"16714:3:54","nodeType":"YulLiteral","src":"16714:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16699:3:54","nodeType":"YulIdentifier","src":"16699:3:54"},"nativeSrc":"16699:19:54","nodeType":"YulFunctionCall","src":"16699:19:54"},{"arguments":[{"name":"value4","nativeSrc":"16724:6:54","nodeType":"YulIdentifier","src":"16724:6:54"},{"name":"_1","nativeSrc":"16732:2:54","nodeType":"YulIdentifier","src":"16732:2:54"}],"functionName":{"name":"and","nativeSrc":"16720:3:54","nodeType":"YulIdentifier","src":"16720:3:54"},"nativeSrc":"16720:15:54","nodeType":"YulFunctionCall","src":"16720:15:54"}],"functionName":{"name":"mstore","nativeSrc":"16692:6:54","nodeType":"YulIdentifier","src":"16692:6:54"},"nativeSrc":"16692:44:54","nodeType":"YulFunctionCall","src":"16692:44:54"},"nativeSrc":"16692:44:54","nodeType":"YulExpressionStatement","src":"16692:44:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16756:9:54","nodeType":"YulIdentifier","src":"16756:9:54"},{"kind":"number","nativeSrc":"16767:3:54","nodeType":"YulLiteral","src":"16767:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"16752:3:54","nodeType":"YulIdentifier","src":"16752:3:54"},"nativeSrc":"16752:19:54","nodeType":"YulFunctionCall","src":"16752:19:54"},{"arguments":[{"name":"tail_2","nativeSrc":"16777:6:54","nodeType":"YulIdentifier","src":"16777:6:54"},{"name":"headStart","nativeSrc":"16785:9:54","nodeType":"YulIdentifier","src":"16785:9:54"}],"functionName":{"name":"sub","nativeSrc":"16773:3:54","nodeType":"YulIdentifier","src":"16773:3:54"},"nativeSrc":"16773:22:54","nodeType":"YulFunctionCall","src":"16773:22:54"}],"functionName":{"name":"mstore","nativeSrc":"16745:6:54","nodeType":"YulIdentifier","src":"16745:6:54"},"nativeSrc":"16745:51:54","nodeType":"YulFunctionCall","src":"16745:51:54"},"nativeSrc":"16745:51:54","nodeType":"YulExpressionStatement","src":"16745:51:54"},{"nativeSrc":"16805:57:54","nodeType":"YulAssignment","src":"16805:57:54","value":{"arguments":[{"name":"value5","nativeSrc":"16839:6:54","nodeType":"YulIdentifier","src":"16839:6:54"},{"name":"value6","nativeSrc":"16847:6:54","nodeType":"YulIdentifier","src":"16847:6:54"},{"name":"tail_2","nativeSrc":"16855:6:54","nodeType":"YulIdentifier","src":"16855:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"16813:25:54","nodeType":"YulIdentifier","src":"16813:25:54"},"nativeSrc":"16813:49:54","nodeType":"YulFunctionCall","src":"16813:49:54"},"variableNames":[{"name":"tail","nativeSrc":"16805:4:54","nodeType":"YulIdentifier","src":"16805:4:54"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"15981:887:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16221:9:54","nodeType":"YulTypedName","src":"16221:9:54","type":""},{"name":"value6","nativeSrc":"16232:6:54","nodeType":"YulTypedName","src":"16232:6:54","type":""},{"name":"value5","nativeSrc":"16240:6:54","nodeType":"YulTypedName","src":"16240:6:54","type":""},{"name":"value4","nativeSrc":"16248:6:54","nodeType":"YulTypedName","src":"16248:6:54","type":""},{"name":"value3","nativeSrc":"16256:6:54","nodeType":"YulTypedName","src":"16256:6:54","type":""},{"name":"value2","nativeSrc":"16264:6:54","nodeType":"YulTypedName","src":"16264:6:54","type":""},{"name":"value1","nativeSrc":"16272:6:54","nodeType":"YulTypedName","src":"16272:6:54","type":""},{"name":"value0","nativeSrc":"16280:6:54","nodeType":"YulTypedName","src":"16280:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16291:4:54","nodeType":"YulTypedName","src":"16291:4:54","type":""}],"src":"15981:887:54"},{"body":{"nativeSrc":"17102:330:54","nodeType":"YulBlock","src":"17102:330:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17119:9:54","nodeType":"YulIdentifier","src":"17119:9:54"},{"arguments":[{"name":"value0","nativeSrc":"17134:6:54","nodeType":"YulIdentifier","src":"17134:6:54"},{"kind":"number","nativeSrc":"17142:6:54","nodeType":"YulLiteral","src":"17142:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"17130:3:54","nodeType":"YulIdentifier","src":"17130:3:54"},"nativeSrc":"17130:19:54","nodeType":"YulFunctionCall","src":"17130:19:54"}],"functionName":{"name":"mstore","nativeSrc":"17112:6:54","nodeType":"YulIdentifier","src":"17112:6:54"},"nativeSrc":"17112:38:54","nodeType":"YulFunctionCall","src":"17112:38:54"},"nativeSrc":"17112:38:54","nodeType":"YulExpressionStatement","src":"17112:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17170:9:54","nodeType":"YulIdentifier","src":"17170:9:54"},{"kind":"number","nativeSrc":"17181:2:54","nodeType":"YulLiteral","src":"17181:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17166:3:54","nodeType":"YulIdentifier","src":"17166:3:54"},"nativeSrc":"17166:18:54","nodeType":"YulFunctionCall","src":"17166:18:54"},{"kind":"number","nativeSrc":"17186:3:54","nodeType":"YulLiteral","src":"17186:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17159:6:54","nodeType":"YulIdentifier","src":"17159:6:54"},"nativeSrc":"17159:31:54","nodeType":"YulFunctionCall","src":"17159:31:54"},"nativeSrc":"17159:31:54","nodeType":"YulExpressionStatement","src":"17159:31:54"},{"nativeSrc":"17199:59:54","nodeType":"YulVariableDeclaration","src":"17199:59:54","value":{"arguments":[{"name":"value1","nativeSrc":"17230:6:54","nodeType":"YulIdentifier","src":"17230:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"17242:9:54","nodeType":"YulIdentifier","src":"17242:9:54"},{"kind":"number","nativeSrc":"17253:3:54","nodeType":"YulLiteral","src":"17253:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17238:3:54","nodeType":"YulIdentifier","src":"17238:3:54"},"nativeSrc":"17238:19:54","nodeType":"YulFunctionCall","src":"17238:19:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"17213:16:54","nodeType":"YulIdentifier","src":"17213:16:54"},"nativeSrc":"17213:45:54","nodeType":"YulFunctionCall","src":"17213:45:54"},"variables":[{"name":"tail_1","nativeSrc":"17203:6:54","nodeType":"YulTypedName","src":"17203:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17278:9:54","nodeType":"YulIdentifier","src":"17278:9:54"},{"kind":"number","nativeSrc":"17289:2:54","nodeType":"YulLiteral","src":"17289:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17274:3:54","nodeType":"YulIdentifier","src":"17274:3:54"},"nativeSrc":"17274:18:54","nodeType":"YulFunctionCall","src":"17274:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"17298:6:54","nodeType":"YulIdentifier","src":"17298:6:54"},{"name":"headStart","nativeSrc":"17306:9:54","nodeType":"YulIdentifier","src":"17306:9:54"}],"functionName":{"name":"sub","nativeSrc":"17294:3:54","nodeType":"YulIdentifier","src":"17294:3:54"},"nativeSrc":"17294:22:54","nodeType":"YulFunctionCall","src":"17294:22:54"}],"functionName":{"name":"mstore","nativeSrc":"17267:6:54","nodeType":"YulIdentifier","src":"17267:6:54"},"nativeSrc":"17267:50:54","nodeType":"YulFunctionCall","src":"17267:50:54"},"nativeSrc":"17267:50:54","nodeType":"YulExpressionStatement","src":"17267:50:54"},{"nativeSrc":"17326:57:54","nodeType":"YulAssignment","src":"17326:57:54","value":{"arguments":[{"name":"value2","nativeSrc":"17360:6:54","nodeType":"YulIdentifier","src":"17360:6:54"},{"name":"value3","nativeSrc":"17368:6:54","nodeType":"YulIdentifier","src":"17368:6:54"},{"name":"tail_1","nativeSrc":"17376:6:54","nodeType":"YulIdentifier","src":"17376:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17334:25:54","nodeType":"YulIdentifier","src":"17334:25:54"},"nativeSrc":"17334:49:54","nodeType":"YulFunctionCall","src":"17334:49:54"},"variableNames":[{"name":"tail","nativeSrc":"17326:4:54","nodeType":"YulIdentifier","src":"17326:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17403:9:54","nodeType":"YulIdentifier","src":"17403:9:54"},{"kind":"number","nativeSrc":"17414:2:54","nodeType":"YulLiteral","src":"17414:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17399:3:54","nodeType":"YulIdentifier","src":"17399:3:54"},"nativeSrc":"17399:18:54","nodeType":"YulFunctionCall","src":"17399:18:54"},{"name":"value4","nativeSrc":"17419:6:54","nodeType":"YulIdentifier","src":"17419:6:54"}],"functionName":{"name":"mstore","nativeSrc":"17392:6:54","nodeType":"YulIdentifier","src":"17392:6:54"},"nativeSrc":"17392:34:54","nodeType":"YulFunctionCall","src":"17392:34:54"},"nativeSrc":"17392:34:54","nodeType":"YulExpressionStatement","src":"17392:34:54"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"16873:559:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17039:9:54","nodeType":"YulTypedName","src":"17039:9:54","type":""},{"name":"value4","nativeSrc":"17050:6:54","nodeType":"YulTypedName","src":"17050:6:54","type":""},{"name":"value3","nativeSrc":"17058:6:54","nodeType":"YulTypedName","src":"17058:6:54","type":""},{"name":"value2","nativeSrc":"17066:6:54","nodeType":"YulTypedName","src":"17066:6:54","type":""},{"name":"value1","nativeSrc":"17074:6:54","nodeType":"YulTypedName","src":"17074:6:54","type":""},{"name":"value0","nativeSrc":"17082:6:54","nodeType":"YulTypedName","src":"17082:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17093:4:54","nodeType":"YulTypedName","src":"17093:4:54","type":""}],"src":"16873:559:54"},{"body":{"nativeSrc":"17686:388:54","nodeType":"YulBlock","src":"17686:388:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17703:9:54","nodeType":"YulIdentifier","src":"17703:9:54"},{"kind":"number","nativeSrc":"17714:3:54","nodeType":"YulLiteral","src":"17714:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"17696:6:54","nodeType":"YulIdentifier","src":"17696:6:54"},"nativeSrc":"17696:22:54","nodeType":"YulFunctionCall","src":"17696:22:54"},"nativeSrc":"17696:22:54","nodeType":"YulExpressionStatement","src":"17696:22:54"},{"nativeSrc":"17727:59:54","nodeType":"YulVariableDeclaration","src":"17727:59:54","value":{"arguments":[{"name":"value0","nativeSrc":"17758:6:54","nodeType":"YulIdentifier","src":"17758:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"17770:9:54","nodeType":"YulIdentifier","src":"17770:9:54"},{"kind":"number","nativeSrc":"17781:3:54","nodeType":"YulLiteral","src":"17781:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17766:3:54","nodeType":"YulIdentifier","src":"17766:3:54"},"nativeSrc":"17766:19:54","nodeType":"YulFunctionCall","src":"17766:19:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"17741:16:54","nodeType":"YulIdentifier","src":"17741:16:54"},"nativeSrc":"17741:45:54","nodeType":"YulFunctionCall","src":"17741:45:54"},"variables":[{"name":"tail_1","nativeSrc":"17731:6:54","nodeType":"YulTypedName","src":"17731:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17806:9:54","nodeType":"YulIdentifier","src":"17806:9:54"},{"kind":"number","nativeSrc":"17817:2:54","nodeType":"YulLiteral","src":"17817:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17802:3:54","nodeType":"YulIdentifier","src":"17802:3:54"},"nativeSrc":"17802:18:54","nodeType":"YulFunctionCall","src":"17802:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"17826:6:54","nodeType":"YulIdentifier","src":"17826:6:54"},{"name":"headStart","nativeSrc":"17834:9:54","nodeType":"YulIdentifier","src":"17834:9:54"}],"functionName":{"name":"sub","nativeSrc":"17822:3:54","nodeType":"YulIdentifier","src":"17822:3:54"},"nativeSrc":"17822:22:54","nodeType":"YulFunctionCall","src":"17822:22:54"}],"functionName":{"name":"mstore","nativeSrc":"17795:6:54","nodeType":"YulIdentifier","src":"17795:6:54"},"nativeSrc":"17795:50:54","nodeType":"YulFunctionCall","src":"17795:50:54"},"nativeSrc":"17795:50:54","nodeType":"YulExpressionStatement","src":"17795:50:54"},{"nativeSrc":"17854:63:54","nodeType":"YulVariableDeclaration","src":"17854:63:54","value":{"arguments":[{"name":"value1","nativeSrc":"17894:6:54","nodeType":"YulIdentifier","src":"17894:6:54"},{"name":"value2","nativeSrc":"17902:6:54","nodeType":"YulIdentifier","src":"17902:6:54"},{"name":"tail_1","nativeSrc":"17910:6:54","nodeType":"YulIdentifier","src":"17910:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"17868:25:54","nodeType":"YulIdentifier","src":"17868:25:54"},"nativeSrc":"17868:49:54","nodeType":"YulFunctionCall","src":"17868:49:54"},"variables":[{"name":"tail_2","nativeSrc":"17858:6:54","nodeType":"YulTypedName","src":"17858:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17937:9:54","nodeType":"YulIdentifier","src":"17937:9:54"},{"kind":"number","nativeSrc":"17948:2:54","nodeType":"YulLiteral","src":"17948:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17933:3:54","nodeType":"YulIdentifier","src":"17933:3:54"},"nativeSrc":"17933:18:54","nodeType":"YulFunctionCall","src":"17933:18:54"},{"name":"value3","nativeSrc":"17953:6:54","nodeType":"YulIdentifier","src":"17953:6:54"}],"functionName":{"name":"mstore","nativeSrc":"17926:6:54","nodeType":"YulIdentifier","src":"17926:6:54"},"nativeSrc":"17926:34:54","nodeType":"YulFunctionCall","src":"17926:34:54"},"nativeSrc":"17926:34:54","nodeType":"YulExpressionStatement","src":"17926:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17980:9:54","nodeType":"YulIdentifier","src":"17980:9:54"},{"kind":"number","nativeSrc":"17991:2:54","nodeType":"YulLiteral","src":"17991:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17976:3:54","nodeType":"YulIdentifier","src":"17976:3:54"},"nativeSrc":"17976:18:54","nodeType":"YulFunctionCall","src":"17976:18:54"},{"arguments":[{"name":"tail_2","nativeSrc":"18000:6:54","nodeType":"YulIdentifier","src":"18000:6:54"},{"name":"headStart","nativeSrc":"18008:9:54","nodeType":"YulIdentifier","src":"18008:9:54"}],"functionName":{"name":"sub","nativeSrc":"17996:3:54","nodeType":"YulIdentifier","src":"17996:3:54"},"nativeSrc":"17996:22:54","nodeType":"YulFunctionCall","src":"17996:22:54"}],"functionName":{"name":"mstore","nativeSrc":"17969:6:54","nodeType":"YulIdentifier","src":"17969:6:54"},"nativeSrc":"17969:50:54","nodeType":"YulFunctionCall","src":"17969:50:54"},"nativeSrc":"17969:50:54","nodeType":"YulExpressionStatement","src":"17969:50:54"},{"nativeSrc":"18028:40:54","nodeType":"YulAssignment","src":"18028:40:54","value":{"arguments":[{"name":"value4","nativeSrc":"18053:6:54","nodeType":"YulIdentifier","src":"18053:6:54"},{"name":"tail_2","nativeSrc":"18061:6:54","nodeType":"YulIdentifier","src":"18061:6:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"18036:16:54","nodeType":"YulIdentifier","src":"18036:16:54"},"nativeSrc":"18036:32:54","nodeType":"YulFunctionCall","src":"18036:32:54"},"variableNames":[{"name":"tail","nativeSrc":"18028:4:54","nodeType":"YulIdentifier","src":"18028:4:54"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17437:637:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17623:9:54","nodeType":"YulTypedName","src":"17623:9:54","type":""},{"name":"value4","nativeSrc":"17634:6:54","nodeType":"YulTypedName","src":"17634:6:54","type":""},{"name":"value3","nativeSrc":"17642:6:54","nodeType":"YulTypedName","src":"17642:6:54","type":""},{"name":"value2","nativeSrc":"17650:6:54","nodeType":"YulTypedName","src":"17650:6:54","type":""},{"name":"value1","nativeSrc":"17658:6:54","nodeType":"YulTypedName","src":"17658:6:54","type":""},{"name":"value0","nativeSrc":"17666:6:54","nodeType":"YulTypedName","src":"17666:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17677:4:54","nodeType":"YulTypedName","src":"17677:4:54","type":""}],"src":"17437:637:54"},{"body":{"nativeSrc":"18226:141:54","nodeType":"YulBlock","src":"18226:141:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18243:9:54","nodeType":"YulIdentifier","src":"18243:9:54"},{"name":"value0","nativeSrc":"18254:6:54","nodeType":"YulIdentifier","src":"18254:6:54"}],"functionName":{"name":"mstore","nativeSrc":"18236:6:54","nodeType":"YulIdentifier","src":"18236:6:54"},"nativeSrc":"18236:25:54","nodeType":"YulFunctionCall","src":"18236:25:54"},"nativeSrc":"18236:25:54","nodeType":"YulExpressionStatement","src":"18236:25:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18281:9:54","nodeType":"YulIdentifier","src":"18281:9:54"},{"kind":"number","nativeSrc":"18292:2:54","nodeType":"YulLiteral","src":"18292:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18277:3:54","nodeType":"YulIdentifier","src":"18277:3:54"},"nativeSrc":"18277:18:54","nodeType":"YulFunctionCall","src":"18277:18:54"},{"kind":"number","nativeSrc":"18297:2:54","nodeType":"YulLiteral","src":"18297:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"18270:6:54","nodeType":"YulIdentifier","src":"18270:6:54"},"nativeSrc":"18270:30:54","nodeType":"YulFunctionCall","src":"18270:30:54"},"nativeSrc":"18270:30:54","nodeType":"YulExpressionStatement","src":"18270:30:54"},{"nativeSrc":"18309:52:54","nodeType":"YulAssignment","src":"18309:52:54","value":{"arguments":[{"name":"value1","nativeSrc":"18334:6:54","nodeType":"YulIdentifier","src":"18334:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"18346:9:54","nodeType":"YulIdentifier","src":"18346:9:54"},{"kind":"number","nativeSrc":"18357:2:54","nodeType":"YulLiteral","src":"18357:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18342:3:54","nodeType":"YulIdentifier","src":"18342:3:54"},"nativeSrc":"18342:18:54","nodeType":"YulFunctionCall","src":"18342:18:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"18317:16:54","nodeType":"YulIdentifier","src":"18317:16:54"},"nativeSrc":"18317:44:54","nodeType":"YulFunctionCall","src":"18317:44:54"},"variableNames":[{"name":"tail","nativeSrc":"18309:4:54","nodeType":"YulIdentifier","src":"18309:4:54"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"18079:288:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18187:9:54","nodeType":"YulTypedName","src":"18187:9:54","type":""},{"name":"value1","nativeSrc":"18198:6:54","nodeType":"YulTypedName","src":"18198:6:54","type":""},{"name":"value0","nativeSrc":"18206:6:54","nodeType":"YulTypedName","src":"18206:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18217:4:54","nodeType":"YulTypedName","src":"18217:4:54","type":""}],"src":"18079:288:54"},{"body":{"nativeSrc":"18553:298:54","nodeType":"YulBlock","src":"18553:298:54","statements":[{"nativeSrc":"18563:27:54","nodeType":"YulAssignment","src":"18563:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"18575:9:54","nodeType":"YulIdentifier","src":"18575:9:54"},{"kind":"number","nativeSrc":"18586:3:54","nodeType":"YulLiteral","src":"18586:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18571:3:54","nodeType":"YulIdentifier","src":"18571:3:54"},"nativeSrc":"18571:19:54","nodeType":"YulFunctionCall","src":"18571:19:54"},"variableNames":[{"name":"tail","nativeSrc":"18563:4:54","nodeType":"YulIdentifier","src":"18563:4:54"}]},{"nativeSrc":"18599:16:54","nodeType":"YulVariableDeclaration","src":"18599:16:54","value":{"kind":"number","nativeSrc":"18609:6:54","nodeType":"YulLiteral","src":"18609:6:54","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"18603:2:54","nodeType":"YulTypedName","src":"18603:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"18631:9:54","nodeType":"YulIdentifier","src":"18631:9:54"},{"arguments":[{"name":"value0","nativeSrc":"18646:6:54","nodeType":"YulIdentifier","src":"18646:6:54"},{"name":"_1","nativeSrc":"18654:2:54","nodeType":"YulIdentifier","src":"18654:2:54"}],"functionName":{"name":"and","nativeSrc":"18642:3:54","nodeType":"YulIdentifier","src":"18642:3:54"},"nativeSrc":"18642:15:54","nodeType":"YulFunctionCall","src":"18642:15:54"}],"functionName":{"name":"mstore","nativeSrc":"18624:6:54","nodeType":"YulIdentifier","src":"18624:6:54"},"nativeSrc":"18624:34:54","nodeType":"YulFunctionCall","src":"18624:34:54"},"nativeSrc":"18624:34:54","nodeType":"YulExpressionStatement","src":"18624:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18678:9:54","nodeType":"YulIdentifier","src":"18678:9:54"},{"kind":"number","nativeSrc":"18689:2:54","nodeType":"YulLiteral","src":"18689:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18674:3:54","nodeType":"YulIdentifier","src":"18674:3:54"},"nativeSrc":"18674:18:54","nodeType":"YulFunctionCall","src":"18674:18:54"},{"arguments":[{"name":"value1","nativeSrc":"18698:6:54","nodeType":"YulIdentifier","src":"18698:6:54"},{"name":"_1","nativeSrc":"18706:2:54","nodeType":"YulIdentifier","src":"18706:2:54"}],"functionName":{"name":"and","nativeSrc":"18694:3:54","nodeType":"YulIdentifier","src":"18694:3:54"},"nativeSrc":"18694:15:54","nodeType":"YulFunctionCall","src":"18694:15:54"}],"functionName":{"name":"mstore","nativeSrc":"18667:6:54","nodeType":"YulIdentifier","src":"18667:6:54"},"nativeSrc":"18667:43:54","nodeType":"YulFunctionCall","src":"18667:43:54"},"nativeSrc":"18667:43:54","nodeType":"YulExpressionStatement","src":"18667:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18730:9:54","nodeType":"YulIdentifier","src":"18730:9:54"},{"kind":"number","nativeSrc":"18741:2:54","nodeType":"YulLiteral","src":"18741:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18726:3:54","nodeType":"YulIdentifier","src":"18726:3:54"},"nativeSrc":"18726:18:54","nodeType":"YulFunctionCall","src":"18726:18:54"},{"arguments":[{"name":"value2","nativeSrc":"18750:6:54","nodeType":"YulIdentifier","src":"18750:6:54"},{"kind":"number","nativeSrc":"18758:42:54","nodeType":"YulLiteral","src":"18758:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"18746:3:54","nodeType":"YulIdentifier","src":"18746:3:54"},"nativeSrc":"18746:55:54","nodeType":"YulFunctionCall","src":"18746:55:54"}],"functionName":{"name":"mstore","nativeSrc":"18719:6:54","nodeType":"YulIdentifier","src":"18719:6:54"},"nativeSrc":"18719:83:54","nodeType":"YulFunctionCall","src":"18719:83:54"},"nativeSrc":"18719:83:54","nodeType":"YulExpressionStatement","src":"18719:83:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18822:9:54","nodeType":"YulIdentifier","src":"18822:9:54"},{"kind":"number","nativeSrc":"18833:2:54","nodeType":"YulLiteral","src":"18833:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18818:3:54","nodeType":"YulIdentifier","src":"18818:3:54"},"nativeSrc":"18818:18:54","nodeType":"YulFunctionCall","src":"18818:18:54"},{"name":"value3","nativeSrc":"18838:6:54","nodeType":"YulIdentifier","src":"18838:6:54"}],"functionName":{"name":"mstore","nativeSrc":"18811:6:54","nodeType":"YulIdentifier","src":"18811:6:54"},"nativeSrc":"18811:34:54","nodeType":"YulFunctionCall","src":"18811:34:54"},"nativeSrc":"18811:34:54","nodeType":"YulExpressionStatement","src":"18811:34:54"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nativeSrc":"18372:479:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18498:9:54","nodeType":"YulTypedName","src":"18498:9:54","type":""},{"name":"value3","nativeSrc":"18509:6:54","nodeType":"YulTypedName","src":"18509:6:54","type":""},{"name":"value2","nativeSrc":"18517:6:54","nodeType":"YulTypedName","src":"18517:6:54","type":""},{"name":"value1","nativeSrc":"18525:6:54","nodeType":"YulTypedName","src":"18525:6:54","type":""},{"name":"value0","nativeSrc":"18533:6:54","nodeType":"YulTypedName","src":"18533:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18544:4:54","nodeType":"YulTypedName","src":"18544:4:54","type":""}],"src":"18372:479:54"},{"body":{"nativeSrc":"18888:152:54","nodeType":"YulBlock","src":"18888:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18905:1:54","nodeType":"YulLiteral","src":"18905:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"18908:77:54","nodeType":"YulLiteral","src":"18908:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18898:6:54","nodeType":"YulIdentifier","src":"18898:6:54"},"nativeSrc":"18898:88:54","nodeType":"YulFunctionCall","src":"18898:88:54"},"nativeSrc":"18898:88:54","nodeType":"YulExpressionStatement","src":"18898:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19002:1:54","nodeType":"YulLiteral","src":"19002:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"19005:4:54","nodeType":"YulLiteral","src":"19005:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"18995:6:54","nodeType":"YulIdentifier","src":"18995:6:54"},"nativeSrc":"18995:15:54","nodeType":"YulFunctionCall","src":"18995:15:54"},"nativeSrc":"18995:15:54","nodeType":"YulExpressionStatement","src":"18995:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19026:1:54","nodeType":"YulLiteral","src":"19026:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"19029:4:54","nodeType":"YulLiteral","src":"19029:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19019:6:54","nodeType":"YulIdentifier","src":"19019:6:54"},"nativeSrc":"19019:15:54","nodeType":"YulFunctionCall","src":"19019:15:54"},"nativeSrc":"19019:15:54","nodeType":"YulExpressionStatement","src":"19019:15:54"}]},"name":"panic_error_0x41","nativeSrc":"18856:184:54","nodeType":"YulFunctionDefinition","src":"18856:184:54"},{"body":{"nativeSrc":"19090:289:54","nodeType":"YulBlock","src":"19090:289:54","statements":[{"nativeSrc":"19100:19:54","nodeType":"YulAssignment","src":"19100:19:54","value":{"arguments":[{"kind":"number","nativeSrc":"19116:2:54","nodeType":"YulLiteral","src":"19116:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"19110:5:54","nodeType":"YulIdentifier","src":"19110:5:54"},"nativeSrc":"19110:9:54","nodeType":"YulFunctionCall","src":"19110:9:54"},"variableNames":[{"name":"memPtr","nativeSrc":"19100:6:54","nodeType":"YulIdentifier","src":"19100:6:54"}]},{"nativeSrc":"19128:117:54","nodeType":"YulVariableDeclaration","src":"19128:117:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"19150:6:54","nodeType":"YulIdentifier","src":"19150:6:54"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"19166:4:54","nodeType":"YulIdentifier","src":"19166:4:54"},{"kind":"number","nativeSrc":"19172:2:54","nodeType":"YulLiteral","src":"19172:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19162:3:54","nodeType":"YulIdentifier","src":"19162:3:54"},"nativeSrc":"19162:13:54","nodeType":"YulFunctionCall","src":"19162:13:54"},{"kind":"number","nativeSrc":"19177:66:54","nodeType":"YulLiteral","src":"19177:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"19158:3:54","nodeType":"YulIdentifier","src":"19158:3:54"},"nativeSrc":"19158:86:54","nodeType":"YulFunctionCall","src":"19158:86:54"}],"functionName":{"name":"add","nativeSrc":"19146:3:54","nodeType":"YulIdentifier","src":"19146:3:54"},"nativeSrc":"19146:99:54","nodeType":"YulFunctionCall","src":"19146:99:54"},"variables":[{"name":"newFreePtr","nativeSrc":"19132:10:54","nodeType":"YulTypedName","src":"19132:10:54","type":""}]},{"body":{"nativeSrc":"19320:22:54","nodeType":"YulBlock","src":"19320:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19322:16:54","nodeType":"YulIdentifier","src":"19322:16:54"},"nativeSrc":"19322:18:54","nodeType":"YulFunctionCall","src":"19322:18:54"},"nativeSrc":"19322:18:54","nodeType":"YulExpressionStatement","src":"19322:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"19263:10:54","nodeType":"YulIdentifier","src":"19263:10:54"},{"kind":"number","nativeSrc":"19275:18:54","nodeType":"YulLiteral","src":"19275:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19260:2:54","nodeType":"YulIdentifier","src":"19260:2:54"},"nativeSrc":"19260:34:54","nodeType":"YulFunctionCall","src":"19260:34:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"19299:10:54","nodeType":"YulIdentifier","src":"19299:10:54"},{"name":"memPtr","nativeSrc":"19311:6:54","nodeType":"YulIdentifier","src":"19311:6:54"}],"functionName":{"name":"lt","nativeSrc":"19296:2:54","nodeType":"YulIdentifier","src":"19296:2:54"},"nativeSrc":"19296:22:54","nodeType":"YulFunctionCall","src":"19296:22:54"}],"functionName":{"name":"or","nativeSrc":"19257:2:54","nodeType":"YulIdentifier","src":"19257:2:54"},"nativeSrc":"19257:62:54","nodeType":"YulFunctionCall","src":"19257:62:54"},"nativeSrc":"19254:88:54","nodeType":"YulIf","src":"19254:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19358:2:54","nodeType":"YulLiteral","src":"19358:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"19362:10:54","nodeType":"YulIdentifier","src":"19362:10:54"}],"functionName":{"name":"mstore","nativeSrc":"19351:6:54","nodeType":"YulIdentifier","src":"19351:6:54"},"nativeSrc":"19351:22:54","nodeType":"YulFunctionCall","src":"19351:22:54"},"nativeSrc":"19351:22:54","nodeType":"YulExpressionStatement","src":"19351:22:54"}]},"name":"allocate_memory","nativeSrc":"19045:334:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"19070:4:54","nodeType":"YulTypedName","src":"19070:4:54","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"19079:6:54","nodeType":"YulTypedName","src":"19079:6:54","type":""}],"src":"19045:334:54"},{"body":{"nativeSrc":"19441:188:54","nodeType":"YulBlock","src":"19441:188:54","statements":[{"body":{"nativeSrc":"19485:22:54","nodeType":"YulBlock","src":"19485:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19487:16:54","nodeType":"YulIdentifier","src":"19487:16:54"},"nativeSrc":"19487:18:54","nodeType":"YulFunctionCall","src":"19487:18:54"},"nativeSrc":"19487:18:54","nodeType":"YulExpressionStatement","src":"19487:18:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"19457:6:54","nodeType":"YulIdentifier","src":"19457:6:54"},{"kind":"number","nativeSrc":"19465:18:54","nodeType":"YulLiteral","src":"19465:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19454:2:54","nodeType":"YulIdentifier","src":"19454:2:54"},"nativeSrc":"19454:30:54","nodeType":"YulFunctionCall","src":"19454:30:54"},"nativeSrc":"19451:56:54","nodeType":"YulIf","src":"19451:56:54"},{"nativeSrc":"19516:107:54","nodeType":"YulAssignment","src":"19516:107:54","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nativeSrc":"19536:6:54","nodeType":"YulIdentifier","src":"19536:6:54"},{"kind":"number","nativeSrc":"19544:2:54","nodeType":"YulLiteral","src":"19544:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"19532:3:54","nodeType":"YulIdentifier","src":"19532:3:54"},"nativeSrc":"19532:15:54","nodeType":"YulFunctionCall","src":"19532:15:54"},{"kind":"number","nativeSrc":"19549:66:54","nodeType":"YulLiteral","src":"19549:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"19528:3:54","nodeType":"YulIdentifier","src":"19528:3:54"},"nativeSrc":"19528:88:54","nodeType":"YulFunctionCall","src":"19528:88:54"},{"kind":"number","nativeSrc":"19618:4:54","nodeType":"YulLiteral","src":"19618:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19524:3:54","nodeType":"YulIdentifier","src":"19524:3:54"},"nativeSrc":"19524:99:54","nodeType":"YulFunctionCall","src":"19524:99:54"},"variableNames":[{"name":"size","nativeSrc":"19516:4:54","nodeType":"YulIdentifier","src":"19516:4:54"}]}]},"name":"array_allocation_size_bytes","nativeSrc":"19384:245:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"19421:6:54","nodeType":"YulTypedName","src":"19421:6:54","type":""}],"returnVariables":[{"name":"size","nativeSrc":"19432:4:54","nodeType":"YulTypedName","src":"19432:4:54","type":""}],"src":"19384:245:54"},{"body":{"nativeSrc":"19719:235:54","nodeType":"YulBlock","src":"19719:235:54","statements":[{"nativeSrc":"19729:61:54","nodeType":"YulAssignment","src":"19729:61:54","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"19782:6:54","nodeType":"YulIdentifier","src":"19782:6:54"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"19754:27:54","nodeType":"YulIdentifier","src":"19754:27:54"},"nativeSrc":"19754:35:54","nodeType":"YulFunctionCall","src":"19754:35:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"19738:15:54","nodeType":"YulIdentifier","src":"19738:15:54"},"nativeSrc":"19738:52:54","nodeType":"YulFunctionCall","src":"19738:52:54"},"variableNames":[{"name":"array","nativeSrc":"19729:5:54","nodeType":"YulIdentifier","src":"19729:5:54"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"19806:5:54","nodeType":"YulIdentifier","src":"19806:5:54"},{"name":"length","nativeSrc":"19813:6:54","nodeType":"YulIdentifier","src":"19813:6:54"}],"functionName":{"name":"mstore","nativeSrc":"19799:6:54","nodeType":"YulIdentifier","src":"19799:6:54"},"nativeSrc":"19799:21:54","nodeType":"YulFunctionCall","src":"19799:21:54"},"nativeSrc":"19799:21:54","nodeType":"YulExpressionStatement","src":"19799:21:54"},{"body":{"nativeSrc":"19858:16:54","nodeType":"YulBlock","src":"19858:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19867:1:54","nodeType":"YulLiteral","src":"19867:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"19870:1:54","nodeType":"YulLiteral","src":"19870:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19860:6:54","nodeType":"YulIdentifier","src":"19860:6:54"},"nativeSrc":"19860:12:54","nodeType":"YulFunctionCall","src":"19860:12:54"},"nativeSrc":"19860:12:54","nodeType":"YulExpressionStatement","src":"19860:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"19839:3:54","nodeType":"YulIdentifier","src":"19839:3:54"},{"name":"length","nativeSrc":"19844:6:54","nodeType":"YulIdentifier","src":"19844:6:54"}],"functionName":{"name":"add","nativeSrc":"19835:3:54","nodeType":"YulIdentifier","src":"19835:3:54"},"nativeSrc":"19835:16:54","nodeType":"YulFunctionCall","src":"19835:16:54"},{"name":"end","nativeSrc":"19853:3:54","nodeType":"YulIdentifier","src":"19853:3:54"}],"functionName":{"name":"gt","nativeSrc":"19832:2:54","nodeType":"YulIdentifier","src":"19832:2:54"},"nativeSrc":"19832:25:54","nodeType":"YulFunctionCall","src":"19832:25:54"},"nativeSrc":"19829:45:54","nodeType":"YulIf","src":"19829:45:54"},{"expression":{"arguments":[{"name":"src","nativeSrc":"19918:3:54","nodeType":"YulIdentifier","src":"19918:3:54"},{"arguments":[{"name":"array","nativeSrc":"19927:5:54","nodeType":"YulIdentifier","src":"19927:5:54"},{"kind":"number","nativeSrc":"19934:4:54","nodeType":"YulLiteral","src":"19934:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19923:3:54","nodeType":"YulIdentifier","src":"19923:3:54"},"nativeSrc":"19923:16:54","nodeType":"YulFunctionCall","src":"19923:16:54"},{"name":"length","nativeSrc":"19941:6:54","nodeType":"YulIdentifier","src":"19941:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"19883:34:54","nodeType":"YulIdentifier","src":"19883:34:54"},"nativeSrc":"19883:65:54","nodeType":"YulFunctionCall","src":"19883:65:54"},"nativeSrc":"19883:65:54","nodeType":"YulExpressionStatement","src":"19883:65:54"}]},"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"19634:320:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"19688:3:54","nodeType":"YulTypedName","src":"19688:3:54","type":""},{"name":"length","nativeSrc":"19693:6:54","nodeType":"YulTypedName","src":"19693:6:54","type":""},{"name":"end","nativeSrc":"19701:3:54","nodeType":"YulTypedName","src":"19701:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"19709:5:54","nodeType":"YulTypedName","src":"19709:5:54","type":""}],"src":"19634:320:54"},{"body":{"nativeSrc":"20022:172:54","nodeType":"YulBlock","src":"20022:172:54","statements":[{"body":{"nativeSrc":"20071:16:54","nodeType":"YulBlock","src":"20071:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20080:1:54","nodeType":"YulLiteral","src":"20080:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"20083:1:54","nodeType":"YulLiteral","src":"20083:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20073:6:54","nodeType":"YulIdentifier","src":"20073:6:54"},"nativeSrc":"20073:12:54","nodeType":"YulFunctionCall","src":"20073:12:54"},"nativeSrc":"20073:12:54","nodeType":"YulExpressionStatement","src":"20073:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20050:6:54","nodeType":"YulIdentifier","src":"20050:6:54"},{"kind":"number","nativeSrc":"20058:4:54","nodeType":"YulLiteral","src":"20058:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"20046:3:54","nodeType":"YulIdentifier","src":"20046:3:54"},"nativeSrc":"20046:17:54","nodeType":"YulFunctionCall","src":"20046:17:54"},{"name":"end","nativeSrc":"20065:3:54","nodeType":"YulIdentifier","src":"20065:3:54"}],"functionName":{"name":"slt","nativeSrc":"20042:3:54","nodeType":"YulIdentifier","src":"20042:3:54"},"nativeSrc":"20042:27:54","nodeType":"YulFunctionCall","src":"20042:27:54"}],"functionName":{"name":"iszero","nativeSrc":"20035:6:54","nodeType":"YulIdentifier","src":"20035:6:54"},"nativeSrc":"20035:35:54","nodeType":"YulFunctionCall","src":"20035:35:54"},"nativeSrc":"20032:55:54","nodeType":"YulIf","src":"20032:55:54"},{"nativeSrc":"20096:92:54","nodeType":"YulAssignment","src":"20096:92:54","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20154:6:54","nodeType":"YulIdentifier","src":"20154:6:54"},{"kind":"number","nativeSrc":"20162:4:54","nodeType":"YulLiteral","src":"20162:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20150:3:54","nodeType":"YulIdentifier","src":"20150:3:54"},"nativeSrc":"20150:17:54","nodeType":"YulFunctionCall","src":"20150:17:54"},{"arguments":[{"name":"offset","nativeSrc":"20175:6:54","nodeType":"YulIdentifier","src":"20175:6:54"}],"functionName":{"name":"mload","nativeSrc":"20169:5:54","nodeType":"YulIdentifier","src":"20169:5:54"},"nativeSrc":"20169:13:54","nodeType":"YulFunctionCall","src":"20169:13:54"},{"name":"end","nativeSrc":"20184:3:54","nodeType":"YulIdentifier","src":"20184:3:54"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"20105:44:54","nodeType":"YulIdentifier","src":"20105:44:54"},"nativeSrc":"20105:83:54","nodeType":"YulFunctionCall","src":"20105:83:54"},"variableNames":[{"name":"array","nativeSrc":"20096:5:54","nodeType":"YulIdentifier","src":"20096:5:54"}]}]},"name":"abi_decode_bytes_fromMemory","nativeSrc":"19959:235:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19996:6:54","nodeType":"YulTypedName","src":"19996:6:54","type":""},{"name":"end","nativeSrc":"20004:3:54","nodeType":"YulTypedName","src":"20004:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"20012:5:54","nodeType":"YulTypedName","src":"20012:5:54","type":""}],"src":"19959:235:54"},{"body":{"nativeSrc":"20289:245:54","nodeType":"YulBlock","src":"20289:245:54","statements":[{"body":{"nativeSrc":"20335:16:54","nodeType":"YulBlock","src":"20335:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20344:1:54","nodeType":"YulLiteral","src":"20344:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"20347:1:54","nodeType":"YulLiteral","src":"20347:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20337:6:54","nodeType":"YulIdentifier","src":"20337:6:54"},"nativeSrc":"20337:12:54","nodeType":"YulFunctionCall","src":"20337:12:54"},"nativeSrc":"20337:12:54","nodeType":"YulExpressionStatement","src":"20337:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20310:7:54","nodeType":"YulIdentifier","src":"20310:7:54"},{"name":"headStart","nativeSrc":"20319:9:54","nodeType":"YulIdentifier","src":"20319:9:54"}],"functionName":{"name":"sub","nativeSrc":"20306:3:54","nodeType":"YulIdentifier","src":"20306:3:54"},"nativeSrc":"20306:23:54","nodeType":"YulFunctionCall","src":"20306:23:54"},{"kind":"number","nativeSrc":"20331:2:54","nodeType":"YulLiteral","src":"20331:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"20302:3:54","nodeType":"YulIdentifier","src":"20302:3:54"},"nativeSrc":"20302:32:54","nodeType":"YulFunctionCall","src":"20302:32:54"},"nativeSrc":"20299:52:54","nodeType":"YulIf","src":"20299:52:54"},{"nativeSrc":"20360:30:54","nodeType":"YulVariableDeclaration","src":"20360:30:54","value":{"arguments":[{"name":"headStart","nativeSrc":"20380:9:54","nodeType":"YulIdentifier","src":"20380:9:54"}],"functionName":{"name":"mload","nativeSrc":"20374:5:54","nodeType":"YulIdentifier","src":"20374:5:54"},"nativeSrc":"20374:16:54","nodeType":"YulFunctionCall","src":"20374:16:54"},"variables":[{"name":"offset","nativeSrc":"20364:6:54","nodeType":"YulTypedName","src":"20364:6:54","type":""}]},{"body":{"nativeSrc":"20433:16:54","nodeType":"YulBlock","src":"20433:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20442:1:54","nodeType":"YulLiteral","src":"20442:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"20445:1:54","nodeType":"YulLiteral","src":"20445:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20435:6:54","nodeType":"YulIdentifier","src":"20435:6:54"},"nativeSrc":"20435:12:54","nodeType":"YulFunctionCall","src":"20435:12:54"},"nativeSrc":"20435:12:54","nodeType":"YulExpressionStatement","src":"20435:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"20405:6:54","nodeType":"YulIdentifier","src":"20405:6:54"},{"kind":"number","nativeSrc":"20413:18:54","nodeType":"YulLiteral","src":"20413:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20402:2:54","nodeType":"YulIdentifier","src":"20402:2:54"},"nativeSrc":"20402:30:54","nodeType":"YulFunctionCall","src":"20402:30:54"},"nativeSrc":"20399:50:54","nodeType":"YulIf","src":"20399:50:54"},{"nativeSrc":"20458:70:54","nodeType":"YulAssignment","src":"20458:70:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20500:9:54","nodeType":"YulIdentifier","src":"20500:9:54"},{"name":"offset","nativeSrc":"20511:6:54","nodeType":"YulIdentifier","src":"20511:6:54"}],"functionName":{"name":"add","nativeSrc":"20496:3:54","nodeType":"YulIdentifier","src":"20496:3:54"},"nativeSrc":"20496:22:54","nodeType":"YulFunctionCall","src":"20496:22:54"},{"name":"dataEnd","nativeSrc":"20520:7:54","nodeType":"YulIdentifier","src":"20520:7:54"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"20468:27:54","nodeType":"YulIdentifier","src":"20468:27:54"},"nativeSrc":"20468:60:54","nodeType":"YulFunctionCall","src":"20468:60:54"},"variableNames":[{"name":"value0","nativeSrc":"20458:6:54","nodeType":"YulIdentifier","src":"20458:6:54"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"20199:335:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20255:9:54","nodeType":"YulTypedName","src":"20255:9:54","type":""},{"name":"dataEnd","nativeSrc":"20266:7:54","nodeType":"YulTypedName","src":"20266:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20278:6:54","nodeType":"YulTypedName","src":"20278:6:54","type":""}],"src":"20199:335:54"},{"body":{"nativeSrc":"20713:239:54","nodeType":"YulBlock","src":"20713:239:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"20730:9:54","nodeType":"YulIdentifier","src":"20730:9:54"},{"kind":"number","nativeSrc":"20741:2:54","nodeType":"YulLiteral","src":"20741:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"20723:6:54","nodeType":"YulIdentifier","src":"20723:6:54"},"nativeSrc":"20723:21:54","nodeType":"YulFunctionCall","src":"20723:21:54"},"nativeSrc":"20723:21:54","nodeType":"YulExpressionStatement","src":"20723:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20764:9:54","nodeType":"YulIdentifier","src":"20764:9:54"},{"kind":"number","nativeSrc":"20775:2:54","nodeType":"YulLiteral","src":"20775:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20760:3:54","nodeType":"YulIdentifier","src":"20760:3:54"},"nativeSrc":"20760:18:54","nodeType":"YulFunctionCall","src":"20760:18:54"},{"kind":"number","nativeSrc":"20780:2:54","nodeType":"YulLiteral","src":"20780:2:54","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"20753:6:54","nodeType":"YulIdentifier","src":"20753:6:54"},"nativeSrc":"20753:30:54","nodeType":"YulFunctionCall","src":"20753:30:54"},"nativeSrc":"20753:30:54","nodeType":"YulExpressionStatement","src":"20753:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20803:9:54","nodeType":"YulIdentifier","src":"20803:9:54"},{"kind":"number","nativeSrc":"20814:2:54","nodeType":"YulLiteral","src":"20814:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20799:3:54","nodeType":"YulIdentifier","src":"20799:3:54"},"nativeSrc":"20799:18:54","nodeType":"YulFunctionCall","src":"20799:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a20636861696e4964","kind":"string","nativeSrc":"20819:34:54","nodeType":"YulLiteral","src":"20819:34:54","type":"","value":"OmnichainProposalSender: chainId"}],"functionName":{"name":"mstore","nativeSrc":"20792:6:54","nodeType":"YulIdentifier","src":"20792:6:54"},"nativeSrc":"20792:62:54","nodeType":"YulFunctionCall","src":"20792:62:54"},"nativeSrc":"20792:62:54","nodeType":"YulExpressionStatement","src":"20792:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20874:9:54","nodeType":"YulIdentifier","src":"20874:9:54"},{"kind":"number","nativeSrc":"20885:2:54","nodeType":"YulLiteral","src":"20885:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"20870:3:54","nodeType":"YulIdentifier","src":"20870:3:54"},"nativeSrc":"20870:18:54","nodeType":"YulFunctionCall","src":"20870:18:54"},{"hexValue":"206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"20890:19:54","nodeType":"YulLiteral","src":"20890:19:54","type":"","value":" must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"20863:6:54","nodeType":"YulIdentifier","src":"20863:6:54"},"nativeSrc":"20863:47:54","nodeType":"YulFunctionCall","src":"20863:47:54"},"nativeSrc":"20863:47:54","nodeType":"YulExpressionStatement","src":"20863:47:54"},{"nativeSrc":"20919:27:54","nodeType":"YulAssignment","src":"20919:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"20931:9:54","nodeType":"YulIdentifier","src":"20931:9:54"},{"kind":"number","nativeSrc":"20942:3:54","nodeType":"YulLiteral","src":"20942:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20927:3:54","nodeType":"YulIdentifier","src":"20927:3:54"},"nativeSrc":"20927:19:54","nodeType":"YulFunctionCall","src":"20927:19:54"},"variableNames":[{"name":"tail","nativeSrc":"20919:4:54","nodeType":"YulIdentifier","src":"20919:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20539:413:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20690:9:54","nodeType":"YulTypedName","src":"20690:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20704:4:54","nodeType":"YulTypedName","src":"20704:4:54","type":""}],"src":"20539:413:54"},{"body":{"nativeSrc":"21058:271:54","nodeType":"YulBlock","src":"21058:271:54","statements":[{"nativeSrc":"21068:29:54","nodeType":"YulVariableDeclaration","src":"21068:29:54","value":{"arguments":[{"name":"array","nativeSrc":"21091:5:54","nodeType":"YulIdentifier","src":"21091:5:54"}],"functionName":{"name":"calldataload","nativeSrc":"21078:12:54","nodeType":"YulIdentifier","src":"21078:12:54"},"nativeSrc":"21078:19:54","nodeType":"YulFunctionCall","src":"21078:19:54"},"variables":[{"name":"_1","nativeSrc":"21072:2:54","nodeType":"YulTypedName","src":"21072:2:54","type":""}]},{"nativeSrc":"21106:76:54","nodeType":"YulVariableDeclaration","src":"21106:76:54","value":{"kind":"number","nativeSrc":"21116:66:54","nodeType":"YulLiteral","src":"21116:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"},"variables":[{"name":"_2","nativeSrc":"21110:2:54","nodeType":"YulTypedName","src":"21110:2:54","type":""}]},{"nativeSrc":"21191:20:54","nodeType":"YulAssignment","src":"21191:20:54","value":{"arguments":[{"name":"_1","nativeSrc":"21204:2:54","nodeType":"YulIdentifier","src":"21204:2:54"},{"name":"_2","nativeSrc":"21208:2:54","nodeType":"YulIdentifier","src":"21208:2:54"}],"functionName":{"name":"and","nativeSrc":"21200:3:54","nodeType":"YulIdentifier","src":"21200:3:54"},"nativeSrc":"21200:11:54","nodeType":"YulFunctionCall","src":"21200:11:54"},"variableNames":[{"name":"value","nativeSrc":"21191:5:54","nodeType":"YulIdentifier","src":"21191:5:54"}]},{"body":{"nativeSrc":"21243:80:54","nodeType":"YulBlock","src":"21243:80:54","statements":[{"nativeSrc":"21257:56:54","nodeType":"YulAssignment","src":"21257:56:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"21274:2:54","nodeType":"YulIdentifier","src":"21274:2:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21286:1:54","nodeType":"YulLiteral","src":"21286:1:54","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"21293:2:54","nodeType":"YulLiteral","src":"21293:2:54","type":"","value":"20"},{"name":"len","nativeSrc":"21297:3:54","nodeType":"YulIdentifier","src":"21297:3:54"}],"functionName":{"name":"sub","nativeSrc":"21289:3:54","nodeType":"YulIdentifier","src":"21289:3:54"},"nativeSrc":"21289:12:54","nodeType":"YulFunctionCall","src":"21289:12:54"}],"functionName":{"name":"shl","nativeSrc":"21282:3:54","nodeType":"YulIdentifier","src":"21282:3:54"},"nativeSrc":"21282:20:54","nodeType":"YulFunctionCall","src":"21282:20:54"},{"name":"_2","nativeSrc":"21304:2:54","nodeType":"YulIdentifier","src":"21304:2:54"}],"functionName":{"name":"shl","nativeSrc":"21278:3:54","nodeType":"YulIdentifier","src":"21278:3:54"},"nativeSrc":"21278:29:54","nodeType":"YulFunctionCall","src":"21278:29:54"}],"functionName":{"name":"and","nativeSrc":"21270:3:54","nodeType":"YulIdentifier","src":"21270:3:54"},"nativeSrc":"21270:38:54","nodeType":"YulFunctionCall","src":"21270:38:54"},{"name":"_2","nativeSrc":"21310:2:54","nodeType":"YulIdentifier","src":"21310:2:54"}],"functionName":{"name":"and","nativeSrc":"21266:3:54","nodeType":"YulIdentifier","src":"21266:3:54"},"nativeSrc":"21266:47:54","nodeType":"YulFunctionCall","src":"21266:47:54"},"variableNames":[{"name":"value","nativeSrc":"21257:5:54","nodeType":"YulIdentifier","src":"21257:5:54"}]}]},"condition":{"arguments":[{"name":"len","nativeSrc":"21226:3:54","nodeType":"YulIdentifier","src":"21226:3:54"},{"kind":"number","nativeSrc":"21231:2:54","nodeType":"YulLiteral","src":"21231:2:54","type":"","value":"20"}],"functionName":{"name":"lt","nativeSrc":"21223:2:54","nodeType":"YulIdentifier","src":"21223:2:54"},"nativeSrc":"21223:11:54","nodeType":"YulFunctionCall","src":"21223:11:54"},"nativeSrc":"21220:103:54","nodeType":"YulIf","src":"21220:103:54"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20","nativeSrc":"20957:372:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"21033:5:54","nodeType":"YulTypedName","src":"21033:5:54","type":""},{"name":"len","nativeSrc":"21040:3:54","nodeType":"YulTypedName","src":"21040:3:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"21048:5:54","nodeType":"YulTypedName","src":"21048:5:54","type":""}],"src":"20957:372:54"},{"body":{"nativeSrc":"21508:251:54","nodeType":"YulBlock","src":"21508:251:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"21525:9:54","nodeType":"YulIdentifier","src":"21525:9:54"},{"kind":"number","nativeSrc":"21536:2:54","nodeType":"YulLiteral","src":"21536:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"21518:6:54","nodeType":"YulIdentifier","src":"21518:6:54"},"nativeSrc":"21518:21:54","nodeType":"YulFunctionCall","src":"21518:21:54"},"nativeSrc":"21518:21:54","nodeType":"YulExpressionStatement","src":"21518:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21559:9:54","nodeType":"YulIdentifier","src":"21559:9:54"},{"kind":"number","nativeSrc":"21570:2:54","nodeType":"YulLiteral","src":"21570:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21555:3:54","nodeType":"YulIdentifier","src":"21555:3:54"},"nativeSrc":"21555:18:54","nodeType":"YulFunctionCall","src":"21555:18:54"},{"kind":"number","nativeSrc":"21575:2:54","nodeType":"YulLiteral","src":"21575:2:54","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"21548:6:54","nodeType":"YulIdentifier","src":"21548:6:54"},"nativeSrc":"21548:30:54","nodeType":"YulFunctionCall","src":"21548:30:54"},"nativeSrc":"21548:30:54","nodeType":"YulExpressionStatement","src":"21548:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21598:9:54","nodeType":"YulIdentifier","src":"21598:9:54"},{"kind":"number","nativeSrc":"21609:2:54","nodeType":"YulLiteral","src":"21609:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21594:3:54","nodeType":"YulIdentifier","src":"21594:3:54"},"nativeSrc":"21594:18:54","nodeType":"YulFunctionCall","src":"21594:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2072656d6f746520","kind":"string","nativeSrc":"21614:34:54","nodeType":"YulLiteral","src":"21614:34:54","type":"","value":"OmnichainProposalSender: remote "}],"functionName":{"name":"mstore","nativeSrc":"21587:6:54","nodeType":"YulIdentifier","src":"21587:6:54"},"nativeSrc":"21587:62:54","nodeType":"YulFunctionCall","src":"21587:62:54"},"nativeSrc":"21587:62:54","nodeType":"YulExpressionStatement","src":"21587:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21669:9:54","nodeType":"YulIdentifier","src":"21669:9:54"},{"kind":"number","nativeSrc":"21680:2:54","nodeType":"YulLiteral","src":"21680:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21665:3:54","nodeType":"YulIdentifier","src":"21665:3:54"},"nativeSrc":"21665:18:54","nodeType":"YulFunctionCall","src":"21665:18:54"},{"hexValue":"61646472657373206d757374206265203230206279746573206c6f6e67","kind":"string","nativeSrc":"21685:31:54","nodeType":"YulLiteral","src":"21685:31:54","type":"","value":"address must be 20 bytes long"}],"functionName":{"name":"mstore","nativeSrc":"21658:6:54","nodeType":"YulIdentifier","src":"21658:6:54"},"nativeSrc":"21658:59:54","nodeType":"YulFunctionCall","src":"21658:59:54"},"nativeSrc":"21658:59:54","nodeType":"YulExpressionStatement","src":"21658:59:54"},{"nativeSrc":"21726:27:54","nodeType":"YulAssignment","src":"21726:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"21738:9:54","nodeType":"YulIdentifier","src":"21738:9:54"},{"kind":"number","nativeSrc":"21749:3:54","nodeType":"YulLiteral","src":"21749:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21734:3:54","nodeType":"YulIdentifier","src":"21734:3:54"},"nativeSrc":"21734:19:54","nodeType":"YulFunctionCall","src":"21734:19:54"},"variableNames":[{"name":"tail","nativeSrc":"21726:4:54","nodeType":"YulIdentifier","src":"21726:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21334:425:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21485:9:54","nodeType":"YulTypedName","src":"21485:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21499:4:54","nodeType":"YulTypedName","src":"21499:4:54","type":""}],"src":"21334:425:54"},{"body":{"nativeSrc":"21939:220:54","nodeType":"YulBlock","src":"21939:220:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"21962:3:54","nodeType":"YulIdentifier","src":"21962:3:54"},{"name":"value0","nativeSrc":"21967:6:54","nodeType":"YulIdentifier","src":"21967:6:54"},{"name":"value1","nativeSrc":"21975:6:54","nodeType":"YulIdentifier","src":"21975:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"21949:12:54","nodeType":"YulIdentifier","src":"21949:12:54"},"nativeSrc":"21949:33:54","nodeType":"YulFunctionCall","src":"21949:33:54"},"nativeSrc":"21949:33:54","nodeType":"YulExpressionStatement","src":"21949:33:54"},{"nativeSrc":"21991:26:54","nodeType":"YulVariableDeclaration","src":"21991:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"22005:3:54","nodeType":"YulIdentifier","src":"22005:3:54"},{"name":"value1","nativeSrc":"22010:6:54","nodeType":"YulIdentifier","src":"22010:6:54"}],"functionName":{"name":"add","nativeSrc":"22001:3:54","nodeType":"YulIdentifier","src":"22001:3:54"},"nativeSrc":"22001:16:54","nodeType":"YulFunctionCall","src":"22001:16:54"},"variables":[{"name":"_1","nativeSrc":"21995:2:54","nodeType":"YulTypedName","src":"21995:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"22033:2:54","nodeType":"YulIdentifier","src":"22033:2:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22045:2:54","nodeType":"YulLiteral","src":"22045:2:54","type":"","value":"96"},{"name":"value2","nativeSrc":"22049:6:54","nodeType":"YulIdentifier","src":"22049:6:54"}],"functionName":{"name":"shl","nativeSrc":"22041:3:54","nodeType":"YulIdentifier","src":"22041:3:54"},"nativeSrc":"22041:15:54","nodeType":"YulFunctionCall","src":"22041:15:54"},{"kind":"number","nativeSrc":"22058:66:54","nodeType":"YulLiteral","src":"22058:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"22037:3:54","nodeType":"YulIdentifier","src":"22037:3:54"},"nativeSrc":"22037:88:54","nodeType":"YulFunctionCall","src":"22037:88:54"}],"functionName":{"name":"mstore","nativeSrc":"22026:6:54","nodeType":"YulIdentifier","src":"22026:6:54"},"nativeSrc":"22026:100:54","nodeType":"YulFunctionCall","src":"22026:100:54"},"nativeSrc":"22026:100:54","nodeType":"YulExpressionStatement","src":"22026:100:54"},{"nativeSrc":"22135:18:54","nodeType":"YulAssignment","src":"22135:18:54","value":{"arguments":[{"name":"_1","nativeSrc":"22146:2:54","nodeType":"YulIdentifier","src":"22146:2:54"},{"kind":"number","nativeSrc":"22150:2:54","nodeType":"YulLiteral","src":"22150:2:54","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"22142:3:54","nodeType":"YulIdentifier","src":"22142:3:54"},"nativeSrc":"22142:11:54","nodeType":"YulFunctionCall","src":"22142:11:54"},"variableNames":[{"name":"end","nativeSrc":"22135:3:54","nodeType":"YulIdentifier","src":"22135:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"21764:395:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"21899:3:54","nodeType":"YulTypedName","src":"21899:3:54","type":""},{"name":"value2","nativeSrc":"21904:6:54","nodeType":"YulTypedName","src":"21904:6:54","type":""},{"name":"value1","nativeSrc":"21912:6:54","nodeType":"YulTypedName","src":"21912:6:54","type":""},{"name":"value0","nativeSrc":"21920:6:54","nodeType":"YulTypedName","src":"21920:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21931:3:54","nodeType":"YulTypedName","src":"21931:3:54","type":""}],"src":"21764:395:54"},{"body":{"nativeSrc":"22219:65:54","nodeType":"YulBlock","src":"22219:65:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22236:1:54","nodeType":"YulLiteral","src":"22236:1:54","type":"","value":"0"},{"name":"ptr","nativeSrc":"22239:3:54","nodeType":"YulIdentifier","src":"22239:3:54"}],"functionName":{"name":"mstore","nativeSrc":"22229:6:54","nodeType":"YulIdentifier","src":"22229:6:54"},"nativeSrc":"22229:14:54","nodeType":"YulFunctionCall","src":"22229:14:54"},"nativeSrc":"22229:14:54","nodeType":"YulExpressionStatement","src":"22229:14:54"},{"nativeSrc":"22252:26:54","nodeType":"YulAssignment","src":"22252:26:54","value":{"arguments":[{"kind":"number","nativeSrc":"22270:1:54","nodeType":"YulLiteral","src":"22270:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"22273:4:54","nodeType":"YulLiteral","src":"22273:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"22260:9:54","nodeType":"YulIdentifier","src":"22260:9:54"},"nativeSrc":"22260:18:54","nodeType":"YulFunctionCall","src":"22260:18:54"},"variableNames":[{"name":"data","nativeSrc":"22252:4:54","nodeType":"YulIdentifier","src":"22252:4:54"}]}]},"name":"array_dataslot_bytes_storage","nativeSrc":"22164:120:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"22202:3:54","nodeType":"YulTypedName","src":"22202:3:54","type":""}],"returnVariables":[{"name":"data","nativeSrc":"22210:4:54","nodeType":"YulTypedName","src":"22210:4:54","type":""}],"src":"22164:120:54"},{"body":{"nativeSrc":"22369:462:54","nodeType":"YulBlock","src":"22369:462:54","statements":[{"body":{"nativeSrc":"22402:423:54","nodeType":"YulBlock","src":"22402:423:54","statements":[{"nativeSrc":"22416:11:54","nodeType":"YulVariableDeclaration","src":"22416:11:54","value":{"kind":"number","nativeSrc":"22426:1:54","nodeType":"YulLiteral","src":"22426:1:54","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"22420:2:54","nodeType":"YulTypedName","src":"22420:2:54","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22447:1:54","nodeType":"YulLiteral","src":"22447:1:54","type":"","value":"0"},{"name":"array","nativeSrc":"22450:5:54","nodeType":"YulIdentifier","src":"22450:5:54"}],"functionName":{"name":"mstore","nativeSrc":"22440:6:54","nodeType":"YulIdentifier","src":"22440:6:54"},"nativeSrc":"22440:16:54","nodeType":"YulFunctionCall","src":"22440:16:54"},"nativeSrc":"22440:16:54","nodeType":"YulExpressionStatement","src":"22440:16:54"},{"nativeSrc":"22469:30:54","nodeType":"YulVariableDeclaration","src":"22469:30:54","value":{"arguments":[{"kind":"number","nativeSrc":"22491:1:54","nodeType":"YulLiteral","src":"22491:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"22494:4:54","nodeType":"YulLiteral","src":"22494:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"22481:9:54","nodeType":"YulIdentifier","src":"22481:9:54"},"nativeSrc":"22481:18:54","nodeType":"YulFunctionCall","src":"22481:18:54"},"variables":[{"name":"data","nativeSrc":"22473:4:54","nodeType":"YulTypedName","src":"22473:4:54","type":""}]},{"nativeSrc":"22512:57:54","nodeType":"YulVariableDeclaration","src":"22512:57:54","value":{"arguments":[{"name":"data","nativeSrc":"22535:4:54","nodeType":"YulIdentifier","src":"22535:4:54"},{"arguments":[{"kind":"number","nativeSrc":"22545:1:54","nodeType":"YulLiteral","src":"22545:1:54","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"22552:10:54","nodeType":"YulIdentifier","src":"22552:10:54"},{"kind":"number","nativeSrc":"22564:2:54","nodeType":"YulLiteral","src":"22564:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"22548:3:54","nodeType":"YulIdentifier","src":"22548:3:54"},"nativeSrc":"22548:19:54","nodeType":"YulFunctionCall","src":"22548:19:54"}],"functionName":{"name":"shr","nativeSrc":"22541:3:54","nodeType":"YulIdentifier","src":"22541:3:54"},"nativeSrc":"22541:27:54","nodeType":"YulFunctionCall","src":"22541:27:54"}],"functionName":{"name":"add","nativeSrc":"22531:3:54","nodeType":"YulIdentifier","src":"22531:3:54"},"nativeSrc":"22531:38:54","nodeType":"YulFunctionCall","src":"22531:38:54"},"variables":[{"name":"deleteStart","nativeSrc":"22516:11:54","nodeType":"YulTypedName","src":"22516:11:54","type":""}]},{"body":{"nativeSrc":"22606:23:54","nodeType":"YulBlock","src":"22606:23:54","statements":[{"nativeSrc":"22608:19:54","nodeType":"YulAssignment","src":"22608:19:54","value":{"name":"data","nativeSrc":"22623:4:54","nodeType":"YulIdentifier","src":"22623:4:54"},"variableNames":[{"name":"deleteStart","nativeSrc":"22608:11:54","nodeType":"YulIdentifier","src":"22608:11:54"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"22588:10:54","nodeType":"YulIdentifier","src":"22588:10:54"},{"kind":"number","nativeSrc":"22600:4:54","nodeType":"YulLiteral","src":"22600:4:54","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"22585:2:54","nodeType":"YulIdentifier","src":"22585:2:54"},"nativeSrc":"22585:20:54","nodeType":"YulFunctionCall","src":"22585:20:54"},"nativeSrc":"22582:47:54","nodeType":"YulIf","src":"22582:47:54"},{"nativeSrc":"22642:41:54","nodeType":"YulVariableDeclaration","src":"22642:41:54","value":{"arguments":[{"name":"data","nativeSrc":"22656:4:54","nodeType":"YulIdentifier","src":"22656:4:54"},{"arguments":[{"kind":"number","nativeSrc":"22666:1:54","nodeType":"YulLiteral","src":"22666:1:54","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"22673:3:54","nodeType":"YulIdentifier","src":"22673:3:54"},{"kind":"number","nativeSrc":"22678:2:54","nodeType":"YulLiteral","src":"22678:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"22669:3:54","nodeType":"YulIdentifier","src":"22669:3:54"},"nativeSrc":"22669:12:54","nodeType":"YulFunctionCall","src":"22669:12:54"}],"functionName":{"name":"shr","nativeSrc":"22662:3:54","nodeType":"YulIdentifier","src":"22662:3:54"},"nativeSrc":"22662:20:54","nodeType":"YulFunctionCall","src":"22662:20:54"}],"functionName":{"name":"add","nativeSrc":"22652:3:54","nodeType":"YulIdentifier","src":"22652:3:54"},"nativeSrc":"22652:31:54","nodeType":"YulFunctionCall","src":"22652:31:54"},"variables":[{"name":"_2","nativeSrc":"22646:2:54","nodeType":"YulTypedName","src":"22646:2:54","type":""}]},{"nativeSrc":"22696:24:54","nodeType":"YulVariableDeclaration","src":"22696:24:54","value":{"name":"deleteStart","nativeSrc":"22709:11:54","nodeType":"YulIdentifier","src":"22709:11:54"},"variables":[{"name":"start","nativeSrc":"22700:5:54","nodeType":"YulTypedName","src":"22700:5:54","type":""}]},{"body":{"nativeSrc":"22794:21:54","nodeType":"YulBlock","src":"22794:21:54","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"22803:5:54","nodeType":"YulIdentifier","src":"22803:5:54"},{"name":"_1","nativeSrc":"22810:2:54","nodeType":"YulIdentifier","src":"22810:2:54"}],"functionName":{"name":"sstore","nativeSrc":"22796:6:54","nodeType":"YulIdentifier","src":"22796:6:54"},"nativeSrc":"22796:17:54","nodeType":"YulFunctionCall","src":"22796:17:54"},"nativeSrc":"22796:17:54","nodeType":"YulExpressionStatement","src":"22796:17:54"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"22744:5:54","nodeType":"YulIdentifier","src":"22744:5:54"},{"name":"_2","nativeSrc":"22751:2:54","nodeType":"YulIdentifier","src":"22751:2:54"}],"functionName":{"name":"lt","nativeSrc":"22741:2:54","nodeType":"YulIdentifier","src":"22741:2:54"},"nativeSrc":"22741:13:54","nodeType":"YulFunctionCall","src":"22741:13:54"},"nativeSrc":"22733:82:54","nodeType":"YulForLoop","post":{"nativeSrc":"22755:26:54","nodeType":"YulBlock","src":"22755:26:54","statements":[{"nativeSrc":"22757:22:54","nodeType":"YulAssignment","src":"22757:22:54","value":{"arguments":[{"name":"start","nativeSrc":"22770:5:54","nodeType":"YulIdentifier","src":"22770:5:54"},{"kind":"number","nativeSrc":"22777:1:54","nodeType":"YulLiteral","src":"22777:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22766:3:54","nodeType":"YulIdentifier","src":"22766:3:54"},"nativeSrc":"22766:13:54","nodeType":"YulFunctionCall","src":"22766:13:54"},"variableNames":[{"name":"start","nativeSrc":"22757:5:54","nodeType":"YulIdentifier","src":"22757:5:54"}]}]},"pre":{"nativeSrc":"22737:3:54","nodeType":"YulBlock","src":"22737:3:54","statements":[]},"src":"22733:82:54"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"22385:3:54","nodeType":"YulIdentifier","src":"22385:3:54"},{"kind":"number","nativeSrc":"22390:2:54","nodeType":"YulLiteral","src":"22390:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"22382:2:54","nodeType":"YulIdentifier","src":"22382:2:54"},"nativeSrc":"22382:11:54","nodeType":"YulFunctionCall","src":"22382:11:54"},"nativeSrc":"22379:446:54","nodeType":"YulIf","src":"22379:446:54"}]},"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"22289:542:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"22341:5:54","nodeType":"YulTypedName","src":"22341:5:54","type":""},{"name":"len","nativeSrc":"22348:3:54","nodeType":"YulTypedName","src":"22348:3:54","type":""},{"name":"startIndex","nativeSrc":"22353:10:54","nodeType":"YulTypedName","src":"22353:10:54","type":""}],"src":"22289:542:54"},{"body":{"nativeSrc":"22921:141:54","nodeType":"YulBlock","src":"22921:141:54","statements":[{"nativeSrc":"22931:125:54","nodeType":"YulAssignment","src":"22931:125:54","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"22946:4:54","nodeType":"YulIdentifier","src":"22946:4:54"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22964:1:54","nodeType":"YulLiteral","src":"22964:1:54","type":"","value":"3"},{"name":"len","nativeSrc":"22967:3:54","nodeType":"YulIdentifier","src":"22967:3:54"}],"functionName":{"name":"shl","nativeSrc":"22960:3:54","nodeType":"YulIdentifier","src":"22960:3:54"},"nativeSrc":"22960:11:54","nodeType":"YulFunctionCall","src":"22960:11:54"},{"kind":"number","nativeSrc":"22973:66:54","nodeType":"YulLiteral","src":"22973:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"22956:3:54","nodeType":"YulIdentifier","src":"22956:3:54"},"nativeSrc":"22956:84:54","nodeType":"YulFunctionCall","src":"22956:84:54"}],"functionName":{"name":"not","nativeSrc":"22952:3:54","nodeType":"YulIdentifier","src":"22952:3:54"},"nativeSrc":"22952:89:54","nodeType":"YulFunctionCall","src":"22952:89:54"}],"functionName":{"name":"and","nativeSrc":"22942:3:54","nodeType":"YulIdentifier","src":"22942:3:54"},"nativeSrc":"22942:100:54","nodeType":"YulFunctionCall","src":"22942:100:54"},{"arguments":[{"kind":"number","nativeSrc":"23048:1:54","nodeType":"YulLiteral","src":"23048:1:54","type":"","value":"1"},{"name":"len","nativeSrc":"23051:3:54","nodeType":"YulIdentifier","src":"23051:3:54"}],"functionName":{"name":"shl","nativeSrc":"23044:3:54","nodeType":"YulIdentifier","src":"23044:3:54"},"nativeSrc":"23044:11:54","nodeType":"YulFunctionCall","src":"23044:11:54"}],"functionName":{"name":"or","nativeSrc":"22939:2:54","nodeType":"YulIdentifier","src":"22939:2:54"},"nativeSrc":"22939:117:54","nodeType":"YulFunctionCall","src":"22939:117:54"},"variableNames":[{"name":"used","nativeSrc":"22931:4:54","nodeType":"YulIdentifier","src":"22931:4:54"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"22836:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"22898:4:54","nodeType":"YulTypedName","src":"22898:4:54","type":""},{"name":"len","nativeSrc":"22904:3:54","nodeType":"YulTypedName","src":"22904:3:54","type":""}],"returnVariables":[{"name":"used","nativeSrc":"22912:4:54","nodeType":"YulTypedName","src":"22912:4:54","type":""}],"src":"22836:226:54"},{"body":{"nativeSrc":"23161:1366:54","nodeType":"YulBlock","src":"23161:1366:54","statements":[{"nativeSrc":"23171:24:54","nodeType":"YulVariableDeclaration","src":"23171:24:54","value":{"arguments":[{"name":"src","nativeSrc":"23191:3:54","nodeType":"YulIdentifier","src":"23191:3:54"}],"functionName":{"name":"mload","nativeSrc":"23185:5:54","nodeType":"YulIdentifier","src":"23185:5:54"},"nativeSrc":"23185:10:54","nodeType":"YulFunctionCall","src":"23185:10:54"},"variables":[{"name":"newLen","nativeSrc":"23175:6:54","nodeType":"YulTypedName","src":"23175:6:54","type":""}]},{"body":{"nativeSrc":"23238:22:54","nodeType":"YulBlock","src":"23238:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"23240:16:54","nodeType":"YulIdentifier","src":"23240:16:54"},"nativeSrc":"23240:18:54","nodeType":"YulFunctionCall","src":"23240:18:54"},"nativeSrc":"23240:18:54","nodeType":"YulExpressionStatement","src":"23240:18:54"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"23210:6:54","nodeType":"YulIdentifier","src":"23210:6:54"},{"kind":"number","nativeSrc":"23218:18:54","nodeType":"YulLiteral","src":"23218:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23207:2:54","nodeType":"YulIdentifier","src":"23207:2:54"},"nativeSrc":"23207:30:54","nodeType":"YulFunctionCall","src":"23207:30:54"},"nativeSrc":"23204:56:54","nodeType":"YulIf","src":"23204:56:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23312:4:54","nodeType":"YulIdentifier","src":"23312:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"23350:4:54","nodeType":"YulIdentifier","src":"23350:4:54"}],"functionName":{"name":"sload","nativeSrc":"23344:5:54","nodeType":"YulIdentifier","src":"23344:5:54"},"nativeSrc":"23344:11:54","nodeType":"YulFunctionCall","src":"23344:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"23318:25:54","nodeType":"YulIdentifier","src":"23318:25:54"},"nativeSrc":"23318:38:54","nodeType":"YulFunctionCall","src":"23318:38:54"},{"name":"newLen","nativeSrc":"23358:6:54","nodeType":"YulIdentifier","src":"23358:6:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_bytes_storage","nativeSrc":"23269:42:54","nodeType":"YulIdentifier","src":"23269:42:54"},"nativeSrc":"23269:96:54","nodeType":"YulFunctionCall","src":"23269:96:54"},"nativeSrc":"23269:96:54","nodeType":"YulExpressionStatement","src":"23269:96:54"},{"nativeSrc":"23374:18:54","nodeType":"YulVariableDeclaration","src":"23374:18:54","value":{"kind":"number","nativeSrc":"23391:1:54","nodeType":"YulLiteral","src":"23391:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"23378:9:54","nodeType":"YulTypedName","src":"23378:9:54","type":""}]},{"nativeSrc":"23401:23:54","nodeType":"YulVariableDeclaration","src":"23401:23:54","value":{"kind":"number","nativeSrc":"23420:4:54","nodeType":"YulLiteral","src":"23420:4:54","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"23405:11:54","nodeType":"YulTypedName","src":"23405:11:54","type":""}]},{"nativeSrc":"23433:17:54","nodeType":"YulAssignment","src":"23433:17:54","value":{"kind":"number","nativeSrc":"23446:4:54","nodeType":"YulLiteral","src":"23446:4:54","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"23433:9:54","nodeType":"YulIdentifier","src":"23433:9:54"}]},{"cases":[{"body":{"nativeSrc":"23496:774:54","nodeType":"YulBlock","src":"23496:774:54","statements":[{"nativeSrc":"23510:94:54","nodeType":"YulVariableDeclaration","src":"23510:94:54","value":{"arguments":[{"name":"newLen","nativeSrc":"23529:6:54","nodeType":"YulIdentifier","src":"23529:6:54"},{"kind":"number","nativeSrc":"23537:66:54","nodeType":"YulLiteral","src":"23537:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"23525:3:54","nodeType":"YulIdentifier","src":"23525:3:54"},"nativeSrc":"23525:79:54","nodeType":"YulFunctionCall","src":"23525:79:54"},"variables":[{"name":"loopEnd","nativeSrc":"23514:7:54","nodeType":"YulTypedName","src":"23514:7:54","type":""}]},{"nativeSrc":"23617:48:54","nodeType":"YulVariableDeclaration","src":"23617:48:54","value":{"arguments":[{"name":"slot","nativeSrc":"23660:4:54","nodeType":"YulIdentifier","src":"23660:4:54"}],"functionName":{"name":"array_dataslot_bytes_storage","nativeSrc":"23631:28:54","nodeType":"YulIdentifier","src":"23631:28:54"},"nativeSrc":"23631:34:54","nodeType":"YulFunctionCall","src":"23631:34:54"},"variables":[{"name":"dstPtr","nativeSrc":"23621:6:54","nodeType":"YulTypedName","src":"23621:6:54","type":""}]},{"nativeSrc":"23678:10:54","nodeType":"YulVariableDeclaration","src":"23678:10:54","value":{"kind":"number","nativeSrc":"23687:1:54","nodeType":"YulLiteral","src":"23687:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"23682:1:54","nodeType":"YulTypedName","src":"23682:1:54","type":""}]},{"body":{"nativeSrc":"23765:172:54","nodeType":"YulBlock","src":"23765:172:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"23790:6:54","nodeType":"YulIdentifier","src":"23790:6:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23808:3:54","nodeType":"YulIdentifier","src":"23808:3:54"},{"name":"srcOffset","nativeSrc":"23813:9:54","nodeType":"YulIdentifier","src":"23813:9:54"}],"functionName":{"name":"add","nativeSrc":"23804:3:54","nodeType":"YulIdentifier","src":"23804:3:54"},"nativeSrc":"23804:19:54","nodeType":"YulFunctionCall","src":"23804:19:54"}],"functionName":{"name":"mload","nativeSrc":"23798:5:54","nodeType":"YulIdentifier","src":"23798:5:54"},"nativeSrc":"23798:26:54","nodeType":"YulFunctionCall","src":"23798:26:54"}],"functionName":{"name":"sstore","nativeSrc":"23783:6:54","nodeType":"YulIdentifier","src":"23783:6:54"},"nativeSrc":"23783:42:54","nodeType":"YulFunctionCall","src":"23783:42:54"},"nativeSrc":"23783:42:54","nodeType":"YulExpressionStatement","src":"23783:42:54"},{"nativeSrc":"23842:24:54","nodeType":"YulAssignment","src":"23842:24:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"23856:6:54","nodeType":"YulIdentifier","src":"23856:6:54"},{"kind":"number","nativeSrc":"23864:1:54","nodeType":"YulLiteral","src":"23864:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23852:3:54","nodeType":"YulIdentifier","src":"23852:3:54"},"nativeSrc":"23852:14:54","nodeType":"YulFunctionCall","src":"23852:14:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"23842:6:54","nodeType":"YulIdentifier","src":"23842:6:54"}]},{"nativeSrc":"23883:40:54","nodeType":"YulAssignment","src":"23883:40:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"23900:9:54","nodeType":"YulIdentifier","src":"23900:9:54"},{"name":"srcOffset_1","nativeSrc":"23911:11:54","nodeType":"YulIdentifier","src":"23911:11:54"}],"functionName":{"name":"add","nativeSrc":"23896:3:54","nodeType":"YulIdentifier","src":"23896:3:54"},"nativeSrc":"23896:27:54","nodeType":"YulFunctionCall","src":"23896:27:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"23883:9:54","nodeType":"YulIdentifier","src":"23883:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"23712:1:54","nodeType":"YulIdentifier","src":"23712:1:54"},{"name":"loopEnd","nativeSrc":"23715:7:54","nodeType":"YulIdentifier","src":"23715:7:54"}],"functionName":{"name":"lt","nativeSrc":"23709:2:54","nodeType":"YulIdentifier","src":"23709:2:54"},"nativeSrc":"23709:14:54","nodeType":"YulFunctionCall","src":"23709:14:54"},"nativeSrc":"23701:236:54","nodeType":"YulForLoop","post":{"nativeSrc":"23724:28:54","nodeType":"YulBlock","src":"23724:28:54","statements":[{"nativeSrc":"23726:24:54","nodeType":"YulAssignment","src":"23726:24:54","value":{"arguments":[{"name":"i","nativeSrc":"23735:1:54","nodeType":"YulIdentifier","src":"23735:1:54"},{"name":"srcOffset_1","nativeSrc":"23738:11:54","nodeType":"YulIdentifier","src":"23738:11:54"}],"functionName":{"name":"add","nativeSrc":"23731:3:54","nodeType":"YulIdentifier","src":"23731:3:54"},"nativeSrc":"23731:19:54","nodeType":"YulFunctionCall","src":"23731:19:54"},"variableNames":[{"name":"i","nativeSrc":"23726:1:54","nodeType":"YulIdentifier","src":"23726:1:54"}]}]},"pre":{"nativeSrc":"23705:3:54","nodeType":"YulBlock","src":"23705:3:54","statements":[]},"src":"23701:236:54"},{"body":{"nativeSrc":"23985:226:54","nodeType":"YulBlock","src":"23985:226:54","statements":[{"nativeSrc":"24003:43:54","nodeType":"YulVariableDeclaration","src":"24003:43:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24030:3:54","nodeType":"YulIdentifier","src":"24030:3:54"},{"name":"srcOffset","nativeSrc":"24035:9:54","nodeType":"YulIdentifier","src":"24035:9:54"}],"functionName":{"name":"add","nativeSrc":"24026:3:54","nodeType":"YulIdentifier","src":"24026:3:54"},"nativeSrc":"24026:19:54","nodeType":"YulFunctionCall","src":"24026:19:54"}],"functionName":{"name":"mload","nativeSrc":"24020:5:54","nodeType":"YulIdentifier","src":"24020:5:54"},"nativeSrc":"24020:26:54","nodeType":"YulFunctionCall","src":"24020:26:54"},"variables":[{"name":"lastValue","nativeSrc":"24007:9:54","nodeType":"YulTypedName","src":"24007:9:54","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"24070:6:54","nodeType":"YulIdentifier","src":"24070:6:54"},{"arguments":[{"name":"lastValue","nativeSrc":"24082:9:54","nodeType":"YulIdentifier","src":"24082:9:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24109:1:54","nodeType":"YulLiteral","src":"24109:1:54","type":"","value":"3"},{"name":"newLen","nativeSrc":"24112:6:54","nodeType":"YulIdentifier","src":"24112:6:54"}],"functionName":{"name":"shl","nativeSrc":"24105:3:54","nodeType":"YulIdentifier","src":"24105:3:54"},"nativeSrc":"24105:14:54","nodeType":"YulFunctionCall","src":"24105:14:54"},{"kind":"number","nativeSrc":"24121:3:54","nodeType":"YulLiteral","src":"24121:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"24101:3:54","nodeType":"YulIdentifier","src":"24101:3:54"},"nativeSrc":"24101:24:54","nodeType":"YulFunctionCall","src":"24101:24:54"},{"kind":"number","nativeSrc":"24127:66:54","nodeType":"YulLiteral","src":"24127:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"24097:3:54","nodeType":"YulIdentifier","src":"24097:3:54"},"nativeSrc":"24097:97:54","nodeType":"YulFunctionCall","src":"24097:97:54"}],"functionName":{"name":"not","nativeSrc":"24093:3:54","nodeType":"YulIdentifier","src":"24093:3:54"},"nativeSrc":"24093:102:54","nodeType":"YulFunctionCall","src":"24093:102:54"}],"functionName":{"name":"and","nativeSrc":"24078:3:54","nodeType":"YulIdentifier","src":"24078:3:54"},"nativeSrc":"24078:118:54","nodeType":"YulFunctionCall","src":"24078:118:54"}],"functionName":{"name":"sstore","nativeSrc":"24063:6:54","nodeType":"YulIdentifier","src":"24063:6:54"},"nativeSrc":"24063:134:54","nodeType":"YulFunctionCall","src":"24063:134:54"},"nativeSrc":"24063:134:54","nodeType":"YulExpressionStatement","src":"24063:134:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"23956:7:54","nodeType":"YulIdentifier","src":"23956:7:54"},{"name":"newLen","nativeSrc":"23965:6:54","nodeType":"YulIdentifier","src":"23965:6:54"}],"functionName":{"name":"lt","nativeSrc":"23953:2:54","nodeType":"YulIdentifier","src":"23953:2:54"},"nativeSrc":"23953:19:54","nodeType":"YulFunctionCall","src":"23953:19:54"},"nativeSrc":"23950:261:54","nodeType":"YulIf","src":"23950:261:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24231:4:54","nodeType":"YulIdentifier","src":"24231:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24245:1:54","nodeType":"YulLiteral","src":"24245:1:54","type":"","value":"1"},{"name":"newLen","nativeSrc":"24248:6:54","nodeType":"YulIdentifier","src":"24248:6:54"}],"functionName":{"name":"shl","nativeSrc":"24241:3:54","nodeType":"YulIdentifier","src":"24241:3:54"},"nativeSrc":"24241:14:54","nodeType":"YulFunctionCall","src":"24241:14:54"},{"kind":"number","nativeSrc":"24257:1:54","nodeType":"YulLiteral","src":"24257:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24237:3:54","nodeType":"YulIdentifier","src":"24237:3:54"},"nativeSrc":"24237:22:54","nodeType":"YulFunctionCall","src":"24237:22:54"}],"functionName":{"name":"sstore","nativeSrc":"24224:6:54","nodeType":"YulIdentifier","src":"24224:6:54"},"nativeSrc":"24224:36:54","nodeType":"YulFunctionCall","src":"24224:36:54"},"nativeSrc":"24224:36:54","nodeType":"YulExpressionStatement","src":"24224:36:54"}]},"nativeSrc":"23489:781:54","nodeType":"YulCase","src":"23489:781:54","value":{"kind":"number","nativeSrc":"23494:1:54","nodeType":"YulLiteral","src":"23494:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"24287:234:54","nodeType":"YulBlock","src":"24287:234:54","statements":[{"nativeSrc":"24301:14:54","nodeType":"YulVariableDeclaration","src":"24301:14:54","value":{"kind":"number","nativeSrc":"24314:1:54","nodeType":"YulLiteral","src":"24314:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"24305:5:54","nodeType":"YulTypedName","src":"24305:5:54","type":""}]},{"body":{"nativeSrc":"24350:67:54","nodeType":"YulBlock","src":"24350:67:54","statements":[{"nativeSrc":"24368:35:54","nodeType":"YulAssignment","src":"24368:35:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24387:3:54","nodeType":"YulIdentifier","src":"24387:3:54"},{"name":"srcOffset","nativeSrc":"24392:9:54","nodeType":"YulIdentifier","src":"24392:9:54"}],"functionName":{"name":"add","nativeSrc":"24383:3:54","nodeType":"YulIdentifier","src":"24383:3:54"},"nativeSrc":"24383:19:54","nodeType":"YulFunctionCall","src":"24383:19:54"}],"functionName":{"name":"mload","nativeSrc":"24377:5:54","nodeType":"YulIdentifier","src":"24377:5:54"},"nativeSrc":"24377:26:54","nodeType":"YulFunctionCall","src":"24377:26:54"},"variableNames":[{"name":"value","nativeSrc":"24368:5:54","nodeType":"YulIdentifier","src":"24368:5:54"}]}]},"condition":{"name":"newLen","nativeSrc":"24331:6:54","nodeType":"YulIdentifier","src":"24331:6:54"},"nativeSrc":"24328:89:54","nodeType":"YulIf","src":"24328:89:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24437:4:54","nodeType":"YulIdentifier","src":"24437:4:54"},{"arguments":[{"name":"value","nativeSrc":"24496:5:54","nodeType":"YulIdentifier","src":"24496:5:54"},{"name":"newLen","nativeSrc":"24503:6:54","nodeType":"YulIdentifier","src":"24503:6:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"24443:52:54","nodeType":"YulIdentifier","src":"24443:52:54"},"nativeSrc":"24443:67:54","nodeType":"YulFunctionCall","src":"24443:67:54"}],"functionName":{"name":"sstore","nativeSrc":"24430:6:54","nodeType":"YulIdentifier","src":"24430:6:54"},"nativeSrc":"24430:81:54","nodeType":"YulFunctionCall","src":"24430:81:54"},"nativeSrc":"24430:81:54","nodeType":"YulExpressionStatement","src":"24430:81:54"}]},"nativeSrc":"24279:242:54","nodeType":"YulCase","src":"24279:242:54","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"23469:6:54","nodeType":"YulIdentifier","src":"23469:6:54"},{"kind":"number","nativeSrc":"23477:2:54","nodeType":"YulLiteral","src":"23477:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"23466:2:54","nodeType":"YulIdentifier","src":"23466:2:54"},"nativeSrc":"23466:14:54","nodeType":"YulFunctionCall","src":"23466:14:54"},"nativeSrc":"23459:1062:54","nodeType":"YulSwitch","src":"23459:1062:54"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"23067:1460:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"23146:4:54","nodeType":"YulTypedName","src":"23146:4:54","type":""},{"name":"src","nativeSrc":"23152:3:54","nodeType":"YulTypedName","src":"23152:3:54","type":""}],"src":"23067:1460:54"},{"body":{"nativeSrc":"24694:983:54","nodeType":"YulBlock","src":"24694:983:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"24711:9:54","nodeType":"YulIdentifier","src":"24711:9:54"},{"kind":"number","nativeSrc":"24722:2:54","nodeType":"YulLiteral","src":"24722:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"24704:6:54","nodeType":"YulIdentifier","src":"24704:6:54"},"nativeSrc":"24704:21:54","nodeType":"YulFunctionCall","src":"24704:21:54"},"nativeSrc":"24704:21:54","nodeType":"YulExpressionStatement","src":"24704:21:54"},{"nativeSrc":"24734:58:54","nodeType":"YulVariableDeclaration","src":"24734:58:54","value":{"arguments":[{"name":"value0","nativeSrc":"24765:6:54","nodeType":"YulIdentifier","src":"24765:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"24777:9:54","nodeType":"YulIdentifier","src":"24777:9:54"},{"kind":"number","nativeSrc":"24788:2:54","nodeType":"YulLiteral","src":"24788:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24773:3:54","nodeType":"YulIdentifier","src":"24773:3:54"},"nativeSrc":"24773:18:54","nodeType":"YulFunctionCall","src":"24773:18:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"24748:16:54","nodeType":"YulIdentifier","src":"24748:16:54"},"nativeSrc":"24748:44:54","nodeType":"YulFunctionCall","src":"24748:44:54"},"variables":[{"name":"tail_1","nativeSrc":"24738:6:54","nodeType":"YulTypedName","src":"24738:6:54","type":""}]},{"nativeSrc":"24801:12:54","nodeType":"YulVariableDeclaration","src":"24801:12:54","value":{"kind":"number","nativeSrc":"24811:2:54","nodeType":"YulLiteral","src":"24811:2:54","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"24805:2:54","nodeType":"YulTypedName","src":"24805:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24833:9:54","nodeType":"YulIdentifier","src":"24833:9:54"},{"name":"_1","nativeSrc":"24844:2:54","nodeType":"YulIdentifier","src":"24844:2:54"}],"functionName":{"name":"add","nativeSrc":"24829:3:54","nodeType":"YulIdentifier","src":"24829:3:54"},"nativeSrc":"24829:18:54","nodeType":"YulFunctionCall","src":"24829:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"24853:6:54","nodeType":"YulIdentifier","src":"24853:6:54"},{"name":"headStart","nativeSrc":"24861:9:54","nodeType":"YulIdentifier","src":"24861:9:54"}],"functionName":{"name":"sub","nativeSrc":"24849:3:54","nodeType":"YulIdentifier","src":"24849:3:54"},"nativeSrc":"24849:22:54","nodeType":"YulFunctionCall","src":"24849:22:54"}],"functionName":{"name":"mstore","nativeSrc":"24822:6:54","nodeType":"YulIdentifier","src":"24822:6:54"},"nativeSrc":"24822:50:54","nodeType":"YulFunctionCall","src":"24822:50:54"},"nativeSrc":"24822:50:54","nodeType":"YulExpressionStatement","src":"24822:50:54"},{"nativeSrc":"24881:12:54","nodeType":"YulVariableDeclaration","src":"24881:12:54","value":{"kind":"number","nativeSrc":"24892:1:54","nodeType":"YulLiteral","src":"24892:1:54","type":"","value":"0"},"variables":[{"name":"ret","nativeSrc":"24885:3:54","nodeType":"YulTypedName","src":"24885:3:54","type":""}]},{"nativeSrc":"24902:30:54","nodeType":"YulVariableDeclaration","src":"24902:30:54","value":{"arguments":[{"name":"value1","nativeSrc":"24925:6:54","nodeType":"YulIdentifier","src":"24925:6:54"}],"functionName":{"name":"sload","nativeSrc":"24919:5:54","nodeType":"YulIdentifier","src":"24919:5:54"},"nativeSrc":"24919:13:54","nodeType":"YulFunctionCall","src":"24919:13:54"},"variables":[{"name":"slotValue","nativeSrc":"24906:9:54","nodeType":"YulTypedName","src":"24906:9:54","type":""}]},{"nativeSrc":"24941:50:54","nodeType":"YulVariableDeclaration","src":"24941:50:54","value":{"arguments":[{"name":"slotValue","nativeSrc":"24981:9:54","nodeType":"YulIdentifier","src":"24981:9:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"24955:25:54","nodeType":"YulIdentifier","src":"24955:25:54"},"nativeSrc":"24955:36:54","nodeType":"YulFunctionCall","src":"24955:36:54"},"variables":[{"name":"length","nativeSrc":"24945:6:54","nodeType":"YulTypedName","src":"24945:6:54","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"25007:6:54","nodeType":"YulIdentifier","src":"25007:6:54"},{"name":"length","nativeSrc":"25015:6:54","nodeType":"YulIdentifier","src":"25015:6:54"}],"functionName":{"name":"mstore","nativeSrc":"25000:6:54","nodeType":"YulIdentifier","src":"25000:6:54"},"nativeSrc":"25000:22:54","nodeType":"YulFunctionCall","src":"25000:22:54"},"nativeSrc":"25000:22:54","nodeType":"YulExpressionStatement","src":"25000:22:54"},{"nativeSrc":"25031:11:54","nodeType":"YulVariableDeclaration","src":"25031:11:54","value":{"kind":"number","nativeSrc":"25041:1:54","nodeType":"YulLiteral","src":"25041:1:54","type":"","value":"1"},"variables":[{"name":"_2","nativeSrc":"25035:2:54","nodeType":"YulTypedName","src":"25035:2:54","type":""}]},{"cases":[{"body":{"nativeSrc":"25091:203:54","nodeType":"YulBlock","src":"25091:203:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25116:6:54","nodeType":"YulIdentifier","src":"25116:6:54"},{"name":"_1","nativeSrc":"25124:2:54","nodeType":"YulIdentifier","src":"25124:2:54"}],"functionName":{"name":"add","nativeSrc":"25112:3:54","nodeType":"YulIdentifier","src":"25112:3:54"},"nativeSrc":"25112:15:54","nodeType":"YulFunctionCall","src":"25112:15:54"},{"arguments":[{"name":"slotValue","nativeSrc":"25133:9:54","nodeType":"YulIdentifier","src":"25133:9:54"},{"kind":"number","nativeSrc":"25144:66:54","nodeType":"YulLiteral","src":"25144:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"25129:3:54","nodeType":"YulIdentifier","src":"25129:3:54"},"nativeSrc":"25129:82:54","nodeType":"YulFunctionCall","src":"25129:82:54"}],"functionName":{"name":"mstore","nativeSrc":"25105:6:54","nodeType":"YulIdentifier","src":"25105:6:54"},"nativeSrc":"25105:107:54","nodeType":"YulFunctionCall","src":"25105:107:54"},"nativeSrc":"25105:107:54","nodeType":"YulExpressionStatement","src":"25105:107:54"},{"nativeSrc":"25225:59:54","nodeType":"YulAssignment","src":"25225:59:54","value":{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25240:6:54","nodeType":"YulIdentifier","src":"25240:6:54"},{"arguments":[{"kind":"number","nativeSrc":"25252:1:54","nodeType":"YulLiteral","src":"25252:1:54","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"25269:6:54","nodeType":"YulIdentifier","src":"25269:6:54"}],"functionName":{"name":"iszero","nativeSrc":"25262:6:54","nodeType":"YulIdentifier","src":"25262:6:54"},"nativeSrc":"25262:14:54","nodeType":"YulFunctionCall","src":"25262:14:54"}],"functionName":{"name":"iszero","nativeSrc":"25255:6:54","nodeType":"YulIdentifier","src":"25255:6:54"},"nativeSrc":"25255:22:54","nodeType":"YulFunctionCall","src":"25255:22:54"}],"functionName":{"name":"shl","nativeSrc":"25248:3:54","nodeType":"YulIdentifier","src":"25248:3:54"},"nativeSrc":"25248:30:54","nodeType":"YulFunctionCall","src":"25248:30:54"}],"functionName":{"name":"add","nativeSrc":"25236:3:54","nodeType":"YulIdentifier","src":"25236:3:54"},"nativeSrc":"25236:43:54","nodeType":"YulFunctionCall","src":"25236:43:54"},{"name":"_1","nativeSrc":"25281:2:54","nodeType":"YulIdentifier","src":"25281:2:54"}],"functionName":{"name":"add","nativeSrc":"25232:3:54","nodeType":"YulIdentifier","src":"25232:3:54"},"nativeSrc":"25232:52:54","nodeType":"YulFunctionCall","src":"25232:52:54"},"variableNames":[{"name":"ret","nativeSrc":"25225:3:54","nodeType":"YulIdentifier","src":"25225:3:54"}]}]},"nativeSrc":"25084:210:54","nodeType":"YulCase","src":"25084:210:54","value":{"kind":"number","nativeSrc":"25089:1:54","nodeType":"YulLiteral","src":"25089:1:54","type":"","value":"0"}},{"body":{"nativeSrc":"25310:341:54","nodeType":"YulBlock","src":"25310:341:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25331:1:54","nodeType":"YulLiteral","src":"25331:1:54","type":"","value":"0"},{"name":"value1","nativeSrc":"25334:6:54","nodeType":"YulIdentifier","src":"25334:6:54"}],"functionName":{"name":"mstore","nativeSrc":"25324:6:54","nodeType":"YulIdentifier","src":"25324:6:54"},"nativeSrc":"25324:17:54","nodeType":"YulFunctionCall","src":"25324:17:54"},"nativeSrc":"25324:17:54","nodeType":"YulExpressionStatement","src":"25324:17:54"},{"nativeSrc":"25354:31:54","nodeType":"YulVariableDeclaration","src":"25354:31:54","value":{"arguments":[{"kind":"number","nativeSrc":"25379:1:54","nodeType":"YulLiteral","src":"25379:1:54","type":"","value":"0"},{"name":"_1","nativeSrc":"25382:2:54","nodeType":"YulIdentifier","src":"25382:2:54"}],"functionName":{"name":"keccak256","nativeSrc":"25369:9:54","nodeType":"YulIdentifier","src":"25369:9:54"},"nativeSrc":"25369:16:54","nodeType":"YulFunctionCall","src":"25369:16:54"},"variables":[{"name":"dataPos","nativeSrc":"25358:7:54","nodeType":"YulTypedName","src":"25358:7:54","type":""}]},{"nativeSrc":"25398:10:54","nodeType":"YulVariableDeclaration","src":"25398:10:54","value":{"kind":"number","nativeSrc":"25407:1:54","nodeType":"YulLiteral","src":"25407:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"25402:1:54","nodeType":"YulTypedName","src":"25402:1:54","type":""}]},{"body":{"nativeSrc":"25475:123:54","nodeType":"YulBlock","src":"25475:123:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25508:6:54","nodeType":"YulIdentifier","src":"25508:6:54"},{"name":"i","nativeSrc":"25516:1:54","nodeType":"YulIdentifier","src":"25516:1:54"}],"functionName":{"name":"add","nativeSrc":"25504:3:54","nodeType":"YulIdentifier","src":"25504:3:54"},"nativeSrc":"25504:14:54","nodeType":"YulFunctionCall","src":"25504:14:54"},{"name":"_1","nativeSrc":"25520:2:54","nodeType":"YulIdentifier","src":"25520:2:54"}],"functionName":{"name":"add","nativeSrc":"25500:3:54","nodeType":"YulIdentifier","src":"25500:3:54"},"nativeSrc":"25500:23:54","nodeType":"YulFunctionCall","src":"25500:23:54"},{"arguments":[{"name":"dataPos","nativeSrc":"25531:7:54","nodeType":"YulIdentifier","src":"25531:7:54"}],"functionName":{"name":"sload","nativeSrc":"25525:5:54","nodeType":"YulIdentifier","src":"25525:5:54"},"nativeSrc":"25525:14:54","nodeType":"YulFunctionCall","src":"25525:14:54"}],"functionName":{"name":"mstore","nativeSrc":"25493:6:54","nodeType":"YulIdentifier","src":"25493:6:54"},"nativeSrc":"25493:47:54","nodeType":"YulFunctionCall","src":"25493:47:54"},"nativeSrc":"25493:47:54","nodeType":"YulExpressionStatement","src":"25493:47:54"},{"nativeSrc":"25557:27:54","nodeType":"YulAssignment","src":"25557:27:54","value":{"arguments":[{"name":"dataPos","nativeSrc":"25572:7:54","nodeType":"YulIdentifier","src":"25572:7:54"},{"name":"_2","nativeSrc":"25581:2:54","nodeType":"YulIdentifier","src":"25581:2:54"}],"functionName":{"name":"add","nativeSrc":"25568:3:54","nodeType":"YulIdentifier","src":"25568:3:54"},"nativeSrc":"25568:16:54","nodeType":"YulFunctionCall","src":"25568:16:54"},"variableNames":[{"name":"dataPos","nativeSrc":"25557:7:54","nodeType":"YulIdentifier","src":"25557:7:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"25432:1:54","nodeType":"YulIdentifier","src":"25432:1:54"},{"name":"length","nativeSrc":"25435:6:54","nodeType":"YulIdentifier","src":"25435:6:54"}],"functionName":{"name":"lt","nativeSrc":"25429:2:54","nodeType":"YulIdentifier","src":"25429:2:54"},"nativeSrc":"25429:13:54","nodeType":"YulFunctionCall","src":"25429:13:54"},"nativeSrc":"25421:177:54","nodeType":"YulForLoop","post":{"nativeSrc":"25443:19:54","nodeType":"YulBlock","src":"25443:19:54","statements":[{"nativeSrc":"25445:15:54","nodeType":"YulAssignment","src":"25445:15:54","value":{"arguments":[{"name":"i","nativeSrc":"25454:1:54","nodeType":"YulIdentifier","src":"25454:1:54"},{"name":"_1","nativeSrc":"25457:2:54","nodeType":"YulIdentifier","src":"25457:2:54"}],"functionName":{"name":"add","nativeSrc":"25450:3:54","nodeType":"YulIdentifier","src":"25450:3:54"},"nativeSrc":"25450:10:54","nodeType":"YulFunctionCall","src":"25450:10:54"},"variableNames":[{"name":"i","nativeSrc":"25445:1:54","nodeType":"YulIdentifier","src":"25445:1:54"}]}]},"pre":{"nativeSrc":"25425:3:54","nodeType":"YulBlock","src":"25425:3:54","statements":[]},"src":"25421:177:54"},{"nativeSrc":"25611:30:54","nodeType":"YulAssignment","src":"25611:30:54","value":{"arguments":[{"arguments":[{"name":"tail_1","nativeSrc":"25626:6:54","nodeType":"YulIdentifier","src":"25626:6:54"},{"name":"i","nativeSrc":"25634:1:54","nodeType":"YulIdentifier","src":"25634:1:54"}],"functionName":{"name":"add","nativeSrc":"25622:3:54","nodeType":"YulIdentifier","src":"25622:3:54"},"nativeSrc":"25622:14:54","nodeType":"YulFunctionCall","src":"25622:14:54"},{"name":"_1","nativeSrc":"25638:2:54","nodeType":"YulIdentifier","src":"25638:2:54"}],"functionName":{"name":"add","nativeSrc":"25618:3:54","nodeType":"YulIdentifier","src":"25618:3:54"},"nativeSrc":"25618:23:54","nodeType":"YulFunctionCall","src":"25618:23:54"},"variableNames":[{"name":"ret","nativeSrc":"25611:3:54","nodeType":"YulIdentifier","src":"25611:3:54"}]}]},"nativeSrc":"25303:348:54","nodeType":"YulCase","src":"25303:348:54","value":{"kind":"number","nativeSrc":"25308:1:54","nodeType":"YulLiteral","src":"25308:1:54","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nativeSrc":"25062:9:54","nodeType":"YulIdentifier","src":"25062:9:54"},{"kind":"number","nativeSrc":"25073:1:54","nodeType":"YulLiteral","src":"25073:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"25058:3:54","nodeType":"YulIdentifier","src":"25058:3:54"},"nativeSrc":"25058:17:54","nodeType":"YulFunctionCall","src":"25058:17:54"},"nativeSrc":"25051:600:54","nodeType":"YulSwitch","src":"25051:600:54"},{"nativeSrc":"25660:11:54","nodeType":"YulAssignment","src":"25660:11:54","value":{"name":"ret","nativeSrc":"25668:3:54","nodeType":"YulIdentifier","src":"25668:3:54"},"variableNames":[{"name":"tail","nativeSrc":"25660:4:54","nodeType":"YulIdentifier","src":"25660:4:54"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bytes_storage__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"24532:1145:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24655:9:54","nodeType":"YulTypedName","src":"24655:9:54","type":""},{"name":"value1","nativeSrc":"24666:6:54","nodeType":"YulTypedName","src":"24666:6:54","type":""},{"name":"value0","nativeSrc":"24674:6:54","nodeType":"YulTypedName","src":"24674:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24685:4:54","nodeType":"YulTypedName","src":"24685:4:54","type":""}],"src":"24532:1145:54"},{"body":{"nativeSrc":"25891:289:54","nodeType":"YulBlock","src":"25891:289:54","statements":[{"nativeSrc":"25901:16:54","nodeType":"YulVariableDeclaration","src":"25901:16:54","value":{"kind":"number","nativeSrc":"25911:6:54","nodeType":"YulLiteral","src":"25911:6:54","type":"","value":"0xffff"},"variables":[{"name":"_1","nativeSrc":"25905:2:54","nodeType":"YulTypedName","src":"25905:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"25933:9:54","nodeType":"YulIdentifier","src":"25933:9:54"},{"arguments":[{"name":"value0","nativeSrc":"25948:6:54","nodeType":"YulIdentifier","src":"25948:6:54"},{"name":"_1","nativeSrc":"25956:2:54","nodeType":"YulIdentifier","src":"25956:2:54"}],"functionName":{"name":"and","nativeSrc":"25944:3:54","nodeType":"YulIdentifier","src":"25944:3:54"},"nativeSrc":"25944:15:54","nodeType":"YulFunctionCall","src":"25944:15:54"}],"functionName":{"name":"mstore","nativeSrc":"25926:6:54","nodeType":"YulIdentifier","src":"25926:6:54"},"nativeSrc":"25926:34:54","nodeType":"YulFunctionCall","src":"25926:34:54"},"nativeSrc":"25926:34:54","nodeType":"YulExpressionStatement","src":"25926:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25980:9:54","nodeType":"YulIdentifier","src":"25980:9:54"},{"kind":"number","nativeSrc":"25991:2:54","nodeType":"YulLiteral","src":"25991:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25976:3:54","nodeType":"YulIdentifier","src":"25976:3:54"},"nativeSrc":"25976:18:54","nodeType":"YulFunctionCall","src":"25976:18:54"},{"arguments":[{"name":"value1","nativeSrc":"26000:6:54","nodeType":"YulIdentifier","src":"26000:6:54"},{"name":"_1","nativeSrc":"26008:2:54","nodeType":"YulIdentifier","src":"26008:2:54"}],"functionName":{"name":"and","nativeSrc":"25996:3:54","nodeType":"YulIdentifier","src":"25996:3:54"},"nativeSrc":"25996:15:54","nodeType":"YulFunctionCall","src":"25996:15:54"}],"functionName":{"name":"mstore","nativeSrc":"25969:6:54","nodeType":"YulIdentifier","src":"25969:6:54"},"nativeSrc":"25969:43:54","nodeType":"YulFunctionCall","src":"25969:43:54"},"nativeSrc":"25969:43:54","nodeType":"YulExpressionStatement","src":"25969:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26032:9:54","nodeType":"YulIdentifier","src":"26032:9:54"},{"kind":"number","nativeSrc":"26043:2:54","nodeType":"YulLiteral","src":"26043:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26028:3:54","nodeType":"YulIdentifier","src":"26028:3:54"},"nativeSrc":"26028:18:54","nodeType":"YulFunctionCall","src":"26028:18:54"},{"name":"value2","nativeSrc":"26048:6:54","nodeType":"YulIdentifier","src":"26048:6:54"}],"functionName":{"name":"mstore","nativeSrc":"26021:6:54","nodeType":"YulIdentifier","src":"26021:6:54"},"nativeSrc":"26021:34:54","nodeType":"YulFunctionCall","src":"26021:34:54"},"nativeSrc":"26021:34:54","nodeType":"YulExpressionStatement","src":"26021:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26075:9:54","nodeType":"YulIdentifier","src":"26075:9:54"},{"kind":"number","nativeSrc":"26086:2:54","nodeType":"YulLiteral","src":"26086:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26071:3:54","nodeType":"YulIdentifier","src":"26071:3:54"},"nativeSrc":"26071:18:54","nodeType":"YulFunctionCall","src":"26071:18:54"},{"kind":"number","nativeSrc":"26091:3:54","nodeType":"YulLiteral","src":"26091:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"26064:6:54","nodeType":"YulIdentifier","src":"26064:6:54"},"nativeSrc":"26064:31:54","nodeType":"YulFunctionCall","src":"26064:31:54"},"nativeSrc":"26064:31:54","nodeType":"YulExpressionStatement","src":"26064:31:54"},{"nativeSrc":"26104:70:54","nodeType":"YulAssignment","src":"26104:70:54","value":{"arguments":[{"name":"value3","nativeSrc":"26138:6:54","nodeType":"YulIdentifier","src":"26138:6:54"},{"name":"value4","nativeSrc":"26146:6:54","nodeType":"YulIdentifier","src":"26146:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"26158:9:54","nodeType":"YulIdentifier","src":"26158:9:54"},{"kind":"number","nativeSrc":"26169:3:54","nodeType":"YulLiteral","src":"26169:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"26154:3:54","nodeType":"YulIdentifier","src":"26154:3:54"},"nativeSrc":"26154:19:54","nodeType":"YulFunctionCall","src":"26154:19:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"26112:25:54","nodeType":"YulIdentifier","src":"26112:25:54"},"nativeSrc":"26112:62:54","nodeType":"YulFunctionCall","src":"26112:62:54"},"variableNames":[{"name":"tail","nativeSrc":"26104:4:54","nodeType":"YulIdentifier","src":"26104:4:54"}]}]},"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":"25682:498:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25828:9:54","nodeType":"YulTypedName","src":"25828:9:54","type":""},{"name":"value4","nativeSrc":"25839:6:54","nodeType":"YulTypedName","src":"25839:6:54","type":""},{"name":"value3","nativeSrc":"25847:6:54","nodeType":"YulTypedName","src":"25847:6:54","type":""},{"name":"value2","nativeSrc":"25855:6:54","nodeType":"YulTypedName","src":"25855:6:54","type":""},{"name":"value1","nativeSrc":"25863:6:54","nodeType":"YulTypedName","src":"25863:6:54","type":""},{"name":"value0","nativeSrc":"25871:6:54","nodeType":"YulTypedName","src":"25871:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25882:4:54","nodeType":"YulTypedName","src":"25882:4:54","type":""}],"src":"25682:498:54"},{"body":{"nativeSrc":"26281:653:54","nodeType":"YulBlock","src":"26281:653:54","statements":[{"body":{"nativeSrc":"26327:16:54","nodeType":"YulBlock","src":"26327:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26336:1:54","nodeType":"YulLiteral","src":"26336:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"26339:1:54","nodeType":"YulLiteral","src":"26339:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26329:6:54","nodeType":"YulIdentifier","src":"26329:6:54"},"nativeSrc":"26329:12:54","nodeType":"YulFunctionCall","src":"26329:12:54"},"nativeSrc":"26329:12:54","nodeType":"YulExpressionStatement","src":"26329:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26302:7:54","nodeType":"YulIdentifier","src":"26302:7:54"},{"name":"headStart","nativeSrc":"26311:9:54","nodeType":"YulIdentifier","src":"26311:9:54"}],"functionName":{"name":"sub","nativeSrc":"26298:3:54","nodeType":"YulIdentifier","src":"26298:3:54"},"nativeSrc":"26298:23:54","nodeType":"YulFunctionCall","src":"26298:23:54"},{"kind":"number","nativeSrc":"26323:2:54","nodeType":"YulLiteral","src":"26323:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"26294:3:54","nodeType":"YulIdentifier","src":"26294:3:54"},"nativeSrc":"26294:32:54","nodeType":"YulFunctionCall","src":"26294:32:54"},"nativeSrc":"26291:52:54","nodeType":"YulIf","src":"26291:52:54"},{"nativeSrc":"26352:37:54","nodeType":"YulVariableDeclaration","src":"26352:37:54","value":{"arguments":[{"name":"headStart","nativeSrc":"26379:9:54","nodeType":"YulIdentifier","src":"26379:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"26366:12:54","nodeType":"YulIdentifier","src":"26366:12:54"},"nativeSrc":"26366:23:54","nodeType":"YulFunctionCall","src":"26366:23:54"},"variables":[{"name":"offset","nativeSrc":"26356:6:54","nodeType":"YulTypedName","src":"26356:6:54","type":""}]},{"body":{"nativeSrc":"26432:16:54","nodeType":"YulBlock","src":"26432:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26441:1:54","nodeType":"YulLiteral","src":"26441:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"26444:1:54","nodeType":"YulLiteral","src":"26444:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26434:6:54","nodeType":"YulIdentifier","src":"26434:6:54"},"nativeSrc":"26434:12:54","nodeType":"YulFunctionCall","src":"26434:12:54"},"nativeSrc":"26434:12:54","nodeType":"YulExpressionStatement","src":"26434:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"26404:6:54","nodeType":"YulIdentifier","src":"26404:6:54"},{"kind":"number","nativeSrc":"26412:18:54","nodeType":"YulLiteral","src":"26412:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"26401:2:54","nodeType":"YulIdentifier","src":"26401:2:54"},"nativeSrc":"26401:30:54","nodeType":"YulFunctionCall","src":"26401:30:54"},"nativeSrc":"26398:50:54","nodeType":"YulIf","src":"26398:50:54"},{"nativeSrc":"26457:32:54","nodeType":"YulVariableDeclaration","src":"26457:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"26471:9:54","nodeType":"YulIdentifier","src":"26471:9:54"},{"name":"offset","nativeSrc":"26482:6:54","nodeType":"YulIdentifier","src":"26482:6:54"}],"functionName":{"name":"add","nativeSrc":"26467:3:54","nodeType":"YulIdentifier","src":"26467:3:54"},"nativeSrc":"26467:22:54","nodeType":"YulFunctionCall","src":"26467:22:54"},"variables":[{"name":"_1","nativeSrc":"26461:2:54","nodeType":"YulTypedName","src":"26461:2:54","type":""}]},{"body":{"nativeSrc":"26537:16:54","nodeType":"YulBlock","src":"26537:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26546:1:54","nodeType":"YulLiteral","src":"26546:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"26549:1:54","nodeType":"YulLiteral","src":"26549:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26539:6:54","nodeType":"YulIdentifier","src":"26539:6:54"},"nativeSrc":"26539:12:54","nodeType":"YulFunctionCall","src":"26539:12:54"},"nativeSrc":"26539:12:54","nodeType":"YulExpressionStatement","src":"26539:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"26516:2:54","nodeType":"YulIdentifier","src":"26516:2:54"},{"kind":"number","nativeSrc":"26520:4:54","nodeType":"YulLiteral","src":"26520:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"26512:3:54","nodeType":"YulIdentifier","src":"26512:3:54"},"nativeSrc":"26512:13:54","nodeType":"YulFunctionCall","src":"26512:13:54"},{"name":"dataEnd","nativeSrc":"26527:7:54","nodeType":"YulIdentifier","src":"26527:7:54"}],"functionName":{"name":"slt","nativeSrc":"26508:3:54","nodeType":"YulIdentifier","src":"26508:3:54"},"nativeSrc":"26508:27:54","nodeType":"YulFunctionCall","src":"26508:27:54"}],"functionName":{"name":"iszero","nativeSrc":"26501:6:54","nodeType":"YulIdentifier","src":"26501:6:54"},"nativeSrc":"26501:35:54","nodeType":"YulFunctionCall","src":"26501:35:54"},"nativeSrc":"26498:55:54","nodeType":"YulIf","src":"26498:55:54"},{"nativeSrc":"26562:26:54","nodeType":"YulVariableDeclaration","src":"26562:26:54","value":{"arguments":[{"name":"_1","nativeSrc":"26585:2:54","nodeType":"YulIdentifier","src":"26585:2:54"}],"functionName":{"name":"calldataload","nativeSrc":"26572:12:54","nodeType":"YulIdentifier","src":"26572:12:54"},"nativeSrc":"26572:16:54","nodeType":"YulFunctionCall","src":"26572:16:54"},"variables":[{"name":"_2","nativeSrc":"26566:2:54","nodeType":"YulTypedName","src":"26566:2:54","type":""}]},{"nativeSrc":"26597:61:54","nodeType":"YulVariableDeclaration","src":"26597:61:54","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"26654:2:54","nodeType":"YulIdentifier","src":"26654:2:54"}],"functionName":{"name":"array_allocation_size_bytes","nativeSrc":"26626:27:54","nodeType":"YulIdentifier","src":"26626:27:54"},"nativeSrc":"26626:31:54","nodeType":"YulFunctionCall","src":"26626:31:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"26610:15:54","nodeType":"YulIdentifier","src":"26610:15:54"},"nativeSrc":"26610:48:54","nodeType":"YulFunctionCall","src":"26610:48:54"},"variables":[{"name":"array","nativeSrc":"26601:5:54","nodeType":"YulTypedName","src":"26601:5:54","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"26674:5:54","nodeType":"YulIdentifier","src":"26674:5:54"},{"name":"_2","nativeSrc":"26681:2:54","nodeType":"YulIdentifier","src":"26681:2:54"}],"functionName":{"name":"mstore","nativeSrc":"26667:6:54","nodeType":"YulIdentifier","src":"26667:6:54"},"nativeSrc":"26667:17:54","nodeType":"YulFunctionCall","src":"26667:17:54"},"nativeSrc":"26667:17:54","nodeType":"YulExpressionStatement","src":"26667:17:54"},{"body":{"nativeSrc":"26732:16:54","nodeType":"YulBlock","src":"26732:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26741:1:54","nodeType":"YulLiteral","src":"26741:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"26744:1:54","nodeType":"YulLiteral","src":"26744:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26734:6:54","nodeType":"YulIdentifier","src":"26734:6:54"},"nativeSrc":"26734:12:54","nodeType":"YulFunctionCall","src":"26734:12:54"},"nativeSrc":"26734:12:54","nodeType":"YulExpressionStatement","src":"26734:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"26707:2:54","nodeType":"YulIdentifier","src":"26707:2:54"},{"name":"_2","nativeSrc":"26711:2:54","nodeType":"YulIdentifier","src":"26711:2:54"}],"functionName":{"name":"add","nativeSrc":"26703:3:54","nodeType":"YulIdentifier","src":"26703:3:54"},"nativeSrc":"26703:11:54","nodeType":"YulFunctionCall","src":"26703:11:54"},{"kind":"number","nativeSrc":"26716:4:54","nodeType":"YulLiteral","src":"26716:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26699:3:54","nodeType":"YulIdentifier","src":"26699:3:54"},"nativeSrc":"26699:22:54","nodeType":"YulFunctionCall","src":"26699:22:54"},{"name":"dataEnd","nativeSrc":"26723:7:54","nodeType":"YulIdentifier","src":"26723:7:54"}],"functionName":{"name":"gt","nativeSrc":"26696:2:54","nodeType":"YulIdentifier","src":"26696:2:54"},"nativeSrc":"26696:35:54","nodeType":"YulFunctionCall","src":"26696:35:54"},"nativeSrc":"26693:55:54","nodeType":"YulIf","src":"26693:55:54"},{"expression":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"26774:5:54","nodeType":"YulIdentifier","src":"26774:5:54"},{"kind":"number","nativeSrc":"26781:4:54","nodeType":"YulLiteral","src":"26781:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26770:3:54","nodeType":"YulIdentifier","src":"26770:3:54"},"nativeSrc":"26770:16:54","nodeType":"YulFunctionCall","src":"26770:16:54"},{"arguments":[{"name":"_1","nativeSrc":"26792:2:54","nodeType":"YulIdentifier","src":"26792:2:54"},{"kind":"number","nativeSrc":"26796:4:54","nodeType":"YulLiteral","src":"26796:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26788:3:54","nodeType":"YulIdentifier","src":"26788:3:54"},"nativeSrc":"26788:13:54","nodeType":"YulFunctionCall","src":"26788:13:54"},{"name":"_2","nativeSrc":"26803:2:54","nodeType":"YulIdentifier","src":"26803:2:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"26757:12:54","nodeType":"YulIdentifier","src":"26757:12:54"},"nativeSrc":"26757:49:54","nodeType":"YulFunctionCall","src":"26757:49:54"},"nativeSrc":"26757:49:54","nodeType":"YulExpressionStatement","src":"26757:49:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nativeSrc":"26830:5:54","nodeType":"YulIdentifier","src":"26830:5:54"},{"name":"_2","nativeSrc":"26837:2:54","nodeType":"YulIdentifier","src":"26837:2:54"}],"functionName":{"name":"add","nativeSrc":"26826:3:54","nodeType":"YulIdentifier","src":"26826:3:54"},"nativeSrc":"26826:14:54","nodeType":"YulFunctionCall","src":"26826:14:54"},{"kind":"number","nativeSrc":"26842:4:54","nodeType":"YulLiteral","src":"26842:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26822:3:54","nodeType":"YulIdentifier","src":"26822:3:54"},"nativeSrc":"26822:25:54","nodeType":"YulFunctionCall","src":"26822:25:54"},{"kind":"number","nativeSrc":"26849:1:54","nodeType":"YulLiteral","src":"26849:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"26815:6:54","nodeType":"YulIdentifier","src":"26815:6:54"},"nativeSrc":"26815:36:54","nodeType":"YulFunctionCall","src":"26815:36:54"},"nativeSrc":"26815:36:54","nodeType":"YulExpressionStatement","src":"26815:36:54"},{"nativeSrc":"26860:15:54","nodeType":"YulAssignment","src":"26860:15:54","value":{"name":"array","nativeSrc":"26870:5:54","nodeType":"YulIdentifier","src":"26870:5:54"},"variableNames":[{"name":"value0","nativeSrc":"26860:6:54","nodeType":"YulIdentifier","src":"26860:6:54"}]},{"nativeSrc":"26884:44:54","nodeType":"YulAssignment","src":"26884:44:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26911:9:54","nodeType":"YulIdentifier","src":"26911:9:54"},{"kind":"number","nativeSrc":"26922:4:54","nodeType":"YulLiteral","src":"26922:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26907:3:54","nodeType":"YulIdentifier","src":"26907:3:54"},"nativeSrc":"26907:20:54","nodeType":"YulFunctionCall","src":"26907:20:54"}],"functionName":{"name":"calldataload","nativeSrc":"26894:12:54","nodeType":"YulIdentifier","src":"26894:12:54"},"nativeSrc":"26894:34:54","nodeType":"YulFunctionCall","src":"26894:34:54"},"variableNames":[{"name":"value1","nativeSrc":"26884:6:54","nodeType":"YulIdentifier","src":"26884:6:54"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_uint256","nativeSrc":"26185:749:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26239:9:54","nodeType":"YulTypedName","src":"26239:9:54","type":""},{"name":"dataEnd","nativeSrc":"26250:7:54","nodeType":"YulTypedName","src":"26250:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26262:6:54","nodeType":"YulTypedName","src":"26262:6:54","type":""},{"name":"value1","nativeSrc":"26270:6:54","nodeType":"YulTypedName","src":"26270:6:54","type":""}],"src":"26185:749:54"},{"body":{"nativeSrc":"26987:77:54","nodeType":"YulBlock","src":"26987:77:54","statements":[{"nativeSrc":"26997:16:54","nodeType":"YulAssignment","src":"26997:16:54","value":{"arguments":[{"name":"x","nativeSrc":"27008:1:54","nodeType":"YulIdentifier","src":"27008:1:54"},{"name":"y","nativeSrc":"27011:1:54","nodeType":"YulIdentifier","src":"27011:1:54"}],"functionName":{"name":"add","nativeSrc":"27004:3:54","nodeType":"YulIdentifier","src":"27004:3:54"},"nativeSrc":"27004:9:54","nodeType":"YulFunctionCall","src":"27004:9:54"},"variableNames":[{"name":"sum","nativeSrc":"26997:3:54","nodeType":"YulIdentifier","src":"26997:3:54"}]},{"body":{"nativeSrc":"27036:22:54","nodeType":"YulBlock","src":"27036:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27038:16:54","nodeType":"YulIdentifier","src":"27038:16:54"},"nativeSrc":"27038:18:54","nodeType":"YulFunctionCall","src":"27038:18:54"},"nativeSrc":"27038:18:54","nodeType":"YulExpressionStatement","src":"27038:18:54"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"27028:1:54","nodeType":"YulIdentifier","src":"27028:1:54"},{"name":"sum","nativeSrc":"27031:3:54","nodeType":"YulIdentifier","src":"27031:3:54"}],"functionName":{"name":"gt","nativeSrc":"27025:2:54","nodeType":"YulIdentifier","src":"27025:2:54"},"nativeSrc":"27025:10:54","nodeType":"YulFunctionCall","src":"27025:10:54"},"nativeSrc":"27022:36:54","nodeType":"YulIf","src":"27022:36:54"}]},"name":"checked_add_t_uint256","nativeSrc":"26939:125:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"26970:1:54","nodeType":"YulTypedName","src":"26970:1:54","type":""},{"name":"y","nativeSrc":"26973:1:54","nodeType":"YulTypedName","src":"26973:1:54","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"26979:3:54","nodeType":"YulTypedName","src":"26979:3:54","type":""}],"src":"26939:125:54"},{"body":{"nativeSrc":"27398:585:54","nodeType":"YulBlock","src":"27398:585:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"27415:9:54","nodeType":"YulIdentifier","src":"27415:9:54"},{"arguments":[{"name":"value0","nativeSrc":"27430:6:54","nodeType":"YulIdentifier","src":"27430:6:54"},{"kind":"number","nativeSrc":"27438:6:54","nodeType":"YulLiteral","src":"27438:6:54","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"27426:3:54","nodeType":"YulIdentifier","src":"27426:3:54"},"nativeSrc":"27426:19:54","nodeType":"YulFunctionCall","src":"27426:19:54"}],"functionName":{"name":"mstore","nativeSrc":"27408:6:54","nodeType":"YulIdentifier","src":"27408:6:54"},"nativeSrc":"27408:38:54","nodeType":"YulFunctionCall","src":"27408:38:54"},"nativeSrc":"27408:38:54","nodeType":"YulExpressionStatement","src":"27408:38:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27466:9:54","nodeType":"YulIdentifier","src":"27466:9:54"},{"kind":"number","nativeSrc":"27477:2:54","nodeType":"YulLiteral","src":"27477:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27462:3:54","nodeType":"YulIdentifier","src":"27462:3:54"},"nativeSrc":"27462:18:54","nodeType":"YulFunctionCall","src":"27462:18:54"},{"kind":"number","nativeSrc":"27482:3:54","nodeType":"YulLiteral","src":"27482:3:54","type":"","value":"192"}],"functionName":{"name":"mstore","nativeSrc":"27455:6:54","nodeType":"YulIdentifier","src":"27455:6:54"},"nativeSrc":"27455:31:54","nodeType":"YulFunctionCall","src":"27455:31:54"},"nativeSrc":"27455:31:54","nodeType":"YulExpressionStatement","src":"27455:31:54"},{"nativeSrc":"27495:59:54","nodeType":"YulVariableDeclaration","src":"27495:59:54","value":{"arguments":[{"name":"value1","nativeSrc":"27526:6:54","nodeType":"YulIdentifier","src":"27526:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"27538:9:54","nodeType":"YulIdentifier","src":"27538:9:54"},{"kind":"number","nativeSrc":"27549:3:54","nodeType":"YulLiteral","src":"27549:3:54","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"27534:3:54","nodeType":"YulIdentifier","src":"27534:3:54"},"nativeSrc":"27534:19:54","nodeType":"YulFunctionCall","src":"27534:19:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"27509:16:54","nodeType":"YulIdentifier","src":"27509:16:54"},"nativeSrc":"27509:45:54","nodeType":"YulFunctionCall","src":"27509:45:54"},"variables":[{"name":"tail_1","nativeSrc":"27499:6:54","nodeType":"YulTypedName","src":"27499:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27574:9:54","nodeType":"YulIdentifier","src":"27574:9:54"},{"kind":"number","nativeSrc":"27585:2:54","nodeType":"YulLiteral","src":"27585:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27570:3:54","nodeType":"YulIdentifier","src":"27570:3:54"},"nativeSrc":"27570:18:54","nodeType":"YulFunctionCall","src":"27570:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"27594:6:54","nodeType":"YulIdentifier","src":"27594:6:54"},{"name":"headStart","nativeSrc":"27602:9:54","nodeType":"YulIdentifier","src":"27602:9:54"}],"functionName":{"name":"sub","nativeSrc":"27590:3:54","nodeType":"YulIdentifier","src":"27590:3:54"},"nativeSrc":"27590:22:54","nodeType":"YulFunctionCall","src":"27590:22:54"}],"functionName":{"name":"mstore","nativeSrc":"27563:6:54","nodeType":"YulIdentifier","src":"27563:6:54"},"nativeSrc":"27563:50:54","nodeType":"YulFunctionCall","src":"27563:50:54"},"nativeSrc":"27563:50:54","nodeType":"YulExpressionStatement","src":"27563:50:54"},{"nativeSrc":"27622:63:54","nodeType":"YulVariableDeclaration","src":"27622:63:54","value":{"arguments":[{"name":"value2","nativeSrc":"27662:6:54","nodeType":"YulIdentifier","src":"27662:6:54"},{"name":"value3","nativeSrc":"27670:6:54","nodeType":"YulIdentifier","src":"27670:6:54"},{"name":"tail_1","nativeSrc":"27678:6:54","nodeType":"YulIdentifier","src":"27678:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"27636:25:54","nodeType":"YulIdentifier","src":"27636:25:54"},"nativeSrc":"27636:49:54","nodeType":"YulFunctionCall","src":"27636:49:54"},"variables":[{"name":"tail_2","nativeSrc":"27626:6:54","nodeType":"YulTypedName","src":"27626:6:54","type":""}]},{"nativeSrc":"27694:52:54","nodeType":"YulVariableDeclaration","src":"27694:52:54","value":{"kind":"number","nativeSrc":"27704:42:54","nodeType":"YulLiteral","src":"27704:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"27698:2:54","nodeType":"YulTypedName","src":"27698:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27766:9:54","nodeType":"YulIdentifier","src":"27766:9:54"},{"kind":"number","nativeSrc":"27777:2:54","nodeType":"YulLiteral","src":"27777:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27762:3:54","nodeType":"YulIdentifier","src":"27762:3:54"},"nativeSrc":"27762:18:54","nodeType":"YulFunctionCall","src":"27762:18:54"},{"arguments":[{"name":"value4","nativeSrc":"27786:6:54","nodeType":"YulIdentifier","src":"27786:6:54"},{"name":"_1","nativeSrc":"27794:2:54","nodeType":"YulIdentifier","src":"27794:2:54"}],"functionName":{"name":"and","nativeSrc":"27782:3:54","nodeType":"YulIdentifier","src":"27782:3:54"},"nativeSrc":"27782:15:54","nodeType":"YulFunctionCall","src":"27782:15:54"}],"functionName":{"name":"mstore","nativeSrc":"27755:6:54","nodeType":"YulIdentifier","src":"27755:6:54"},"nativeSrc":"27755:43:54","nodeType":"YulFunctionCall","src":"27755:43:54"},"nativeSrc":"27755:43:54","nodeType":"YulExpressionStatement","src":"27755:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27818:9:54","nodeType":"YulIdentifier","src":"27818:9:54"},{"kind":"number","nativeSrc":"27829:3:54","nodeType":"YulLiteral","src":"27829:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"27814:3:54","nodeType":"YulIdentifier","src":"27814:3:54"},"nativeSrc":"27814:19:54","nodeType":"YulFunctionCall","src":"27814:19:54"},{"arguments":[{"name":"value5","nativeSrc":"27839:6:54","nodeType":"YulIdentifier","src":"27839:6:54"},{"name":"_1","nativeSrc":"27847:2:54","nodeType":"YulIdentifier","src":"27847:2:54"}],"functionName":{"name":"and","nativeSrc":"27835:3:54","nodeType":"YulIdentifier","src":"27835:3:54"},"nativeSrc":"27835:15:54","nodeType":"YulFunctionCall","src":"27835:15:54"}],"functionName":{"name":"mstore","nativeSrc":"27807:6:54","nodeType":"YulIdentifier","src":"27807:6:54"},"nativeSrc":"27807:44:54","nodeType":"YulFunctionCall","src":"27807:44:54"},"nativeSrc":"27807:44:54","nodeType":"YulExpressionStatement","src":"27807:44:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27871:9:54","nodeType":"YulIdentifier","src":"27871:9:54"},{"kind":"number","nativeSrc":"27882:3:54","nodeType":"YulLiteral","src":"27882:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"27867:3:54","nodeType":"YulIdentifier","src":"27867:3:54"},"nativeSrc":"27867:19:54","nodeType":"YulFunctionCall","src":"27867:19:54"},{"arguments":[{"name":"tail_2","nativeSrc":"27892:6:54","nodeType":"YulIdentifier","src":"27892:6:54"},{"name":"headStart","nativeSrc":"27900:9:54","nodeType":"YulIdentifier","src":"27900:9:54"}],"functionName":{"name":"sub","nativeSrc":"27888:3:54","nodeType":"YulIdentifier","src":"27888:3:54"},"nativeSrc":"27888:22:54","nodeType":"YulFunctionCall","src":"27888:22:54"}],"functionName":{"name":"mstore","nativeSrc":"27860:6:54","nodeType":"YulIdentifier","src":"27860:6:54"},"nativeSrc":"27860:51:54","nodeType":"YulFunctionCall","src":"27860:51:54"},"nativeSrc":"27860:51:54","nodeType":"YulExpressionStatement","src":"27860:51:54"},{"nativeSrc":"27920:57:54","nodeType":"YulAssignment","src":"27920:57:54","value":{"arguments":[{"name":"value6","nativeSrc":"27954:6:54","nodeType":"YulIdentifier","src":"27954:6:54"},{"name":"value7","nativeSrc":"27962:6:54","nodeType":"YulIdentifier","src":"27962:6:54"},{"name":"tail_2","nativeSrc":"27970:6:54","nodeType":"YulIdentifier","src":"27970:6:54"}],"functionName":{"name":"abi_encode_bytes_calldata","nativeSrc":"27928:25:54","nodeType":"YulIdentifier","src":"27928:25:54"},"nativeSrc":"27928:49:54","nodeType":"YulFunctionCall","src":"27928:49:54"},"variableNames":[{"name":"tail","nativeSrc":"27920:4:54","nodeType":"YulIdentifier","src":"27920:4:54"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"27069:914:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27311:9:54","nodeType":"YulTypedName","src":"27311:9:54","type":""},{"name":"value7","nativeSrc":"27322:6:54","nodeType":"YulTypedName","src":"27322:6:54","type":""},{"name":"value6","nativeSrc":"27330:6:54","nodeType":"YulTypedName","src":"27330:6:54","type":""},{"name":"value5","nativeSrc":"27338:6:54","nodeType":"YulTypedName","src":"27338:6:54","type":""},{"name":"value4","nativeSrc":"27346:6:54","nodeType":"YulTypedName","src":"27346:6:54","type":""},{"name":"value3","nativeSrc":"27354:6:54","nodeType":"YulTypedName","src":"27354:6:54","type":""},{"name":"value2","nativeSrc":"27362:6:54","nodeType":"YulTypedName","src":"27362:6:54","type":""},{"name":"value1","nativeSrc":"27370:6:54","nodeType":"YulTypedName","src":"27370:6:54","type":""},{"name":"value0","nativeSrc":"27378:6:54","nodeType":"YulTypedName","src":"27378:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27389:4:54","nodeType":"YulTypedName","src":"27389:4:54","type":""}],"src":"27069:914:54"},{"body":{"nativeSrc":"28162:228:54","nodeType":"YulBlock","src":"28162:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28179:9:54","nodeType":"YulIdentifier","src":"28179:9:54"},{"kind":"number","nativeSrc":"28190:2:54","nodeType":"YulLiteral","src":"28190:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"28172:6:54","nodeType":"YulIdentifier","src":"28172:6:54"},"nativeSrc":"28172:21:54","nodeType":"YulFunctionCall","src":"28172:21:54"},"nativeSrc":"28172:21:54","nodeType":"YulExpressionStatement","src":"28172:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28213:9:54","nodeType":"YulIdentifier","src":"28213:9:54"},{"kind":"number","nativeSrc":"28224:2:54","nodeType":"YulLiteral","src":"28224:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28209:3:54","nodeType":"YulIdentifier","src":"28209:3:54"},"nativeSrc":"28209:18:54","nodeType":"YulFunctionCall","src":"28209:18:54"},{"kind":"number","nativeSrc":"28229:2:54","nodeType":"YulLiteral","src":"28229:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"28202:6:54","nodeType":"YulIdentifier","src":"28202:6:54"},"nativeSrc":"28202:30:54","nodeType":"YulFunctionCall","src":"28202:30:54"},"nativeSrc":"28202:30:54","nodeType":"YulExpressionStatement","src":"28202:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28252:9:54","nodeType":"YulIdentifier","src":"28252:9:54"},{"kind":"number","nativeSrc":"28263:2:54","nodeType":"YulLiteral","src":"28263:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28248:3:54","nodeType":"YulIdentifier","src":"28248:3:54"},"nativeSrc":"28248:18:54","nodeType":"YulFunctionCall","src":"28248:18:54"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"28268:34:54","nodeType":"YulLiteral","src":"28268:34:54","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"28241:6:54","nodeType":"YulIdentifier","src":"28241:6:54"},"nativeSrc":"28241:62:54","nodeType":"YulFunctionCall","src":"28241:62:54"},"nativeSrc":"28241:62:54","nodeType":"YulExpressionStatement","src":"28241:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28323:9:54","nodeType":"YulIdentifier","src":"28323:9:54"},{"kind":"number","nativeSrc":"28334:2:54","nodeType":"YulLiteral","src":"28334:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28319:3:54","nodeType":"YulIdentifier","src":"28319:3:54"},"nativeSrc":"28319:18:54","nodeType":"YulFunctionCall","src":"28319:18:54"},{"hexValue":"646472657373","kind":"string","nativeSrc":"28339:8:54","nodeType":"YulLiteral","src":"28339:8:54","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"28312:6:54","nodeType":"YulIdentifier","src":"28312:6:54"},"nativeSrc":"28312:36:54","nodeType":"YulFunctionCall","src":"28312:36:54"},"nativeSrc":"28312:36:54","nodeType":"YulExpressionStatement","src":"28312:36:54"},{"nativeSrc":"28357:27:54","nodeType":"YulAssignment","src":"28357:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"28369:9:54","nodeType":"YulIdentifier","src":"28369:9:54"},{"kind":"number","nativeSrc":"28380:3:54","nodeType":"YulLiteral","src":"28380:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"28365:3:54","nodeType":"YulIdentifier","src":"28365:3:54"},"nativeSrc":"28365:19:54","nodeType":"YulFunctionCall","src":"28365:19:54"},"variableNames":[{"name":"tail","nativeSrc":"28357:4:54","nodeType":"YulIdentifier","src":"28357:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27988:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28139:9:54","nodeType":"YulTypedName","src":"28139:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28153:4:54","nodeType":"YulTypedName","src":"28153:4:54","type":""}],"src":"27988:402:54"},{"body":{"nativeSrc":"28544:190:54","nodeType":"YulBlock","src":"28544:190:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"28561:9:54","nodeType":"YulIdentifier","src":"28561:9:54"},{"arguments":[{"name":"value0","nativeSrc":"28576:6:54","nodeType":"YulIdentifier","src":"28576:6:54"},{"kind":"number","nativeSrc":"28584:42:54","nodeType":"YulLiteral","src":"28584:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"28572:3:54","nodeType":"YulIdentifier","src":"28572:3:54"},"nativeSrc":"28572:55:54","nodeType":"YulFunctionCall","src":"28572:55:54"}],"functionName":{"name":"mstore","nativeSrc":"28554:6:54","nodeType":"YulIdentifier","src":"28554:6:54"},"nativeSrc":"28554:74:54","nodeType":"YulFunctionCall","src":"28554:74:54"},"nativeSrc":"28554:74:54","nodeType":"YulExpressionStatement","src":"28554:74:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28648:9:54","nodeType":"YulIdentifier","src":"28648:9:54"},{"kind":"number","nativeSrc":"28659:2:54","nodeType":"YulLiteral","src":"28659:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28644:3:54","nodeType":"YulIdentifier","src":"28644:3:54"},"nativeSrc":"28644:18:54","nodeType":"YulFunctionCall","src":"28644:18:54"},{"kind":"number","nativeSrc":"28664:2:54","nodeType":"YulLiteral","src":"28664:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"28637:6:54","nodeType":"YulIdentifier","src":"28637:6:54"},"nativeSrc":"28637:30:54","nodeType":"YulFunctionCall","src":"28637:30:54"},"nativeSrc":"28637:30:54","nodeType":"YulExpressionStatement","src":"28637:30:54"},{"nativeSrc":"28676:52:54","nodeType":"YulAssignment","src":"28676:52:54","value":{"arguments":[{"name":"value1","nativeSrc":"28701:6:54","nodeType":"YulIdentifier","src":"28701:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"28713:9:54","nodeType":"YulIdentifier","src":"28713:9:54"},{"kind":"number","nativeSrc":"28724:2:54","nodeType":"YulLiteral","src":"28724:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28709:3:54","nodeType":"YulIdentifier","src":"28709:3:54"},"nativeSrc":"28709:18:54","nodeType":"YulFunctionCall","src":"28709:18:54"}],"functionName":{"name":"abi_encode_bytes","nativeSrc":"28684:16:54","nodeType":"YulIdentifier","src":"28684:16:54"},"nativeSrc":"28684:44:54","nodeType":"YulFunctionCall","src":"28684:44:54"},"variableNames":[{"name":"tail","nativeSrc":"28676:4:54","nodeType":"YulIdentifier","src":"28676:4:54"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28395:339:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28505:9:54","nodeType":"YulTypedName","src":"28505:9:54","type":""},{"name":"value1","nativeSrc":"28516:6:54","nodeType":"YulTypedName","src":"28516:6:54","type":""},{"name":"value0","nativeSrc":"28524:6:54","nodeType":"YulTypedName","src":"28524:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28535:4:54","nodeType":"YulTypedName","src":"28535:4:54","type":""}],"src":"28395:339:54"},{"body":{"nativeSrc":"28817:167:54","nodeType":"YulBlock","src":"28817:167:54","statements":[{"body":{"nativeSrc":"28863:16:54","nodeType":"YulBlock","src":"28863:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28872:1:54","nodeType":"YulLiteral","src":"28872:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"28875:1:54","nodeType":"YulLiteral","src":"28875:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"28865:6:54","nodeType":"YulIdentifier","src":"28865:6:54"},"nativeSrc":"28865:12:54","nodeType":"YulFunctionCall","src":"28865:12:54"},"nativeSrc":"28865:12:54","nodeType":"YulExpressionStatement","src":"28865:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28838:7:54","nodeType":"YulIdentifier","src":"28838:7:54"},{"name":"headStart","nativeSrc":"28847:9:54","nodeType":"YulIdentifier","src":"28847:9:54"}],"functionName":{"name":"sub","nativeSrc":"28834:3:54","nodeType":"YulIdentifier","src":"28834:3:54"},"nativeSrc":"28834:23:54","nodeType":"YulFunctionCall","src":"28834:23:54"},{"kind":"number","nativeSrc":"28859:2:54","nodeType":"YulLiteral","src":"28859:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"28830:3:54","nodeType":"YulIdentifier","src":"28830:3:54"},"nativeSrc":"28830:32:54","nodeType":"YulFunctionCall","src":"28830:32:54"},"nativeSrc":"28827:52:54","nodeType":"YulIf","src":"28827:52:54"},{"nativeSrc":"28888:29:54","nodeType":"YulVariableDeclaration","src":"28888:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"28907:9:54","nodeType":"YulIdentifier","src":"28907:9:54"}],"functionName":{"name":"mload","nativeSrc":"28901:5:54","nodeType":"YulIdentifier","src":"28901:5:54"},"nativeSrc":"28901:16:54","nodeType":"YulFunctionCall","src":"28901:16:54"},"variables":[{"name":"value","nativeSrc":"28892:5:54","nodeType":"YulTypedName","src":"28892:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"28948:5:54","nodeType":"YulIdentifier","src":"28948:5:54"}],"functionName":{"name":"validator_revert_bool","nativeSrc":"28926:21:54","nodeType":"YulIdentifier","src":"28926:21:54"},"nativeSrc":"28926:28:54","nodeType":"YulFunctionCall","src":"28926:28:54"},"nativeSrc":"28926:28:54","nodeType":"YulExpressionStatement","src":"28926:28:54"},{"nativeSrc":"28963:15:54","nodeType":"YulAssignment","src":"28963:15:54","value":{"name":"value","nativeSrc":"28973:5:54","nodeType":"YulIdentifier","src":"28973:5:54"},"variableNames":[{"name":"value0","nativeSrc":"28963:6:54","nodeType":"YulIdentifier","src":"28963:6:54"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"28739:245:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28783:9:54","nodeType":"YulTypedName","src":"28783:9:54","type":""},{"name":"dataEnd","nativeSrc":"28794:7:54","nodeType":"YulTypedName","src":"28794:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"28806:6:54","nodeType":"YulTypedName","src":"28806:6:54","type":""}],"src":"28739:245:54"},{"body":{"nativeSrc":"29163:163:54","nodeType":"YulBlock","src":"29163:163:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29180:9:54","nodeType":"YulIdentifier","src":"29180:9:54"},{"kind":"number","nativeSrc":"29191:2:54","nodeType":"YulLiteral","src":"29191:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29173:6:54","nodeType":"YulIdentifier","src":"29173:6:54"},"nativeSrc":"29173:21:54","nodeType":"YulFunctionCall","src":"29173:21:54"},"nativeSrc":"29173:21:54","nodeType":"YulExpressionStatement","src":"29173:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29214:9:54","nodeType":"YulIdentifier","src":"29214:9:54"},{"kind":"number","nativeSrc":"29225:2:54","nodeType":"YulLiteral","src":"29225:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29210:3:54","nodeType":"YulIdentifier","src":"29210:3:54"},"nativeSrc":"29210:18:54","nodeType":"YulFunctionCall","src":"29210:18:54"},{"kind":"number","nativeSrc":"29230:2:54","nodeType":"YulLiteral","src":"29230:2:54","type":"","value":"13"}],"functionName":{"name":"mstore","nativeSrc":"29203:6:54","nodeType":"YulIdentifier","src":"29203:6:54"},"nativeSrc":"29203:30:54","nodeType":"YulFunctionCall","src":"29203:30:54"},"nativeSrc":"29203:30:54","nodeType":"YulExpressionStatement","src":"29203:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29253:9:54","nodeType":"YulIdentifier","src":"29253:9:54"},{"kind":"number","nativeSrc":"29264:2:54","nodeType":"YulLiteral","src":"29264:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29249:3:54","nodeType":"YulIdentifier","src":"29249:3:54"},"nativeSrc":"29249:18:54","nodeType":"YulFunctionCall","src":"29249:18:54"},{"hexValue":"6163636573732064656e696564","kind":"string","nativeSrc":"29269:15:54","nodeType":"YulLiteral","src":"29269:15:54","type":"","value":"access denied"}],"functionName":{"name":"mstore","nativeSrc":"29242:6:54","nodeType":"YulIdentifier","src":"29242:6:54"},"nativeSrc":"29242:43:54","nodeType":"YulFunctionCall","src":"29242:43:54"},"nativeSrc":"29242:43:54","nodeType":"YulExpressionStatement","src":"29242:43:54"},{"nativeSrc":"29294:26:54","nodeType":"YulAssignment","src":"29294:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"29306:9:54","nodeType":"YulIdentifier","src":"29306:9:54"},{"kind":"number","nativeSrc":"29317:2:54","nodeType":"YulLiteral","src":"29317:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29302:3:54","nodeType":"YulIdentifier","src":"29302:3:54"},"nativeSrc":"29302:18:54","nodeType":"YulFunctionCall","src":"29302:18:54"},"variableNames":[{"name":"tail","nativeSrc":"29294:4:54","nodeType":"YulIdentifier","src":"29294:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28989:337:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29140:9:54","nodeType":"YulTypedName","src":"29140:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29154:4:54","nodeType":"YulTypedName","src":"29154:4:54","type":""}],"src":"28989:337:54"},{"body":{"nativeSrc":"29505:182:54","nodeType":"YulBlock","src":"29505:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29522:9:54","nodeType":"YulIdentifier","src":"29522:9:54"},{"kind":"number","nativeSrc":"29533:2:54","nodeType":"YulLiteral","src":"29533:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29515:6:54","nodeType":"YulIdentifier","src":"29515:6:54"},"nativeSrc":"29515:21:54","nodeType":"YulFunctionCall","src":"29515:21:54"},"nativeSrc":"29515:21:54","nodeType":"YulExpressionStatement","src":"29515:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29556:9:54","nodeType":"YulIdentifier","src":"29556:9:54"},{"kind":"number","nativeSrc":"29567:2:54","nodeType":"YulLiteral","src":"29567:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29552:3:54","nodeType":"YulIdentifier","src":"29552:3:54"},"nativeSrc":"29552:18:54","nodeType":"YulFunctionCall","src":"29552:18:54"},{"kind":"number","nativeSrc":"29572:2:54","nodeType":"YulLiteral","src":"29572:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29545:6:54","nodeType":"YulIdentifier","src":"29545:6:54"},"nativeSrc":"29545:30:54","nodeType":"YulFunctionCall","src":"29545:30:54"},"nativeSrc":"29545:30:54","nodeType":"YulExpressionStatement","src":"29545:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29595:9:54","nodeType":"YulIdentifier","src":"29595:9:54"},{"kind":"number","nativeSrc":"29606:2:54","nodeType":"YulLiteral","src":"29606:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29591:3:54","nodeType":"YulIdentifier","src":"29591:3:54"},"nativeSrc":"29591:18:54","nodeType":"YulFunctionCall","src":"29591:18:54"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"29611:34:54","nodeType":"YulLiteral","src":"29611:34:54","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"29584:6:54","nodeType":"YulIdentifier","src":"29584:6:54"},"nativeSrc":"29584:62:54","nodeType":"YulFunctionCall","src":"29584:62:54"},"nativeSrc":"29584:62:54","nodeType":"YulExpressionStatement","src":"29584:62:54"},{"nativeSrc":"29655:26:54","nodeType":"YulAssignment","src":"29655:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"29667:9:54","nodeType":"YulIdentifier","src":"29667:9:54"},{"kind":"number","nativeSrc":"29678:2:54","nodeType":"YulLiteral","src":"29678:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29663:3:54","nodeType":"YulIdentifier","src":"29663:3:54"},"nativeSrc":"29663:18:54","nodeType":"YulFunctionCall","src":"29663:18:54"},"variableNames":[{"name":"tail","nativeSrc":"29655:4:54","nodeType":"YulIdentifier","src":"29655:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29331:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29482:9:54","nodeType":"YulTypedName","src":"29482:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29496:4:54","nodeType":"YulTypedName","src":"29496:4:54","type":""}],"src":"29331:356:54"},{"body":{"nativeSrc":"29866:181:54","nodeType":"YulBlock","src":"29866:181:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"29883:9:54","nodeType":"YulIdentifier","src":"29883:9:54"},{"kind":"number","nativeSrc":"29894:2:54","nodeType":"YulLiteral","src":"29894:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"29876:6:54","nodeType":"YulIdentifier","src":"29876:6:54"},"nativeSrc":"29876:21:54","nodeType":"YulFunctionCall","src":"29876:21:54"},"nativeSrc":"29876:21:54","nodeType":"YulExpressionStatement","src":"29876:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29917:9:54","nodeType":"YulIdentifier","src":"29917:9:54"},{"kind":"number","nativeSrc":"29928:2:54","nodeType":"YulLiteral","src":"29928:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29913:3:54","nodeType":"YulIdentifier","src":"29913:3:54"},"nativeSrc":"29913:18:54","nodeType":"YulFunctionCall","src":"29913:18:54"},{"kind":"number","nativeSrc":"29933:2:54","nodeType":"YulLiteral","src":"29933:2:54","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"29906:6:54","nodeType":"YulIdentifier","src":"29906:6:54"},"nativeSrc":"29906:30:54","nodeType":"YulFunctionCall","src":"29906:30:54"},"nativeSrc":"29906:30:54","nodeType":"YulExpressionStatement","src":"29906:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29956:9:54","nodeType":"YulIdentifier","src":"29956:9:54"},{"kind":"number","nativeSrc":"29967:2:54","nodeType":"YulLiteral","src":"29967:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29952:3:54","nodeType":"YulIdentifier","src":"29952:3:54"},"nativeSrc":"29952:18:54","nodeType":"YulFunctionCall","src":"29952:18:54"},{"hexValue":"5265656e7472616e637947756172643a207265656e7472616e742063616c6c","kind":"string","nativeSrc":"29972:33:54","nodeType":"YulLiteral","src":"29972:33:54","type":"","value":"ReentrancyGuard: reentrant call"}],"functionName":{"name":"mstore","nativeSrc":"29945:6:54","nodeType":"YulIdentifier","src":"29945:6:54"},"nativeSrc":"29945:61:54","nodeType":"YulFunctionCall","src":"29945:61:54"},"nativeSrc":"29945:61:54","nodeType":"YulExpressionStatement","src":"29945:61:54"},{"nativeSrc":"30015:26:54","nodeType":"YulAssignment","src":"30015:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"30027:9:54","nodeType":"YulIdentifier","src":"30027:9:54"},{"kind":"number","nativeSrc":"30038:2:54","nodeType":"YulLiteral","src":"30038:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30023:3:54","nodeType":"YulIdentifier","src":"30023:3:54"},"nativeSrc":"30023:18:54","nodeType":"YulFunctionCall","src":"30023:18:54"},"variableNames":[{"name":"tail","nativeSrc":"30015:4:54","nodeType":"YulIdentifier","src":"30015:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29692:355:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29843:9:54","nodeType":"YulTypedName","src":"29843:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29857:4:54","nodeType":"YulTypedName","src":"29857:4:54","type":""}],"src":"29692:355:54"},{"body":{"nativeSrc":"30226:166:54","nodeType":"YulBlock","src":"30226:166:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"30243:9:54","nodeType":"YulIdentifier","src":"30243:9:54"},{"kind":"number","nativeSrc":"30254:2:54","nodeType":"YulLiteral","src":"30254:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"30236:6:54","nodeType":"YulIdentifier","src":"30236:6:54"},"nativeSrc":"30236:21:54","nodeType":"YulFunctionCall","src":"30236:21:54"},"nativeSrc":"30236:21:54","nodeType":"YulExpressionStatement","src":"30236:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30277:9:54","nodeType":"YulIdentifier","src":"30277:9:54"},{"kind":"number","nativeSrc":"30288:2:54","nodeType":"YulLiteral","src":"30288:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30273:3:54","nodeType":"YulIdentifier","src":"30273:3:54"},"nativeSrc":"30273:18:54","nodeType":"YulFunctionCall","src":"30273:18:54"},{"kind":"number","nativeSrc":"30293:2:54","nodeType":"YulLiteral","src":"30293:2:54","type":"","value":"16"}],"functionName":{"name":"mstore","nativeSrc":"30266:6:54","nodeType":"YulIdentifier","src":"30266:6:54"},"nativeSrc":"30266:30:54","nodeType":"YulFunctionCall","src":"30266:30:54"},"nativeSrc":"30266:30:54","nodeType":"YulExpressionStatement","src":"30266:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30316:9:54","nodeType":"YulIdentifier","src":"30316:9:54"},{"kind":"number","nativeSrc":"30327:2:54","nodeType":"YulLiteral","src":"30327:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30312:3:54","nodeType":"YulIdentifier","src":"30312:3:54"},"nativeSrc":"30312:18:54","nodeType":"YulFunctionCall","src":"30312:18:54"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"30332:18:54","nodeType":"YulLiteral","src":"30332:18:54","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"30305:6:54","nodeType":"YulIdentifier","src":"30305:6:54"},"nativeSrc":"30305:46:54","nodeType":"YulFunctionCall","src":"30305:46:54"},"nativeSrc":"30305:46:54","nodeType":"YulExpressionStatement","src":"30305:46:54"},{"nativeSrc":"30360:26:54","nodeType":"YulAssignment","src":"30360:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"30372:9:54","nodeType":"YulIdentifier","src":"30372:9:54"},{"kind":"number","nativeSrc":"30383:2:54","nodeType":"YulLiteral","src":"30383:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30368:3:54","nodeType":"YulIdentifier","src":"30368:3:54"},"nativeSrc":"30368:18:54","nodeType":"YulFunctionCall","src":"30368:18:54"},"variableNames":[{"name":"tail","nativeSrc":"30360:4:54","nodeType":"YulIdentifier","src":"30360:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30052:340:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30203:9:54","nodeType":"YulTypedName","src":"30203:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30217:4:54","nodeType":"YulTypedName","src":"30217:4:54","type":""}],"src":"30052:340:54"},{"body":{"nativeSrc":"30466:114:54","nodeType":"YulBlock","src":"30466:114:54","statements":[{"body":{"nativeSrc":"30510:22:54","nodeType":"YulBlock","src":"30510:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"30512:16:54","nodeType":"YulIdentifier","src":"30512:16:54"},"nativeSrc":"30512:18:54","nodeType":"YulFunctionCall","src":"30512:18:54"},"nativeSrc":"30512:18:54","nodeType":"YulExpressionStatement","src":"30512:18:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"30482:6:54","nodeType":"YulIdentifier","src":"30482:6:54"},{"kind":"number","nativeSrc":"30490:18:54","nodeType":"YulLiteral","src":"30490:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30479:2:54","nodeType":"YulIdentifier","src":"30479:2:54"},"nativeSrc":"30479:30:54","nodeType":"YulFunctionCall","src":"30479:30:54"},"nativeSrc":"30476:56:54","nodeType":"YulIf","src":"30476:56:54"},{"nativeSrc":"30541:33:54","nodeType":"YulAssignment","src":"30541:33:54","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30557:1:54","nodeType":"YulLiteral","src":"30557:1:54","type":"","value":"5"},{"name":"length","nativeSrc":"30560:6:54","nodeType":"YulIdentifier","src":"30560:6:54"}],"functionName":{"name":"shl","nativeSrc":"30553:3:54","nodeType":"YulIdentifier","src":"30553:3:54"},"nativeSrc":"30553:14:54","nodeType":"YulFunctionCall","src":"30553:14:54"},{"kind":"number","nativeSrc":"30569:4:54","nodeType":"YulLiteral","src":"30569:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30549:3:54","nodeType":"YulIdentifier","src":"30549:3:54"},"nativeSrc":"30549:25:54","nodeType":"YulFunctionCall","src":"30549:25:54"},"variableNames":[{"name":"size","nativeSrc":"30541:4:54","nodeType":"YulIdentifier","src":"30541:4:54"}]}]},"name":"array_allocation_size_array_address_dyn","nativeSrc":"30397:183:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"30446:6:54","nodeType":"YulTypedName","src":"30446:6:54","type":""}],"returnVariables":[{"name":"size","nativeSrc":"30457:4:54","nodeType":"YulTypedName","src":"30457:4:54","type":""}],"src":"30397:183:54"},{"body":{"nativeSrc":"30660:590:54","nodeType":"YulBlock","src":"30660:590:54","statements":[{"body":{"nativeSrc":"30709:16:54","nodeType":"YulBlock","src":"30709:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30718:1:54","nodeType":"YulLiteral","src":"30718:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"30721:1:54","nodeType":"YulLiteral","src":"30721:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"30711:6:54","nodeType":"YulIdentifier","src":"30711:6:54"},"nativeSrc":"30711:12:54","nodeType":"YulFunctionCall","src":"30711:12:54"},"nativeSrc":"30711:12:54","nodeType":"YulExpressionStatement","src":"30711:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"30688:6:54","nodeType":"YulIdentifier","src":"30688:6:54"},{"kind":"number","nativeSrc":"30696:4:54","nodeType":"YulLiteral","src":"30696:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"30684:3:54","nodeType":"YulIdentifier","src":"30684:3:54"},"nativeSrc":"30684:17:54","nodeType":"YulFunctionCall","src":"30684:17:54"},{"name":"end","nativeSrc":"30703:3:54","nodeType":"YulIdentifier","src":"30703:3:54"}],"functionName":{"name":"slt","nativeSrc":"30680:3:54","nodeType":"YulIdentifier","src":"30680:3:54"},"nativeSrc":"30680:27:54","nodeType":"YulFunctionCall","src":"30680:27:54"}],"functionName":{"name":"iszero","nativeSrc":"30673:6:54","nodeType":"YulIdentifier","src":"30673:6:54"},"nativeSrc":"30673:35:54","nodeType":"YulFunctionCall","src":"30673:35:54"},"nativeSrc":"30670:55:54","nodeType":"YulIf","src":"30670:55:54"},{"nativeSrc":"30734:23:54","nodeType":"YulVariableDeclaration","src":"30734:23:54","value":{"arguments":[{"name":"offset","nativeSrc":"30750:6:54","nodeType":"YulIdentifier","src":"30750:6:54"}],"functionName":{"name":"mload","nativeSrc":"30744:5:54","nodeType":"YulIdentifier","src":"30744:5:54"},"nativeSrc":"30744:13:54","nodeType":"YulFunctionCall","src":"30744:13:54"},"variables":[{"name":"_1","nativeSrc":"30738:2:54","nodeType":"YulTypedName","src":"30738:2:54","type":""}]},{"nativeSrc":"30766:14:54","nodeType":"YulVariableDeclaration","src":"30766:14:54","value":{"kind":"number","nativeSrc":"30776:4:54","nodeType":"YulLiteral","src":"30776:4:54","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"30770:2:54","nodeType":"YulTypedName","src":"30770:2:54","type":""}]},{"nativeSrc":"30789:71:54","nodeType":"YulVariableDeclaration","src":"30789:71:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"30856:2:54","nodeType":"YulIdentifier","src":"30856:2:54"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nativeSrc":"30816:39:54","nodeType":"YulIdentifier","src":"30816:39:54"},"nativeSrc":"30816:43:54","nodeType":"YulFunctionCall","src":"30816:43:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"30800:15:54","nodeType":"YulIdentifier","src":"30800:15:54"},"nativeSrc":"30800:60:54","nodeType":"YulFunctionCall","src":"30800:60:54"},"variables":[{"name":"dst","nativeSrc":"30793:3:54","nodeType":"YulTypedName","src":"30793:3:54","type":""}]},{"nativeSrc":"30869:16:54","nodeType":"YulVariableDeclaration","src":"30869:16:54","value":{"name":"dst","nativeSrc":"30882:3:54","nodeType":"YulIdentifier","src":"30882:3:54"},"variables":[{"name":"dst_1","nativeSrc":"30873:5:54","nodeType":"YulTypedName","src":"30873:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"30901:3:54","nodeType":"YulIdentifier","src":"30901:3:54"},{"name":"_1","nativeSrc":"30906:2:54","nodeType":"YulIdentifier","src":"30906:2:54"}],"functionName":{"name":"mstore","nativeSrc":"30894:6:54","nodeType":"YulIdentifier","src":"30894:6:54"},"nativeSrc":"30894:15:54","nodeType":"YulFunctionCall","src":"30894:15:54"},"nativeSrc":"30894:15:54","nodeType":"YulExpressionStatement","src":"30894:15:54"},{"nativeSrc":"30918:21:54","nodeType":"YulAssignment","src":"30918:21:54","value":{"arguments":[{"name":"dst","nativeSrc":"30929:3:54","nodeType":"YulIdentifier","src":"30929:3:54"},{"kind":"number","nativeSrc":"30934:4:54","nodeType":"YulLiteral","src":"30934:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30925:3:54","nodeType":"YulIdentifier","src":"30925:3:54"},"nativeSrc":"30925:14:54","nodeType":"YulFunctionCall","src":"30925:14:54"},"variableNames":[{"name":"dst","nativeSrc":"30918:3:54","nodeType":"YulIdentifier","src":"30918:3:54"}]},{"nativeSrc":"30948:48:54","nodeType":"YulVariableDeclaration","src":"30948:48:54","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"30970:6:54","nodeType":"YulIdentifier","src":"30970:6:54"},{"arguments":[{"kind":"number","nativeSrc":"30982:1:54","nodeType":"YulLiteral","src":"30982:1:54","type":"","value":"5"},{"name":"_1","nativeSrc":"30985:2:54","nodeType":"YulIdentifier","src":"30985:2:54"}],"functionName":{"name":"shl","nativeSrc":"30978:3:54","nodeType":"YulIdentifier","src":"30978:3:54"},"nativeSrc":"30978:10:54","nodeType":"YulFunctionCall","src":"30978:10:54"}],"functionName":{"name":"add","nativeSrc":"30966:3:54","nodeType":"YulIdentifier","src":"30966:3:54"},"nativeSrc":"30966:23:54","nodeType":"YulFunctionCall","src":"30966:23:54"},{"kind":"number","nativeSrc":"30991:4:54","nodeType":"YulLiteral","src":"30991:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30962:3:54","nodeType":"YulIdentifier","src":"30962:3:54"},"nativeSrc":"30962:34:54","nodeType":"YulFunctionCall","src":"30962:34:54"},"variables":[{"name":"srcEnd","nativeSrc":"30952:6:54","nodeType":"YulTypedName","src":"30952:6:54","type":""}]},{"body":{"nativeSrc":"31024:16:54","nodeType":"YulBlock","src":"31024:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31033:1:54","nodeType":"YulLiteral","src":"31033:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"31036:1:54","nodeType":"YulLiteral","src":"31036:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31026:6:54","nodeType":"YulIdentifier","src":"31026:6:54"},"nativeSrc":"31026:12:54","nodeType":"YulFunctionCall","src":"31026:12:54"},"nativeSrc":"31026:12:54","nodeType":"YulExpressionStatement","src":"31026:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"31011:6:54","nodeType":"YulIdentifier","src":"31011:6:54"},{"name":"end","nativeSrc":"31019:3:54","nodeType":"YulIdentifier","src":"31019:3:54"}],"functionName":{"name":"gt","nativeSrc":"31008:2:54","nodeType":"YulIdentifier","src":"31008:2:54"},"nativeSrc":"31008:15:54","nodeType":"YulFunctionCall","src":"31008:15:54"},"nativeSrc":"31005:35:54","nodeType":"YulIf","src":"31005:35:54"},{"nativeSrc":"31049:28:54","nodeType":"YulVariableDeclaration","src":"31049:28:54","value":{"arguments":[{"name":"offset","nativeSrc":"31064:6:54","nodeType":"YulIdentifier","src":"31064:6:54"},{"kind":"number","nativeSrc":"31072:4:54","nodeType":"YulLiteral","src":"31072:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31060:3:54","nodeType":"YulIdentifier","src":"31060:3:54"},"nativeSrc":"31060:17:54","nodeType":"YulFunctionCall","src":"31060:17:54"},"variables":[{"name":"src","nativeSrc":"31053:3:54","nodeType":"YulTypedName","src":"31053:3:54","type":""}]},{"body":{"nativeSrc":"31142:79:54","nodeType":"YulBlock","src":"31142:79:54","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"31163:3:54","nodeType":"YulIdentifier","src":"31163:3:54"},{"arguments":[{"name":"src","nativeSrc":"31174:3:54","nodeType":"YulIdentifier","src":"31174:3:54"}],"functionName":{"name":"mload","nativeSrc":"31168:5:54","nodeType":"YulIdentifier","src":"31168:5:54"},"nativeSrc":"31168:10:54","nodeType":"YulFunctionCall","src":"31168:10:54"}],"functionName":{"name":"mstore","nativeSrc":"31156:6:54","nodeType":"YulIdentifier","src":"31156:6:54"},"nativeSrc":"31156:23:54","nodeType":"YulFunctionCall","src":"31156:23:54"},"nativeSrc":"31156:23:54","nodeType":"YulExpressionStatement","src":"31156:23:54"},{"nativeSrc":"31192:19:54","nodeType":"YulAssignment","src":"31192:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"31203:3:54","nodeType":"YulIdentifier","src":"31203:3:54"},{"name":"_2","nativeSrc":"31208:2:54","nodeType":"YulIdentifier","src":"31208:2:54"}],"functionName":{"name":"add","nativeSrc":"31199:3:54","nodeType":"YulIdentifier","src":"31199:3:54"},"nativeSrc":"31199:12:54","nodeType":"YulFunctionCall","src":"31199:12:54"},"variableNames":[{"name":"dst","nativeSrc":"31192:3:54","nodeType":"YulIdentifier","src":"31192:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"31097:3:54","nodeType":"YulIdentifier","src":"31097:3:54"},{"name":"srcEnd","nativeSrc":"31102:6:54","nodeType":"YulIdentifier","src":"31102:6:54"}],"functionName":{"name":"lt","nativeSrc":"31094:2:54","nodeType":"YulIdentifier","src":"31094:2:54"},"nativeSrc":"31094:15:54","nodeType":"YulFunctionCall","src":"31094:15:54"},"nativeSrc":"31086:135:54","nodeType":"YulForLoop","post":{"nativeSrc":"31110:23:54","nodeType":"YulBlock","src":"31110:23:54","statements":[{"nativeSrc":"31112:19:54","nodeType":"YulAssignment","src":"31112:19:54","value":{"arguments":[{"name":"src","nativeSrc":"31123:3:54","nodeType":"YulIdentifier","src":"31123:3:54"},{"name":"_2","nativeSrc":"31128:2:54","nodeType":"YulIdentifier","src":"31128:2:54"}],"functionName":{"name":"add","nativeSrc":"31119:3:54","nodeType":"YulIdentifier","src":"31119:3:54"},"nativeSrc":"31119:12:54","nodeType":"YulFunctionCall","src":"31119:12:54"},"variableNames":[{"name":"src","nativeSrc":"31112:3:54","nodeType":"YulIdentifier","src":"31112:3:54"}]}]},"pre":{"nativeSrc":"31090:3:54","nodeType":"YulBlock","src":"31090:3:54","statements":[]},"src":"31086:135:54"},{"nativeSrc":"31230:14:54","nodeType":"YulAssignment","src":"31230:14:54","value":{"name":"dst_1","nativeSrc":"31239:5:54","nodeType":"YulIdentifier","src":"31239:5:54"},"variableNames":[{"name":"array","nativeSrc":"31230:5:54","nodeType":"YulIdentifier","src":"31230:5:54"}]}]},"name":"abi_decode_array_uint256_dyn_fromMemory","nativeSrc":"30585:665:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"30634:6:54","nodeType":"YulTypedName","src":"30634:6:54","type":""},{"name":"end","nativeSrc":"30642:3:54","nodeType":"YulTypedName","src":"30642:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"30650:5:54","nodeType":"YulTypedName","src":"30650:5:54","type":""}],"src":"30585:665:54"},{"body":{"nativeSrc":"31329:1015:54","nodeType":"YulBlock","src":"31329:1015:54","statements":[{"body":{"nativeSrc":"31378:16:54","nodeType":"YulBlock","src":"31378:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31387:1:54","nodeType":"YulLiteral","src":"31387:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"31390:1:54","nodeType":"YulLiteral","src":"31390:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31380:6:54","nodeType":"YulIdentifier","src":"31380:6:54"},"nativeSrc":"31380:12:54","nodeType":"YulFunctionCall","src":"31380:12:54"},"nativeSrc":"31380:12:54","nodeType":"YulExpressionStatement","src":"31380:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31357:6:54","nodeType":"YulIdentifier","src":"31357:6:54"},{"kind":"number","nativeSrc":"31365:4:54","nodeType":"YulLiteral","src":"31365:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"31353:3:54","nodeType":"YulIdentifier","src":"31353:3:54"},"nativeSrc":"31353:17:54","nodeType":"YulFunctionCall","src":"31353:17:54"},{"name":"end","nativeSrc":"31372:3:54","nodeType":"YulIdentifier","src":"31372:3:54"}],"functionName":{"name":"slt","nativeSrc":"31349:3:54","nodeType":"YulIdentifier","src":"31349:3:54"},"nativeSrc":"31349:27:54","nodeType":"YulFunctionCall","src":"31349:27:54"}],"functionName":{"name":"iszero","nativeSrc":"31342:6:54","nodeType":"YulIdentifier","src":"31342:6:54"},"nativeSrc":"31342:35:54","nodeType":"YulFunctionCall","src":"31342:35:54"},"nativeSrc":"31339:55:54","nodeType":"YulIf","src":"31339:55:54"},{"nativeSrc":"31403:23:54","nodeType":"YulVariableDeclaration","src":"31403:23:54","value":{"arguments":[{"name":"offset","nativeSrc":"31419:6:54","nodeType":"YulIdentifier","src":"31419:6:54"}],"functionName":{"name":"mload","nativeSrc":"31413:5:54","nodeType":"YulIdentifier","src":"31413:5:54"},"nativeSrc":"31413:13:54","nodeType":"YulFunctionCall","src":"31413:13:54"},"variables":[{"name":"_1","nativeSrc":"31407:2:54","nodeType":"YulTypedName","src":"31407:2:54","type":""}]},{"nativeSrc":"31435:14:54","nodeType":"YulVariableDeclaration","src":"31435:14:54","value":{"kind":"number","nativeSrc":"31445:4:54","nodeType":"YulLiteral","src":"31445:4:54","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"31439:2:54","nodeType":"YulTypedName","src":"31439:2:54","type":""}]},{"nativeSrc":"31458:71:54","nodeType":"YulVariableDeclaration","src":"31458:71:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"31525:2:54","nodeType":"YulIdentifier","src":"31525:2:54"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nativeSrc":"31485:39:54","nodeType":"YulIdentifier","src":"31485:39:54"},"nativeSrc":"31485:43:54","nodeType":"YulFunctionCall","src":"31485:43:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"31469:15:54","nodeType":"YulIdentifier","src":"31469:15:54"},"nativeSrc":"31469:60:54","nodeType":"YulFunctionCall","src":"31469:60:54"},"variables":[{"name":"dst","nativeSrc":"31462:3:54","nodeType":"YulTypedName","src":"31462:3:54","type":""}]},{"nativeSrc":"31538:16:54","nodeType":"YulVariableDeclaration","src":"31538:16:54","value":{"name":"dst","nativeSrc":"31551:3:54","nodeType":"YulIdentifier","src":"31551:3:54"},"variables":[{"name":"dst_1","nativeSrc":"31542:5:54","nodeType":"YulTypedName","src":"31542:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"31570:3:54","nodeType":"YulIdentifier","src":"31570:3:54"},{"name":"_1","nativeSrc":"31575:2:54","nodeType":"YulIdentifier","src":"31575:2:54"}],"functionName":{"name":"mstore","nativeSrc":"31563:6:54","nodeType":"YulIdentifier","src":"31563:6:54"},"nativeSrc":"31563:15:54","nodeType":"YulFunctionCall","src":"31563:15:54"},"nativeSrc":"31563:15:54","nodeType":"YulExpressionStatement","src":"31563:15:54"},{"nativeSrc":"31587:19:54","nodeType":"YulAssignment","src":"31587:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"31598:3:54","nodeType":"YulIdentifier","src":"31598:3:54"},{"name":"_2","nativeSrc":"31603:2:54","nodeType":"YulIdentifier","src":"31603:2:54"}],"functionName":{"name":"add","nativeSrc":"31594:3:54","nodeType":"YulIdentifier","src":"31594:3:54"},"nativeSrc":"31594:12:54","nodeType":"YulFunctionCall","src":"31594:12:54"},"variableNames":[{"name":"dst","nativeSrc":"31587:3:54","nodeType":"YulIdentifier","src":"31587:3:54"}]},{"nativeSrc":"31615:46:54","nodeType":"YulVariableDeclaration","src":"31615:46:54","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"31637:6:54","nodeType":"YulIdentifier","src":"31637:6:54"},{"arguments":[{"kind":"number","nativeSrc":"31649:1:54","nodeType":"YulLiteral","src":"31649:1:54","type":"","value":"5"},{"name":"_1","nativeSrc":"31652:2:54","nodeType":"YulIdentifier","src":"31652:2:54"}],"functionName":{"name":"shl","nativeSrc":"31645:3:54","nodeType":"YulIdentifier","src":"31645:3:54"},"nativeSrc":"31645:10:54","nodeType":"YulFunctionCall","src":"31645:10:54"}],"functionName":{"name":"add","nativeSrc":"31633:3:54","nodeType":"YulIdentifier","src":"31633:3:54"},"nativeSrc":"31633:23:54","nodeType":"YulFunctionCall","src":"31633:23:54"},{"name":"_2","nativeSrc":"31658:2:54","nodeType":"YulIdentifier","src":"31658:2:54"}],"functionName":{"name":"add","nativeSrc":"31629:3:54","nodeType":"YulIdentifier","src":"31629:3:54"},"nativeSrc":"31629:32:54","nodeType":"YulFunctionCall","src":"31629:32:54"},"variables":[{"name":"srcEnd","nativeSrc":"31619:6:54","nodeType":"YulTypedName","src":"31619:6:54","type":""}]},{"body":{"nativeSrc":"31689:16:54","nodeType":"YulBlock","src":"31689:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31698:1:54","nodeType":"YulLiteral","src":"31698:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"31701:1:54","nodeType":"YulLiteral","src":"31701:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"31691:6:54","nodeType":"YulIdentifier","src":"31691:6:54"},"nativeSrc":"31691:12:54","nodeType":"YulFunctionCall","src":"31691:12:54"},"nativeSrc":"31691:12:54","nodeType":"YulExpressionStatement","src":"31691:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"31676:6:54","nodeType":"YulIdentifier","src":"31676:6:54"},{"name":"end","nativeSrc":"31684:3:54","nodeType":"YulIdentifier","src":"31684:3:54"}],"functionName":{"name":"gt","nativeSrc":"31673:2:54","nodeType":"YulIdentifier","src":"31673:2:54"},"nativeSrc":"31673:15:54","nodeType":"YulFunctionCall","src":"31673:15:54"},"nativeSrc":"31670:35:54","nodeType":"YulIf","src":"31670:35:54"},{"nativeSrc":"31714:26:54","nodeType":"YulVariableDeclaration","src":"31714:26:54","value":{"arguments":[{"name":"offset","nativeSrc":"31729:6:54","nodeType":"YulIdentifier","src":"31729:6:54"},{"name":"_2","nativeSrc":"31737:2:54","nodeType":"YulIdentifier","src":"31737:2:54"}],"functionName":{"name":"add","nativeSrc":"31725:3:54","nodeType":"YulIdentifier","src":"31725:3:54"},"nativeSrc":"31725:15:54","nodeType":"YulFunctionCall","src":"31725:15:54"},"variables":[{"name":"src","nativeSrc":"31718:3:54","nodeType":"YulTypedName","src":"31718:3:54","type":""}]},{"body":{"nativeSrc":"31805:510:54","nodeType":"YulBlock","src":"31805:510:54","statements":[{"nativeSrc":"31819:29:54","nodeType":"YulVariableDeclaration","src":"31819:29:54","value":{"arguments":[{"name":"src","nativeSrc":"31844:3:54","nodeType":"YulIdentifier","src":"31844:3:54"}],"functionName":{"name":"mload","nativeSrc":"31838:5:54","nodeType":"YulIdentifier","src":"31838:5:54"},"nativeSrc":"31838:10:54","nodeType":"YulFunctionCall","src":"31838:10:54"},"variables":[{"name":"innerOffset","nativeSrc":"31823:11:54","nodeType":"YulTypedName","src":"31823:11:54","type":""}]},{"body":{"nativeSrc":"31912:74:54","nodeType":"YulBlock","src":"31912:74:54","statements":[{"nativeSrc":"31930:11:54","nodeType":"YulVariableDeclaration","src":"31930:11:54","value":{"kind":"number","nativeSrc":"31940:1:54","nodeType":"YulLiteral","src":"31940:1:54","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"31934:2:54","nodeType":"YulTypedName","src":"31934:2:54","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"31965:2:54","nodeType":"YulIdentifier","src":"31965:2:54"},{"name":"_3","nativeSrc":"31969:2:54","nodeType":"YulIdentifier","src":"31969:2:54"}],"functionName":{"name":"revert","nativeSrc":"31958:6:54","nodeType":"YulIdentifier","src":"31958:6:54"},"nativeSrc":"31958:14:54","nodeType":"YulFunctionCall","src":"31958:14:54"},"nativeSrc":"31958:14:54","nodeType":"YulExpressionStatement","src":"31958:14:54"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"31867:11:54","nodeType":"YulIdentifier","src":"31867:11:54"},{"kind":"number","nativeSrc":"31880:18:54","nodeType":"YulLiteral","src":"31880:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"31864:2:54","nodeType":"YulIdentifier","src":"31864:2:54"},"nativeSrc":"31864:35:54","nodeType":"YulFunctionCall","src":"31864:35:54"},"nativeSrc":"31861:125:54","nodeType":"YulIf","src":"31861:125:54"},{"nativeSrc":"31999:34:54","nodeType":"YulVariableDeclaration","src":"31999:34:54","value":{"arguments":[{"name":"offset","nativeSrc":"32013:6:54","nodeType":"YulIdentifier","src":"32013:6:54"},{"name":"innerOffset","nativeSrc":"32021:11:54","nodeType":"YulIdentifier","src":"32021:11:54"}],"functionName":{"name":"add","nativeSrc":"32009:3:54","nodeType":"YulIdentifier","src":"32009:3:54"},"nativeSrc":"32009:24:54","nodeType":"YulFunctionCall","src":"32009:24:54"},"variables":[{"name":"_4","nativeSrc":"32003:2:54","nodeType":"YulTypedName","src":"32003:2:54","type":""}]},{"body":{"nativeSrc":"32091:74:54","nodeType":"YulBlock","src":"32091:74:54","statements":[{"nativeSrc":"32109:11:54","nodeType":"YulVariableDeclaration","src":"32109:11:54","value":{"kind":"number","nativeSrc":"32119:1:54","nodeType":"YulLiteral","src":"32119:1:54","type":"","value":"0"},"variables":[{"name":"_5","nativeSrc":"32113:2:54","nodeType":"YulTypedName","src":"32113:2:54","type":""}]},{"expression":{"arguments":[{"name":"_5","nativeSrc":"32144:2:54","nodeType":"YulIdentifier","src":"32144:2:54"},{"name":"_5","nativeSrc":"32148:2:54","nodeType":"YulIdentifier","src":"32148:2:54"}],"functionName":{"name":"revert","nativeSrc":"32137:6:54","nodeType":"YulIdentifier","src":"32137:6:54"},"nativeSrc":"32137:14:54","nodeType":"YulFunctionCall","src":"32137:14:54"},"nativeSrc":"32137:14:54","nodeType":"YulExpressionStatement","src":"32137:14:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32064:2:54","nodeType":"YulIdentifier","src":"32064:2:54"},{"kind":"number","nativeSrc":"32068:2:54","nodeType":"YulLiteral","src":"32068:2:54","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"32060:3:54","nodeType":"YulIdentifier","src":"32060:3:54"},"nativeSrc":"32060:11:54","nodeType":"YulFunctionCall","src":"32060:11:54"},{"name":"end","nativeSrc":"32073:3:54","nodeType":"YulIdentifier","src":"32073:3:54"}],"functionName":{"name":"slt","nativeSrc":"32056:3:54","nodeType":"YulIdentifier","src":"32056:3:54"},"nativeSrc":"32056:21:54","nodeType":"YulFunctionCall","src":"32056:21:54"}],"functionName":{"name":"iszero","nativeSrc":"32049:6:54","nodeType":"YulIdentifier","src":"32049:6:54"},"nativeSrc":"32049:29:54","nodeType":"YulFunctionCall","src":"32049:29:54"},"nativeSrc":"32046:119:54","nodeType":"YulIf","src":"32046:119:54"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32185:3:54","nodeType":"YulIdentifier","src":"32185:3:54"},{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32239:2:54","nodeType":"YulIdentifier","src":"32239:2:54"},{"kind":"number","nativeSrc":"32243:2:54","nodeType":"YulLiteral","src":"32243:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32235:3:54","nodeType":"YulIdentifier","src":"32235:3:54"},"nativeSrc":"32235:11:54","nodeType":"YulFunctionCall","src":"32235:11:54"},{"arguments":[{"arguments":[{"name":"_4","nativeSrc":"32258:2:54","nodeType":"YulIdentifier","src":"32258:2:54"},{"name":"_2","nativeSrc":"32262:2:54","nodeType":"YulIdentifier","src":"32262:2:54"}],"functionName":{"name":"add","nativeSrc":"32254:3:54","nodeType":"YulIdentifier","src":"32254:3:54"},"nativeSrc":"32254:11:54","nodeType":"YulFunctionCall","src":"32254:11:54"}],"functionName":{"name":"mload","nativeSrc":"32248:5:54","nodeType":"YulIdentifier","src":"32248:5:54"},"nativeSrc":"32248:18:54","nodeType":"YulFunctionCall","src":"32248:18:54"},{"name":"end","nativeSrc":"32268:3:54","nodeType":"YulIdentifier","src":"32268:3:54"}],"functionName":{"name":"abi_decode_available_length_bytes_fromMemory","nativeSrc":"32190:44:54","nodeType":"YulIdentifier","src":"32190:44:54"},"nativeSrc":"32190:82:54","nodeType":"YulFunctionCall","src":"32190:82:54"}],"functionName":{"name":"mstore","nativeSrc":"32178:6:54","nodeType":"YulIdentifier","src":"32178:6:54"},"nativeSrc":"32178:95:54","nodeType":"YulFunctionCall","src":"32178:95:54"},"nativeSrc":"32178:95:54","nodeType":"YulExpressionStatement","src":"32178:95:54"},{"nativeSrc":"32286:19:54","nodeType":"YulAssignment","src":"32286:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"32297:3:54","nodeType":"YulIdentifier","src":"32297:3:54"},{"name":"_2","nativeSrc":"32302:2:54","nodeType":"YulIdentifier","src":"32302:2:54"}],"functionName":{"name":"add","nativeSrc":"32293:3:54","nodeType":"YulIdentifier","src":"32293:3:54"},"nativeSrc":"32293:12:54","nodeType":"YulFunctionCall","src":"32293:12:54"},"variableNames":[{"name":"dst","nativeSrc":"32286:3:54","nodeType":"YulIdentifier","src":"32286:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"31760:3:54","nodeType":"YulIdentifier","src":"31760:3:54"},{"name":"srcEnd","nativeSrc":"31765:6:54","nodeType":"YulIdentifier","src":"31765:6:54"}],"functionName":{"name":"lt","nativeSrc":"31757:2:54","nodeType":"YulIdentifier","src":"31757:2:54"},"nativeSrc":"31757:15:54","nodeType":"YulFunctionCall","src":"31757:15:54"},"nativeSrc":"31749:566:54","nodeType":"YulForLoop","post":{"nativeSrc":"31773:23:54","nodeType":"YulBlock","src":"31773:23:54","statements":[{"nativeSrc":"31775:19:54","nodeType":"YulAssignment","src":"31775:19:54","value":{"arguments":[{"name":"src","nativeSrc":"31786:3:54","nodeType":"YulIdentifier","src":"31786:3:54"},{"name":"_2","nativeSrc":"31791:2:54","nodeType":"YulIdentifier","src":"31791:2:54"}],"functionName":{"name":"add","nativeSrc":"31782:3:54","nodeType":"YulIdentifier","src":"31782:3:54"},"nativeSrc":"31782:12:54","nodeType":"YulFunctionCall","src":"31782:12:54"},"variableNames":[{"name":"src","nativeSrc":"31775:3:54","nodeType":"YulIdentifier","src":"31775:3:54"}]}]},"pre":{"nativeSrc":"31753:3:54","nodeType":"YulBlock","src":"31753:3:54","statements":[]},"src":"31749:566:54"},{"nativeSrc":"32324:14:54","nodeType":"YulAssignment","src":"32324:14:54","value":{"name":"dst_1","nativeSrc":"32333:5:54","nodeType":"YulIdentifier","src":"32333:5:54"},"variableNames":[{"name":"array","nativeSrc":"32324:5:54","nodeType":"YulIdentifier","src":"32324:5:54"}]}]},"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"31255:1089:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"31303:6:54","nodeType":"YulTypedName","src":"31303:6:54","type":""},{"name":"end","nativeSrc":"31311:3:54","nodeType":"YulTypedName","src":"31311:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"31319:5:54","nodeType":"YulTypedName","src":"31319:5:54","type":""}],"src":"31255:1089:54"},{"body":{"nativeSrc":"32422:821:54","nodeType":"YulBlock","src":"32422:821:54","statements":[{"body":{"nativeSrc":"32471:16:54","nodeType":"YulBlock","src":"32471:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32480:1:54","nodeType":"YulLiteral","src":"32480:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"32483:1:54","nodeType":"YulLiteral","src":"32483:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32473:6:54","nodeType":"YulIdentifier","src":"32473:6:54"},"nativeSrc":"32473:12:54","nodeType":"YulFunctionCall","src":"32473:12:54"},"nativeSrc":"32473:12:54","nodeType":"YulExpressionStatement","src":"32473:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32450:6:54","nodeType":"YulIdentifier","src":"32450:6:54"},{"kind":"number","nativeSrc":"32458:4:54","nodeType":"YulLiteral","src":"32458:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"32446:3:54","nodeType":"YulIdentifier","src":"32446:3:54"},"nativeSrc":"32446:17:54","nodeType":"YulFunctionCall","src":"32446:17:54"},{"name":"end","nativeSrc":"32465:3:54","nodeType":"YulIdentifier","src":"32465:3:54"}],"functionName":{"name":"slt","nativeSrc":"32442:3:54","nodeType":"YulIdentifier","src":"32442:3:54"},"nativeSrc":"32442:27:54","nodeType":"YulFunctionCall","src":"32442:27:54"}],"functionName":{"name":"iszero","nativeSrc":"32435:6:54","nodeType":"YulIdentifier","src":"32435:6:54"},"nativeSrc":"32435:35:54","nodeType":"YulFunctionCall","src":"32435:35:54"},"nativeSrc":"32432:55:54","nodeType":"YulIf","src":"32432:55:54"},{"nativeSrc":"32496:23:54","nodeType":"YulVariableDeclaration","src":"32496:23:54","value":{"arguments":[{"name":"offset","nativeSrc":"32512:6:54","nodeType":"YulIdentifier","src":"32512:6:54"}],"functionName":{"name":"mload","nativeSrc":"32506:5:54","nodeType":"YulIdentifier","src":"32506:5:54"},"nativeSrc":"32506:13:54","nodeType":"YulFunctionCall","src":"32506:13:54"},"variables":[{"name":"_1","nativeSrc":"32500:2:54","nodeType":"YulTypedName","src":"32500:2:54","type":""}]},{"nativeSrc":"32528:14:54","nodeType":"YulVariableDeclaration","src":"32528:14:54","value":{"kind":"number","nativeSrc":"32538:4:54","nodeType":"YulLiteral","src":"32538:4:54","type":"","value":"0x20"},"variables":[{"name":"_2","nativeSrc":"32532:2:54","nodeType":"YulTypedName","src":"32532:2:54","type":""}]},{"nativeSrc":"32551:71:54","nodeType":"YulVariableDeclaration","src":"32551:71:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"32618:2:54","nodeType":"YulIdentifier","src":"32618:2:54"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nativeSrc":"32578:39:54","nodeType":"YulIdentifier","src":"32578:39:54"},"nativeSrc":"32578:43:54","nodeType":"YulFunctionCall","src":"32578:43:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"32562:15:54","nodeType":"YulIdentifier","src":"32562:15:54"},"nativeSrc":"32562:60:54","nodeType":"YulFunctionCall","src":"32562:60:54"},"variables":[{"name":"dst","nativeSrc":"32555:3:54","nodeType":"YulTypedName","src":"32555:3:54","type":""}]},{"nativeSrc":"32631:16:54","nodeType":"YulVariableDeclaration","src":"32631:16:54","value":{"name":"dst","nativeSrc":"32644:3:54","nodeType":"YulIdentifier","src":"32644:3:54"},"variables":[{"name":"dst_1","nativeSrc":"32635:5:54","nodeType":"YulTypedName","src":"32635:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"32663:3:54","nodeType":"YulIdentifier","src":"32663:3:54"},{"name":"_1","nativeSrc":"32668:2:54","nodeType":"YulIdentifier","src":"32668:2:54"}],"functionName":{"name":"mstore","nativeSrc":"32656:6:54","nodeType":"YulIdentifier","src":"32656:6:54"},"nativeSrc":"32656:15:54","nodeType":"YulFunctionCall","src":"32656:15:54"},"nativeSrc":"32656:15:54","nodeType":"YulExpressionStatement","src":"32656:15:54"},{"nativeSrc":"32680:19:54","nodeType":"YulAssignment","src":"32680:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"32691:3:54","nodeType":"YulIdentifier","src":"32691:3:54"},{"name":"_2","nativeSrc":"32696:2:54","nodeType":"YulIdentifier","src":"32696:2:54"}],"functionName":{"name":"add","nativeSrc":"32687:3:54","nodeType":"YulIdentifier","src":"32687:3:54"},"nativeSrc":"32687:12:54","nodeType":"YulFunctionCall","src":"32687:12:54"},"variableNames":[{"name":"dst","nativeSrc":"32680:3:54","nodeType":"YulIdentifier","src":"32680:3:54"}]},{"nativeSrc":"32708:46:54","nodeType":"YulVariableDeclaration","src":"32708:46:54","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"32730:6:54","nodeType":"YulIdentifier","src":"32730:6:54"},{"arguments":[{"kind":"number","nativeSrc":"32742:1:54","nodeType":"YulLiteral","src":"32742:1:54","type":"","value":"5"},{"name":"_1","nativeSrc":"32745:2:54","nodeType":"YulIdentifier","src":"32745:2:54"}],"functionName":{"name":"shl","nativeSrc":"32738:3:54","nodeType":"YulIdentifier","src":"32738:3:54"},"nativeSrc":"32738:10:54","nodeType":"YulFunctionCall","src":"32738:10:54"}],"functionName":{"name":"add","nativeSrc":"32726:3:54","nodeType":"YulIdentifier","src":"32726:3:54"},"nativeSrc":"32726:23:54","nodeType":"YulFunctionCall","src":"32726:23:54"},{"name":"_2","nativeSrc":"32751:2:54","nodeType":"YulIdentifier","src":"32751:2:54"}],"functionName":{"name":"add","nativeSrc":"32722:3:54","nodeType":"YulIdentifier","src":"32722:3:54"},"nativeSrc":"32722:32:54","nodeType":"YulFunctionCall","src":"32722:32:54"},"variables":[{"name":"srcEnd","nativeSrc":"32712:6:54","nodeType":"YulTypedName","src":"32712:6:54","type":""}]},{"body":{"nativeSrc":"32782:16:54","nodeType":"YulBlock","src":"32782:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32791:1:54","nodeType":"YulLiteral","src":"32791:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"32794:1:54","nodeType":"YulLiteral","src":"32794:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32784:6:54","nodeType":"YulIdentifier","src":"32784:6:54"},"nativeSrc":"32784:12:54","nodeType":"YulFunctionCall","src":"32784:12:54"},"nativeSrc":"32784:12:54","nodeType":"YulExpressionStatement","src":"32784:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"32769:6:54","nodeType":"YulIdentifier","src":"32769:6:54"},{"name":"end","nativeSrc":"32777:3:54","nodeType":"YulIdentifier","src":"32777:3:54"}],"functionName":{"name":"gt","nativeSrc":"32766:2:54","nodeType":"YulIdentifier","src":"32766:2:54"},"nativeSrc":"32766:15:54","nodeType":"YulFunctionCall","src":"32766:15:54"},"nativeSrc":"32763:35:54","nodeType":"YulIf","src":"32763:35:54"},{"nativeSrc":"32807:26:54","nodeType":"YulVariableDeclaration","src":"32807:26:54","value":{"arguments":[{"name":"offset","nativeSrc":"32822:6:54","nodeType":"YulIdentifier","src":"32822:6:54"},{"name":"_2","nativeSrc":"32830:2:54","nodeType":"YulIdentifier","src":"32830:2:54"}],"functionName":{"name":"add","nativeSrc":"32818:3:54","nodeType":"YulIdentifier","src":"32818:3:54"},"nativeSrc":"32818:15:54","nodeType":"YulFunctionCall","src":"32818:15:54"},"variables":[{"name":"src","nativeSrc":"32811:3:54","nodeType":"YulTypedName","src":"32811:3:54","type":""}]},{"body":{"nativeSrc":"32898:316:54","nodeType":"YulBlock","src":"32898:316:54","statements":[{"nativeSrc":"32912:29:54","nodeType":"YulVariableDeclaration","src":"32912:29:54","value":{"arguments":[{"name":"src","nativeSrc":"32937:3:54","nodeType":"YulIdentifier","src":"32937:3:54"}],"functionName":{"name":"mload","nativeSrc":"32931:5:54","nodeType":"YulIdentifier","src":"32931:5:54"},"nativeSrc":"32931:10:54","nodeType":"YulFunctionCall","src":"32931:10:54"},"variables":[{"name":"innerOffset","nativeSrc":"32916:11:54","nodeType":"YulTypedName","src":"32916:11:54","type":""}]},{"body":{"nativeSrc":"33005:74:54","nodeType":"YulBlock","src":"33005:74:54","statements":[{"nativeSrc":"33023:11:54","nodeType":"YulVariableDeclaration","src":"33023:11:54","value":{"kind":"number","nativeSrc":"33033:1:54","nodeType":"YulLiteral","src":"33033:1:54","type":"","value":"0"},"variables":[{"name":"_3","nativeSrc":"33027:2:54","nodeType":"YulTypedName","src":"33027:2:54","type":""}]},{"expression":{"arguments":[{"name":"_3","nativeSrc":"33058:2:54","nodeType":"YulIdentifier","src":"33058:2:54"},{"name":"_3","nativeSrc":"33062:2:54","nodeType":"YulIdentifier","src":"33062:2:54"}],"functionName":{"name":"revert","nativeSrc":"33051:6:54","nodeType":"YulIdentifier","src":"33051:6:54"},"nativeSrc":"33051:14:54","nodeType":"YulFunctionCall","src":"33051:14:54"},"nativeSrc":"33051:14:54","nodeType":"YulExpressionStatement","src":"33051:14:54"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"32960:11:54","nodeType":"YulIdentifier","src":"32960:11:54"},{"kind":"number","nativeSrc":"32973:18:54","nodeType":"YulLiteral","src":"32973:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"32957:2:54","nodeType":"YulIdentifier","src":"32957:2:54"},"nativeSrc":"32957:35:54","nodeType":"YulFunctionCall","src":"32957:35:54"},"nativeSrc":"32954:125:54","nodeType":"YulIf","src":"32954:125:54"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"33099:3:54","nodeType":"YulIdentifier","src":"33099:3:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"33140:6:54","nodeType":"YulIdentifier","src":"33140:6:54"},{"name":"innerOffset","nativeSrc":"33148:11:54","nodeType":"YulIdentifier","src":"33148:11:54"}],"functionName":{"name":"add","nativeSrc":"33136:3:54","nodeType":"YulIdentifier","src":"33136:3:54"},"nativeSrc":"33136:24:54","nodeType":"YulFunctionCall","src":"33136:24:54"},{"name":"_2","nativeSrc":"33162:2:54","nodeType":"YulIdentifier","src":"33162:2:54"}],"functionName":{"name":"add","nativeSrc":"33132:3:54","nodeType":"YulIdentifier","src":"33132:3:54"},"nativeSrc":"33132:33:54","nodeType":"YulFunctionCall","src":"33132:33:54"},{"name":"end","nativeSrc":"33167:3:54","nodeType":"YulIdentifier","src":"33167:3:54"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nativeSrc":"33104:27:54","nodeType":"YulIdentifier","src":"33104:27:54"},"nativeSrc":"33104:67:54","nodeType":"YulFunctionCall","src":"33104:67:54"}],"functionName":{"name":"mstore","nativeSrc":"33092:6:54","nodeType":"YulIdentifier","src":"33092:6:54"},"nativeSrc":"33092:80:54","nodeType":"YulFunctionCall","src":"33092:80:54"},"nativeSrc":"33092:80:54","nodeType":"YulExpressionStatement","src":"33092:80:54"},{"nativeSrc":"33185:19:54","nodeType":"YulAssignment","src":"33185:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"33196:3:54","nodeType":"YulIdentifier","src":"33196:3:54"},{"name":"_2","nativeSrc":"33201:2:54","nodeType":"YulIdentifier","src":"33201:2:54"}],"functionName":{"name":"add","nativeSrc":"33192:3:54","nodeType":"YulIdentifier","src":"33192:3:54"},"nativeSrc":"33192:12:54","nodeType":"YulFunctionCall","src":"33192:12:54"},"variableNames":[{"name":"dst","nativeSrc":"33185:3:54","nodeType":"YulIdentifier","src":"33185:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"32853:3:54","nodeType":"YulIdentifier","src":"32853:3:54"},{"name":"srcEnd","nativeSrc":"32858:6:54","nodeType":"YulIdentifier","src":"32858:6:54"}],"functionName":{"name":"lt","nativeSrc":"32850:2:54","nodeType":"YulIdentifier","src":"32850:2:54"},"nativeSrc":"32850:15:54","nodeType":"YulFunctionCall","src":"32850:15:54"},"nativeSrc":"32842:372:54","nodeType":"YulForLoop","post":{"nativeSrc":"32866:23:54","nodeType":"YulBlock","src":"32866:23:54","statements":[{"nativeSrc":"32868:19:54","nodeType":"YulAssignment","src":"32868:19:54","value":{"arguments":[{"name":"src","nativeSrc":"32879:3:54","nodeType":"YulIdentifier","src":"32879:3:54"},{"name":"_2","nativeSrc":"32884:2:54","nodeType":"YulIdentifier","src":"32884:2:54"}],"functionName":{"name":"add","nativeSrc":"32875:3:54","nodeType":"YulIdentifier","src":"32875:3:54"},"nativeSrc":"32875:12:54","nodeType":"YulFunctionCall","src":"32875:12:54"},"variableNames":[{"name":"src","nativeSrc":"32868:3:54","nodeType":"YulIdentifier","src":"32868:3:54"}]}]},"pre":{"nativeSrc":"32846:3:54","nodeType":"YulBlock","src":"32846:3:54","statements":[]},"src":"32842:372:54"},{"nativeSrc":"33223:14:54","nodeType":"YulAssignment","src":"33223:14:54","value":{"name":"dst_1","nativeSrc":"33232:5:54","nodeType":"YulIdentifier","src":"33232:5:54"},"variableNames":[{"name":"array","nativeSrc":"33223:5:54","nodeType":"YulIdentifier","src":"33223:5:54"}]}]},"name":"abi_decode_array_bytes_dyn_fromMemory","nativeSrc":"32349:894:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"32396:6:54","nodeType":"YulTypedName","src":"32396:6:54","type":""},{"name":"end","nativeSrc":"32404:3:54","nodeType":"YulTypedName","src":"32404:3:54","type":""}],"returnVariables":[{"name":"array","nativeSrc":"32412:5:54","nodeType":"YulTypedName","src":"32412:5:54","type":""}],"src":"32349:894:54"},{"body":{"nativeSrc":"33306:102:54","nodeType":"YulBlock","src":"33306:102:54","statements":[{"nativeSrc":"33316:22:54","nodeType":"YulAssignment","src":"33316:22:54","value":{"arguments":[{"name":"offset","nativeSrc":"33331:6:54","nodeType":"YulIdentifier","src":"33331:6:54"}],"functionName":{"name":"mload","nativeSrc":"33325:5:54","nodeType":"YulIdentifier","src":"33325:5:54"},"nativeSrc":"33325:13:54","nodeType":"YulFunctionCall","src":"33325:13:54"},"variableNames":[{"name":"value","nativeSrc":"33316:5:54","nodeType":"YulIdentifier","src":"33316:5:54"}]},{"body":{"nativeSrc":"33386:16:54","nodeType":"YulBlock","src":"33386:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33395:1:54","nodeType":"YulLiteral","src":"33395:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"33398:1:54","nodeType":"YulLiteral","src":"33398:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33388:6:54","nodeType":"YulIdentifier","src":"33388:6:54"},"nativeSrc":"33388:12:54","nodeType":"YulFunctionCall","src":"33388:12:54"},"nativeSrc":"33388:12:54","nodeType":"YulExpressionStatement","src":"33388:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"33360:5:54","nodeType":"YulIdentifier","src":"33360:5:54"},{"arguments":[{"name":"value","nativeSrc":"33371:5:54","nodeType":"YulIdentifier","src":"33371:5:54"},{"kind":"number","nativeSrc":"33378:4:54","nodeType":"YulLiteral","src":"33378:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"33367:3:54","nodeType":"YulIdentifier","src":"33367:3:54"},"nativeSrc":"33367:16:54","nodeType":"YulFunctionCall","src":"33367:16:54"}],"functionName":{"name":"eq","nativeSrc":"33357:2:54","nodeType":"YulIdentifier","src":"33357:2:54"},"nativeSrc":"33357:27:54","nodeType":"YulFunctionCall","src":"33357:27:54"}],"functionName":{"name":"iszero","nativeSrc":"33350:6:54","nodeType":"YulIdentifier","src":"33350:6:54"},"nativeSrc":"33350:35:54","nodeType":"YulFunctionCall","src":"33350:35:54"},"nativeSrc":"33347:55:54","nodeType":"YulIf","src":"33347:55:54"}]},"name":"abi_decode_uint8_fromMemory","nativeSrc":"33248:160:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"33285:6:54","nodeType":"YulTypedName","src":"33285:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"33296:5:54","nodeType":"YulTypedName","src":"33296:5:54","type":""}],"src":"33248:160:54"},{"body":{"nativeSrc":"33679:1502:54","nodeType":"YulBlock","src":"33679:1502:54","statements":[{"body":{"nativeSrc":"33726:16:54","nodeType":"YulBlock","src":"33726:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33735:1:54","nodeType":"YulLiteral","src":"33735:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"33738:1:54","nodeType":"YulLiteral","src":"33738:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33728:6:54","nodeType":"YulIdentifier","src":"33728:6:54"},"nativeSrc":"33728:12:54","nodeType":"YulFunctionCall","src":"33728:12:54"},"nativeSrc":"33728:12:54","nodeType":"YulExpressionStatement","src":"33728:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33700:7:54","nodeType":"YulIdentifier","src":"33700:7:54"},{"name":"headStart","nativeSrc":"33709:9:54","nodeType":"YulIdentifier","src":"33709:9:54"}],"functionName":{"name":"sub","nativeSrc":"33696:3:54","nodeType":"YulIdentifier","src":"33696:3:54"},"nativeSrc":"33696:23:54","nodeType":"YulFunctionCall","src":"33696:23:54"},{"kind":"number","nativeSrc":"33721:3:54","nodeType":"YulLiteral","src":"33721:3:54","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"33692:3:54","nodeType":"YulIdentifier","src":"33692:3:54"},"nativeSrc":"33692:33:54","nodeType":"YulFunctionCall","src":"33692:33:54"},"nativeSrc":"33689:53:54","nodeType":"YulIf","src":"33689:53:54"},{"nativeSrc":"33751:30:54","nodeType":"YulVariableDeclaration","src":"33751:30:54","value":{"arguments":[{"name":"headStart","nativeSrc":"33771:9:54","nodeType":"YulIdentifier","src":"33771:9:54"}],"functionName":{"name":"mload","nativeSrc":"33765:5:54","nodeType":"YulIdentifier","src":"33765:5:54"},"nativeSrc":"33765:16:54","nodeType":"YulFunctionCall","src":"33765:16:54"},"variables":[{"name":"offset","nativeSrc":"33755:6:54","nodeType":"YulTypedName","src":"33755:6:54","type":""}]},{"nativeSrc":"33790:28:54","nodeType":"YulVariableDeclaration","src":"33790:28:54","value":{"kind":"number","nativeSrc":"33800:18:54","nodeType":"YulLiteral","src":"33800:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"33794:2:54","nodeType":"YulTypedName","src":"33794:2:54","type":""}]},{"body":{"nativeSrc":"33845:16:54","nodeType":"YulBlock","src":"33845:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33854:1:54","nodeType":"YulLiteral","src":"33854:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"33857:1:54","nodeType":"YulLiteral","src":"33857:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33847:6:54","nodeType":"YulIdentifier","src":"33847:6:54"},"nativeSrc":"33847:12:54","nodeType":"YulFunctionCall","src":"33847:12:54"},"nativeSrc":"33847:12:54","nodeType":"YulExpressionStatement","src":"33847:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"33833:6:54","nodeType":"YulIdentifier","src":"33833:6:54"},{"name":"_1","nativeSrc":"33841:2:54","nodeType":"YulIdentifier","src":"33841:2:54"}],"functionName":{"name":"gt","nativeSrc":"33830:2:54","nodeType":"YulIdentifier","src":"33830:2:54"},"nativeSrc":"33830:14:54","nodeType":"YulFunctionCall","src":"33830:14:54"},"nativeSrc":"33827:34:54","nodeType":"YulIf","src":"33827:34:54"},{"nativeSrc":"33870:32:54","nodeType":"YulVariableDeclaration","src":"33870:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"33884:9:54","nodeType":"YulIdentifier","src":"33884:9:54"},{"name":"offset","nativeSrc":"33895:6:54","nodeType":"YulIdentifier","src":"33895:6:54"}],"functionName":{"name":"add","nativeSrc":"33880:3:54","nodeType":"YulIdentifier","src":"33880:3:54"},"nativeSrc":"33880:22:54","nodeType":"YulFunctionCall","src":"33880:22:54"},"variables":[{"name":"_2","nativeSrc":"33874:2:54","nodeType":"YulTypedName","src":"33874:2:54","type":""}]},{"body":{"nativeSrc":"33950:16:54","nodeType":"YulBlock","src":"33950:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33959:1:54","nodeType":"YulLiteral","src":"33959:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"33962:1:54","nodeType":"YulLiteral","src":"33962:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"33952:6:54","nodeType":"YulIdentifier","src":"33952:6:54"},"nativeSrc":"33952:12:54","nodeType":"YulFunctionCall","src":"33952:12:54"},"nativeSrc":"33952:12:54","nodeType":"YulExpressionStatement","src":"33952:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"33929:2:54","nodeType":"YulIdentifier","src":"33929:2:54"},{"kind":"number","nativeSrc":"33933:4:54","nodeType":"YulLiteral","src":"33933:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"33925:3:54","nodeType":"YulIdentifier","src":"33925:3:54"},"nativeSrc":"33925:13:54","nodeType":"YulFunctionCall","src":"33925:13:54"},{"name":"dataEnd","nativeSrc":"33940:7:54","nodeType":"YulIdentifier","src":"33940:7:54"}],"functionName":{"name":"slt","nativeSrc":"33921:3:54","nodeType":"YulIdentifier","src":"33921:3:54"},"nativeSrc":"33921:27:54","nodeType":"YulFunctionCall","src":"33921:27:54"}],"functionName":{"name":"iszero","nativeSrc":"33914:6:54","nodeType":"YulIdentifier","src":"33914:6:54"},"nativeSrc":"33914:35:54","nodeType":"YulFunctionCall","src":"33914:35:54"},"nativeSrc":"33911:55:54","nodeType":"YulIf","src":"33911:55:54"},{"nativeSrc":"33975:19:54","nodeType":"YulVariableDeclaration","src":"33975:19:54","value":{"arguments":[{"name":"_2","nativeSrc":"33991:2:54","nodeType":"YulIdentifier","src":"33991:2:54"}],"functionName":{"name":"mload","nativeSrc":"33985:5:54","nodeType":"YulIdentifier","src":"33985:5:54"},"nativeSrc":"33985:9:54","nodeType":"YulFunctionCall","src":"33985:9:54"},"variables":[{"name":"_3","nativeSrc":"33979:2:54","nodeType":"YulTypedName","src":"33979:2:54","type":""}]},{"nativeSrc":"34003:14:54","nodeType":"YulVariableDeclaration","src":"34003:14:54","value":{"kind":"number","nativeSrc":"34013:4:54","nodeType":"YulLiteral","src":"34013:4:54","type":"","value":"0x20"},"variables":[{"name":"_4","nativeSrc":"34007:2:54","nodeType":"YulTypedName","src":"34007:2:54","type":""}]},{"nativeSrc":"34026:71:54","nodeType":"YulVariableDeclaration","src":"34026:71:54","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"34093:2:54","nodeType":"YulIdentifier","src":"34093:2:54"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nativeSrc":"34053:39:54","nodeType":"YulIdentifier","src":"34053:39:54"},"nativeSrc":"34053:43:54","nodeType":"YulFunctionCall","src":"34053:43:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"34037:15:54","nodeType":"YulIdentifier","src":"34037:15:54"},"nativeSrc":"34037:60:54","nodeType":"YulFunctionCall","src":"34037:60:54"},"variables":[{"name":"dst","nativeSrc":"34030:3:54","nodeType":"YulTypedName","src":"34030:3:54","type":""}]},{"nativeSrc":"34106:16:54","nodeType":"YulVariableDeclaration","src":"34106:16:54","value":{"name":"dst","nativeSrc":"34119:3:54","nodeType":"YulIdentifier","src":"34119:3:54"},"variables":[{"name":"dst_1","nativeSrc":"34110:5:54","nodeType":"YulTypedName","src":"34110:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34138:3:54","nodeType":"YulIdentifier","src":"34138:3:54"},{"name":"_3","nativeSrc":"34143:2:54","nodeType":"YulIdentifier","src":"34143:2:54"}],"functionName":{"name":"mstore","nativeSrc":"34131:6:54","nodeType":"YulIdentifier","src":"34131:6:54"},"nativeSrc":"34131:15:54","nodeType":"YulFunctionCall","src":"34131:15:54"},"nativeSrc":"34131:15:54","nodeType":"YulExpressionStatement","src":"34131:15:54"},{"nativeSrc":"34155:19:54","nodeType":"YulAssignment","src":"34155:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"34166:3:54","nodeType":"YulIdentifier","src":"34166:3:54"},{"name":"_4","nativeSrc":"34171:2:54","nodeType":"YulIdentifier","src":"34171:2:54"}],"functionName":{"name":"add","nativeSrc":"34162:3:54","nodeType":"YulIdentifier","src":"34162:3:54"},"nativeSrc":"34162:12:54","nodeType":"YulFunctionCall","src":"34162:12:54"},"variableNames":[{"name":"dst","nativeSrc":"34155:3:54","nodeType":"YulIdentifier","src":"34155:3:54"}]},{"nativeSrc":"34183:42:54","nodeType":"YulVariableDeclaration","src":"34183:42:54","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"34205:2:54","nodeType":"YulIdentifier","src":"34205:2:54"},{"arguments":[{"kind":"number","nativeSrc":"34213:1:54","nodeType":"YulLiteral","src":"34213:1:54","type":"","value":"5"},{"name":"_3","nativeSrc":"34216:2:54","nodeType":"YulIdentifier","src":"34216:2:54"}],"functionName":{"name":"shl","nativeSrc":"34209:3:54","nodeType":"YulIdentifier","src":"34209:3:54"},"nativeSrc":"34209:10:54","nodeType":"YulFunctionCall","src":"34209:10:54"}],"functionName":{"name":"add","nativeSrc":"34201:3:54","nodeType":"YulIdentifier","src":"34201:3:54"},"nativeSrc":"34201:19:54","nodeType":"YulFunctionCall","src":"34201:19:54"},{"name":"_4","nativeSrc":"34222:2:54","nodeType":"YulIdentifier","src":"34222:2:54"}],"functionName":{"name":"add","nativeSrc":"34197:3:54","nodeType":"YulIdentifier","src":"34197:3:54"},"nativeSrc":"34197:28:54","nodeType":"YulFunctionCall","src":"34197:28:54"},"variables":[{"name":"srcEnd","nativeSrc":"34187:6:54","nodeType":"YulTypedName","src":"34187:6:54","type":""}]},{"body":{"nativeSrc":"34257:16:54","nodeType":"YulBlock","src":"34257:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34266:1:54","nodeType":"YulLiteral","src":"34266:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"34269:1:54","nodeType":"YulLiteral","src":"34269:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34259:6:54","nodeType":"YulIdentifier","src":"34259:6:54"},"nativeSrc":"34259:12:54","nodeType":"YulFunctionCall","src":"34259:12:54"},"nativeSrc":"34259:12:54","nodeType":"YulExpressionStatement","src":"34259:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"34240:6:54","nodeType":"YulIdentifier","src":"34240:6:54"},{"name":"dataEnd","nativeSrc":"34248:7:54","nodeType":"YulIdentifier","src":"34248:7:54"}],"functionName":{"name":"gt","nativeSrc":"34237:2:54","nodeType":"YulIdentifier","src":"34237:2:54"},"nativeSrc":"34237:19:54","nodeType":"YulFunctionCall","src":"34237:19:54"},"nativeSrc":"34234:39:54","nodeType":"YulIf","src":"34234:39:54"},{"nativeSrc":"34282:22:54","nodeType":"YulVariableDeclaration","src":"34282:22:54","value":{"arguments":[{"name":"_2","nativeSrc":"34297:2:54","nodeType":"YulIdentifier","src":"34297:2:54"},{"name":"_4","nativeSrc":"34301:2:54","nodeType":"YulIdentifier","src":"34301:2:54"}],"functionName":{"name":"add","nativeSrc":"34293:3:54","nodeType":"YulIdentifier","src":"34293:3:54"},"nativeSrc":"34293:11:54","nodeType":"YulFunctionCall","src":"34293:11:54"},"variables":[{"name":"src","nativeSrc":"34286:3:54","nodeType":"YulTypedName","src":"34286:3:54","type":""}]},{"body":{"nativeSrc":"34369:154:54","nodeType":"YulBlock","src":"34369:154:54","statements":[{"nativeSrc":"34383:23:54","nodeType":"YulVariableDeclaration","src":"34383:23:54","value":{"arguments":[{"name":"src","nativeSrc":"34402:3:54","nodeType":"YulIdentifier","src":"34402:3:54"}],"functionName":{"name":"mload","nativeSrc":"34396:5:54","nodeType":"YulIdentifier","src":"34396:5:54"},"nativeSrc":"34396:10:54","nodeType":"YulFunctionCall","src":"34396:10:54"},"variables":[{"name":"value","nativeSrc":"34387:5:54","nodeType":"YulTypedName","src":"34387:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"34444:5:54","nodeType":"YulIdentifier","src":"34444:5:54"}],"functionName":{"name":"validator_revert_address","nativeSrc":"34419:24:54","nodeType":"YulIdentifier","src":"34419:24:54"},"nativeSrc":"34419:31:54","nodeType":"YulFunctionCall","src":"34419:31:54"},"nativeSrc":"34419:31:54","nodeType":"YulExpressionStatement","src":"34419:31:54"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"34470:3:54","nodeType":"YulIdentifier","src":"34470:3:54"},{"name":"value","nativeSrc":"34475:5:54","nodeType":"YulIdentifier","src":"34475:5:54"}],"functionName":{"name":"mstore","nativeSrc":"34463:6:54","nodeType":"YulIdentifier","src":"34463:6:54"},"nativeSrc":"34463:18:54","nodeType":"YulFunctionCall","src":"34463:18:54"},"nativeSrc":"34463:18:54","nodeType":"YulExpressionStatement","src":"34463:18:54"},{"nativeSrc":"34494:19:54","nodeType":"YulAssignment","src":"34494:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"34505:3:54","nodeType":"YulIdentifier","src":"34505:3:54"},{"name":"_4","nativeSrc":"34510:2:54","nodeType":"YulIdentifier","src":"34510:2:54"}],"functionName":{"name":"add","nativeSrc":"34501:3:54","nodeType":"YulIdentifier","src":"34501:3:54"},"nativeSrc":"34501:12:54","nodeType":"YulFunctionCall","src":"34501:12:54"},"variableNames":[{"name":"dst","nativeSrc":"34494:3:54","nodeType":"YulIdentifier","src":"34494:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"34324:3:54","nodeType":"YulIdentifier","src":"34324:3:54"},{"name":"srcEnd","nativeSrc":"34329:6:54","nodeType":"YulIdentifier","src":"34329:6:54"}],"functionName":{"name":"lt","nativeSrc":"34321:2:54","nodeType":"YulIdentifier","src":"34321:2:54"},"nativeSrc":"34321:15:54","nodeType":"YulFunctionCall","src":"34321:15:54"},"nativeSrc":"34313:210:54","nodeType":"YulForLoop","post":{"nativeSrc":"34337:23:54","nodeType":"YulBlock","src":"34337:23:54","statements":[{"nativeSrc":"34339:19:54","nodeType":"YulAssignment","src":"34339:19:54","value":{"arguments":[{"name":"src","nativeSrc":"34350:3:54","nodeType":"YulIdentifier","src":"34350:3:54"},{"name":"_4","nativeSrc":"34355:2:54","nodeType":"YulIdentifier","src":"34355:2:54"}],"functionName":{"name":"add","nativeSrc":"34346:3:54","nodeType":"YulIdentifier","src":"34346:3:54"},"nativeSrc":"34346:12:54","nodeType":"YulFunctionCall","src":"34346:12:54"},"variableNames":[{"name":"src","nativeSrc":"34339:3:54","nodeType":"YulIdentifier","src":"34339:3:54"}]}]},"pre":{"nativeSrc":"34317:3:54","nodeType":"YulBlock","src":"34317:3:54","statements":[]},"src":"34313:210:54"},{"nativeSrc":"34532:15:54","nodeType":"YulAssignment","src":"34532:15:54","value":{"name":"dst_1","nativeSrc":"34542:5:54","nodeType":"YulIdentifier","src":"34542:5:54"},"variableNames":[{"name":"value0","nativeSrc":"34532:6:54","nodeType":"YulIdentifier","src":"34532:6:54"}]},{"nativeSrc":"34556:41:54","nodeType":"YulVariableDeclaration","src":"34556:41:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34582:9:54","nodeType":"YulIdentifier","src":"34582:9:54"},{"name":"_4","nativeSrc":"34593:2:54","nodeType":"YulIdentifier","src":"34593:2:54"}],"functionName":{"name":"add","nativeSrc":"34578:3:54","nodeType":"YulIdentifier","src":"34578:3:54"},"nativeSrc":"34578:18:54","nodeType":"YulFunctionCall","src":"34578:18:54"}],"functionName":{"name":"mload","nativeSrc":"34572:5:54","nodeType":"YulIdentifier","src":"34572:5:54"},"nativeSrc":"34572:25:54","nodeType":"YulFunctionCall","src":"34572:25:54"},"variables":[{"name":"offset_1","nativeSrc":"34560:8:54","nodeType":"YulTypedName","src":"34560:8:54","type":""}]},{"body":{"nativeSrc":"34626:16:54","nodeType":"YulBlock","src":"34626:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34635:1:54","nodeType":"YulLiteral","src":"34635:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"34638:1:54","nodeType":"YulLiteral","src":"34638:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34628:6:54","nodeType":"YulIdentifier","src":"34628:6:54"},"nativeSrc":"34628:12:54","nodeType":"YulFunctionCall","src":"34628:12:54"},"nativeSrc":"34628:12:54","nodeType":"YulExpressionStatement","src":"34628:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"34612:8:54","nodeType":"YulIdentifier","src":"34612:8:54"},{"name":"_1","nativeSrc":"34622:2:54","nodeType":"YulIdentifier","src":"34622:2:54"}],"functionName":{"name":"gt","nativeSrc":"34609:2:54","nodeType":"YulIdentifier","src":"34609:2:54"},"nativeSrc":"34609:16:54","nodeType":"YulFunctionCall","src":"34609:16:54"},"nativeSrc":"34606:36:54","nodeType":"YulIf","src":"34606:36:54"},{"nativeSrc":"34651:84:54","nodeType":"YulAssignment","src":"34651:84:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34705:9:54","nodeType":"YulIdentifier","src":"34705:9:54"},{"name":"offset_1","nativeSrc":"34716:8:54","nodeType":"YulIdentifier","src":"34716:8:54"}],"functionName":{"name":"add","nativeSrc":"34701:3:54","nodeType":"YulIdentifier","src":"34701:3:54"},"nativeSrc":"34701:24:54","nodeType":"YulFunctionCall","src":"34701:24:54"},{"name":"dataEnd","nativeSrc":"34727:7:54","nodeType":"YulIdentifier","src":"34727:7:54"}],"functionName":{"name":"abi_decode_array_uint256_dyn_fromMemory","nativeSrc":"34661:39:54","nodeType":"YulIdentifier","src":"34661:39:54"},"nativeSrc":"34661:74:54","nodeType":"YulFunctionCall","src":"34661:74:54"},"variableNames":[{"name":"value1","nativeSrc":"34651:6:54","nodeType":"YulIdentifier","src":"34651:6:54"}]},{"nativeSrc":"34744:41:54","nodeType":"YulVariableDeclaration","src":"34744:41:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34770:9:54","nodeType":"YulIdentifier","src":"34770:9:54"},{"kind":"number","nativeSrc":"34781:2:54","nodeType":"YulLiteral","src":"34781:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34766:3:54","nodeType":"YulIdentifier","src":"34766:3:54"},"nativeSrc":"34766:18:54","nodeType":"YulFunctionCall","src":"34766:18:54"}],"functionName":{"name":"mload","nativeSrc":"34760:5:54","nodeType":"YulIdentifier","src":"34760:5:54"},"nativeSrc":"34760:25:54","nodeType":"YulFunctionCall","src":"34760:25:54"},"variables":[{"name":"offset_2","nativeSrc":"34748:8:54","nodeType":"YulTypedName","src":"34748:8:54","type":""}]},{"body":{"nativeSrc":"34814:16:54","nodeType":"YulBlock","src":"34814:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34823:1:54","nodeType":"YulLiteral","src":"34823:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"34826:1:54","nodeType":"YulLiteral","src":"34826:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"34816:6:54","nodeType":"YulIdentifier","src":"34816:6:54"},"nativeSrc":"34816:12:54","nodeType":"YulFunctionCall","src":"34816:12:54"},"nativeSrc":"34816:12:54","nodeType":"YulExpressionStatement","src":"34816:12:54"}]},"condition":{"arguments":[{"name":"offset_2","nativeSrc":"34800:8:54","nodeType":"YulIdentifier","src":"34800:8:54"},{"name":"_1","nativeSrc":"34810:2:54","nodeType":"YulIdentifier","src":"34810:2:54"}],"functionName":{"name":"gt","nativeSrc":"34797:2:54","nodeType":"YulIdentifier","src":"34797:2:54"},"nativeSrc":"34797:16:54","nodeType":"YulFunctionCall","src":"34797:16:54"},"nativeSrc":"34794:36:54","nodeType":"YulIf","src":"34794:36:54"},{"nativeSrc":"34839:83:54","nodeType":"YulAssignment","src":"34839:83:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34892:9:54","nodeType":"YulIdentifier","src":"34892:9:54"},{"name":"offset_2","nativeSrc":"34903:8:54","nodeType":"YulIdentifier","src":"34903:8:54"}],"functionName":{"name":"add","nativeSrc":"34888:3:54","nodeType":"YulIdentifier","src":"34888:3:54"},"nativeSrc":"34888:24:54","nodeType":"YulFunctionCall","src":"34888:24:54"},{"name":"dataEnd","nativeSrc":"34914:7:54","nodeType":"YulIdentifier","src":"34914:7:54"}],"functionName":{"name":"abi_decode_array_string_dyn_fromMemory","nativeSrc":"34849:38:54","nodeType":"YulIdentifier","src":"34849:38:54"},"nativeSrc":"34849:73:54","nodeType":"YulFunctionCall","src":"34849:73:54"},"variableNames":[{"name":"value2","nativeSrc":"34839:6:54","nodeType":"YulIdentifier","src":"34839:6:54"}]},{"nativeSrc":"34931:41:54","nodeType":"YulVariableDeclaration","src":"34931:41:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34957:9:54","nodeType":"YulIdentifier","src":"34957:9:54"},{"kind":"number","nativeSrc":"34968:2:54","nodeType":"YulLiteral","src":"34968:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34953:3:54","nodeType":"YulIdentifier","src":"34953:3:54"},"nativeSrc":"34953:18:54","nodeType":"YulFunctionCall","src":"34953:18:54"}],"functionName":{"name":"mload","nativeSrc":"34947:5:54","nodeType":"YulIdentifier","src":"34947:5:54"},"nativeSrc":"34947:25:54","nodeType":"YulFunctionCall","src":"34947:25:54"},"variables":[{"name":"offset_3","nativeSrc":"34935:8:54","nodeType":"YulTypedName","src":"34935:8:54","type":""}]},{"body":{"nativeSrc":"35001:16:54","nodeType":"YulBlock","src":"35001:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35010:1:54","nodeType":"YulLiteral","src":"35010:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"35013:1:54","nodeType":"YulLiteral","src":"35013:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35003:6:54","nodeType":"YulIdentifier","src":"35003:6:54"},"nativeSrc":"35003:12:54","nodeType":"YulFunctionCall","src":"35003:12:54"},"nativeSrc":"35003:12:54","nodeType":"YulExpressionStatement","src":"35003:12:54"}]},"condition":{"arguments":[{"name":"offset_3","nativeSrc":"34987:8:54","nodeType":"YulIdentifier","src":"34987:8:54"},{"name":"_1","nativeSrc":"34997:2:54","nodeType":"YulIdentifier","src":"34997:2:54"}],"functionName":{"name":"gt","nativeSrc":"34984:2:54","nodeType":"YulIdentifier","src":"34984:2:54"},"nativeSrc":"34984:16:54","nodeType":"YulFunctionCall","src":"34984:16:54"},"nativeSrc":"34981:36:54","nodeType":"YulIf","src":"34981:36:54"},{"nativeSrc":"35026:82:54","nodeType":"YulAssignment","src":"35026:82:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35078:9:54","nodeType":"YulIdentifier","src":"35078:9:54"},{"name":"offset_3","nativeSrc":"35089:8:54","nodeType":"YulIdentifier","src":"35089:8:54"}],"functionName":{"name":"add","nativeSrc":"35074:3:54","nodeType":"YulIdentifier","src":"35074:3:54"},"nativeSrc":"35074:24:54","nodeType":"YulFunctionCall","src":"35074:24:54"},{"name":"dataEnd","nativeSrc":"35100:7:54","nodeType":"YulIdentifier","src":"35100:7:54"}],"functionName":{"name":"abi_decode_array_bytes_dyn_fromMemory","nativeSrc":"35036:37:54","nodeType":"YulIdentifier","src":"35036:37:54"},"nativeSrc":"35036:72:54","nodeType":"YulFunctionCall","src":"35036:72:54"},"variableNames":[{"name":"value3","nativeSrc":"35026:6:54","nodeType":"YulIdentifier","src":"35026:6:54"}]},{"nativeSrc":"35117:58:54","nodeType":"YulAssignment","src":"35117:58:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35159:9:54","nodeType":"YulIdentifier","src":"35159:9:54"},{"kind":"number","nativeSrc":"35170:3:54","nodeType":"YulLiteral","src":"35170:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35155:3:54","nodeType":"YulIdentifier","src":"35155:3:54"},"nativeSrc":"35155:19:54","nodeType":"YulFunctionCall","src":"35155:19:54"}],"functionName":{"name":"abi_decode_uint8_fromMemory","nativeSrc":"35127:27:54","nodeType":"YulIdentifier","src":"35127:27:54"},"nativeSrc":"35127:48:54","nodeType":"YulFunctionCall","src":"35127:48:54"},"variableNames":[{"name":"value4","nativeSrc":"35117:6:54","nodeType":"YulIdentifier","src":"35117:6:54"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory","nativeSrc":"33413:1768:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33613:9:54","nodeType":"YulTypedName","src":"33613:9:54","type":""},{"name":"dataEnd","nativeSrc":"33624:7:54","nodeType":"YulTypedName","src":"33624:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33636:6:54","nodeType":"YulTypedName","src":"33636:6:54","type":""},{"name":"value1","nativeSrc":"33644:6:54","nodeType":"YulTypedName","src":"33644:6:54","type":""},{"name":"value2","nativeSrc":"33652:6:54","nodeType":"YulTypedName","src":"33652:6:54","type":""},{"name":"value3","nativeSrc":"33660:6:54","nodeType":"YulTypedName","src":"33660:6:54","type":""},{"name":"value4","nativeSrc":"33668:6:54","nodeType":"YulTypedName","src":"33668:6:54","type":""}],"src":"33413:1768:54"},{"body":{"nativeSrc":"35360:299:54","nodeType":"YulBlock","src":"35360:299:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35377:9:54","nodeType":"YulIdentifier","src":"35377:9:54"},{"kind":"number","nativeSrc":"35388:2:54","nodeType":"YulLiteral","src":"35388:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35370:6:54","nodeType":"YulIdentifier","src":"35370:6:54"},"nativeSrc":"35370:21:54","nodeType":"YulFunctionCall","src":"35370:21:54"},"nativeSrc":"35370:21:54","nodeType":"YulExpressionStatement","src":"35370:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35411:9:54","nodeType":"YulIdentifier","src":"35411:9:54"},{"kind":"number","nativeSrc":"35422:2:54","nodeType":"YulLiteral","src":"35422:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35407:3:54","nodeType":"YulIdentifier","src":"35407:3:54"},"nativeSrc":"35407:18:54","nodeType":"YulFunctionCall","src":"35407:18:54"},{"kind":"number","nativeSrc":"35427:2:54","nodeType":"YulLiteral","src":"35427:2:54","type":"","value":"69"}],"functionName":{"name":"mstore","nativeSrc":"35400:6:54","nodeType":"YulIdentifier","src":"35400:6:54"},"nativeSrc":"35400:30:54","nodeType":"YulFunctionCall","src":"35400:30:54"},"nativeSrc":"35400:30:54","nodeType":"YulExpressionStatement","src":"35400:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35450:9:54","nodeType":"YulIdentifier","src":"35450:9:54"},{"kind":"number","nativeSrc":"35461:2:54","nodeType":"YulLiteral","src":"35461:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35446:3:54","nodeType":"YulIdentifier","src":"35446:3:54"},"nativeSrc":"35446:18:54","nodeType":"YulFunctionCall","src":"35446:18:54"},{"hexValue":"4f6d6e69636861696e50726f706f73616c53656e6465723a2070726f706f7361","kind":"string","nativeSrc":"35466:34:54","nodeType":"YulLiteral","src":"35466:34:54","type":"","value":"OmnichainProposalSender: proposa"}],"functionName":{"name":"mstore","nativeSrc":"35439:6:54","nodeType":"YulIdentifier","src":"35439:6:54"},"nativeSrc":"35439:62:54","nodeType":"YulFunctionCall","src":"35439:62:54"},"nativeSrc":"35439:62:54","nodeType":"YulExpressionStatement","src":"35439:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35521:9:54","nodeType":"YulIdentifier","src":"35521:9:54"},{"kind":"number","nativeSrc":"35532:2:54","nodeType":"YulLiteral","src":"35532:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35517:3:54","nodeType":"YulIdentifier","src":"35517:3:54"},"nativeSrc":"35517:18:54","nodeType":"YulFunctionCall","src":"35517:18:54"},{"hexValue":"6c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d6973","kind":"string","nativeSrc":"35537:34:54","nodeType":"YulLiteral","src":"35537:34:54","type":"","value":"l function information arity mis"}],"functionName":{"name":"mstore","nativeSrc":"35510:6:54","nodeType":"YulIdentifier","src":"35510:6:54"},"nativeSrc":"35510:62:54","nodeType":"YulFunctionCall","src":"35510:62:54"},"nativeSrc":"35510:62:54","nodeType":"YulExpressionStatement","src":"35510:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35592:9:54","nodeType":"YulIdentifier","src":"35592:9:54"},{"kind":"number","nativeSrc":"35603:3:54","nodeType":"YulLiteral","src":"35603:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"35588:3:54","nodeType":"YulIdentifier","src":"35588:3:54"},"nativeSrc":"35588:19:54","nodeType":"YulFunctionCall","src":"35588:19:54"},{"hexValue":"6d61746368","kind":"string","nativeSrc":"35609:7:54","nodeType":"YulLiteral","src":"35609:7:54","type":"","value":"match"}],"functionName":{"name":"mstore","nativeSrc":"35581:6:54","nodeType":"YulIdentifier","src":"35581:6:54"},"nativeSrc":"35581:36:54","nodeType":"YulFunctionCall","src":"35581:36:54"},"nativeSrc":"35581:36:54","nodeType":"YulExpressionStatement","src":"35581:36:54"},{"nativeSrc":"35626:27:54","nodeType":"YulAssignment","src":"35626:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"35638:9:54","nodeType":"YulIdentifier","src":"35638:9:54"},{"kind":"number","nativeSrc":"35649:3:54","nodeType":"YulLiteral","src":"35649:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"35634:3:54","nodeType":"YulIdentifier","src":"35634:3:54"},"nativeSrc":"35634:19:54","nodeType":"YulFunctionCall","src":"35634:19:54"},"variableNames":[{"name":"tail","nativeSrc":"35626:4:54","nodeType":"YulIdentifier","src":"35626:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35186:473:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35337:9:54","nodeType":"YulTypedName","src":"35337:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35351:4:54","nodeType":"YulTypedName","src":"35351:4:54","type":""}],"src":"35186:473:54"},{"body":{"nativeSrc":"35838:170:54","nodeType":"YulBlock","src":"35838:170:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"35855:9:54","nodeType":"YulIdentifier","src":"35855:9:54"},{"kind":"number","nativeSrc":"35866:2:54","nodeType":"YulLiteral","src":"35866:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"35848:6:54","nodeType":"YulIdentifier","src":"35848:6:54"},"nativeSrc":"35848:21:54","nodeType":"YulFunctionCall","src":"35848:21:54"},"nativeSrc":"35848:21:54","nodeType":"YulExpressionStatement","src":"35848:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35889:9:54","nodeType":"YulIdentifier","src":"35889:9:54"},{"kind":"number","nativeSrc":"35900:2:54","nodeType":"YulLiteral","src":"35900:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35885:3:54","nodeType":"YulIdentifier","src":"35885:3:54"},"nativeSrc":"35885:18:54","nodeType":"YulFunctionCall","src":"35885:18:54"},{"kind":"number","nativeSrc":"35905:2:54","nodeType":"YulLiteral","src":"35905:2:54","type":"","value":"20"}],"functionName":{"name":"mstore","nativeSrc":"35878:6:54","nodeType":"YulIdentifier","src":"35878:6:54"},"nativeSrc":"35878:30:54","nodeType":"YulFunctionCall","src":"35878:30:54"},"nativeSrc":"35878:30:54","nodeType":"YulExpressionStatement","src":"35878:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35928:9:54","nodeType":"YulIdentifier","src":"35928:9:54"},{"kind":"number","nativeSrc":"35939:2:54","nodeType":"YulLiteral","src":"35939:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35924:3:54","nodeType":"YulIdentifier","src":"35924:3:54"},"nativeSrc":"35924:18:54","nodeType":"YulFunctionCall","src":"35924:18:54"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"35944:22:54","nodeType":"YulLiteral","src":"35944:22:54","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"35917:6:54","nodeType":"YulIdentifier","src":"35917:6:54"},"nativeSrc":"35917:50:54","nodeType":"YulFunctionCall","src":"35917:50:54"},"nativeSrc":"35917:50:54","nodeType":"YulExpressionStatement","src":"35917:50:54"},{"nativeSrc":"35976:26:54","nodeType":"YulAssignment","src":"35976:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"35988:9:54","nodeType":"YulIdentifier","src":"35988:9:54"},{"kind":"number","nativeSrc":"35999:2:54","nodeType":"YulLiteral","src":"35999:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35984:3:54","nodeType":"YulIdentifier","src":"35984:3:54"},"nativeSrc":"35984:18:54","nodeType":"YulFunctionCall","src":"35984:18:54"},"variableNames":[{"name":"tail","nativeSrc":"35976:4:54","nodeType":"YulIdentifier","src":"35976:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35664:344:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35815:9:54","nodeType":"YulTypedName","src":"35815:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35829:4:54","nodeType":"YulTypedName","src":"35829:4:54","type":""}],"src":"35664:344:54"},{"body":{"nativeSrc":"36062:79:54","nodeType":"YulBlock","src":"36062:79:54","statements":[{"nativeSrc":"36072:17:54","nodeType":"YulAssignment","src":"36072:17:54","value":{"arguments":[{"name":"x","nativeSrc":"36084:1:54","nodeType":"YulIdentifier","src":"36084:1:54"},{"name":"y","nativeSrc":"36087:1:54","nodeType":"YulIdentifier","src":"36087:1:54"}],"functionName":{"name":"sub","nativeSrc":"36080:3:54","nodeType":"YulIdentifier","src":"36080:3:54"},"nativeSrc":"36080:9:54","nodeType":"YulFunctionCall","src":"36080:9:54"},"variableNames":[{"name":"diff","nativeSrc":"36072:4:54","nodeType":"YulIdentifier","src":"36072:4:54"}]},{"body":{"nativeSrc":"36113:22:54","nodeType":"YulBlock","src":"36113:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"36115:16:54","nodeType":"YulIdentifier","src":"36115:16:54"},"nativeSrc":"36115:18:54","nodeType":"YulFunctionCall","src":"36115:18:54"},"nativeSrc":"36115:18:54","nodeType":"YulExpressionStatement","src":"36115:18:54"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"36104:4:54","nodeType":"YulIdentifier","src":"36104:4:54"},{"name":"x","nativeSrc":"36110:1:54","nodeType":"YulIdentifier","src":"36110:1:54"}],"functionName":{"name":"gt","nativeSrc":"36101:2:54","nodeType":"YulIdentifier","src":"36101:2:54"},"nativeSrc":"36101:11:54","nodeType":"YulFunctionCall","src":"36101:11:54"},"nativeSrc":"36098:37:54","nodeType":"YulIf","src":"36098:37:54"}]},"name":"checked_sub_t_uint256","nativeSrc":"36013:128:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"36044:1:54","nodeType":"YulTypedName","src":"36044:1:54","type":""},{"name":"y","nativeSrc":"36047:1:54","nodeType":"YulTypedName","src":"36047:1:54","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"36053:4:54","nodeType":"YulTypedName","src":"36053:4:54","type":""}],"src":"36013:128:54"},{"body":{"nativeSrc":"36320:182:54","nodeType":"YulBlock","src":"36320:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36337:9:54","nodeType":"YulIdentifier","src":"36337:9:54"},{"kind":"number","nativeSrc":"36348:2:54","nodeType":"YulLiteral","src":"36348:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36330:6:54","nodeType":"YulIdentifier","src":"36330:6:54"},"nativeSrc":"36330:21:54","nodeType":"YulFunctionCall","src":"36330:21:54"},"nativeSrc":"36330:21:54","nodeType":"YulExpressionStatement","src":"36330:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36371:9:54","nodeType":"YulIdentifier","src":"36371:9:54"},{"kind":"number","nativeSrc":"36382:2:54","nodeType":"YulLiteral","src":"36382:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36367:3:54","nodeType":"YulIdentifier","src":"36367:3:54"},"nativeSrc":"36367:18:54","nodeType":"YulFunctionCall","src":"36367:18:54"},{"kind":"number","nativeSrc":"36387:2:54","nodeType":"YulLiteral","src":"36387:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36360:6:54","nodeType":"YulIdentifier","src":"36360:6:54"},"nativeSrc":"36360:30:54","nodeType":"YulFunctionCall","src":"36360:30:54"},"nativeSrc":"36360:30:54","nodeType":"YulExpressionStatement","src":"36360:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36410:9:54","nodeType":"YulIdentifier","src":"36410:9:54"},{"kind":"number","nativeSrc":"36421:2:54","nodeType":"YulLiteral","src":"36421:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36406:3:54","nodeType":"YulIdentifier","src":"36406:3:54"},"nativeSrc":"36406:18:54","nodeType":"YulFunctionCall","src":"36406:18:54"},{"hexValue":"4461696c79205472616e73616374696f6e204c696d6974204578636565646564","kind":"string","nativeSrc":"36426:34:54","nodeType":"YulLiteral","src":"36426:34:54","type":"","value":"Daily Transaction Limit Exceeded"}],"functionName":{"name":"mstore","nativeSrc":"36399:6:54","nodeType":"YulIdentifier","src":"36399:6:54"},"nativeSrc":"36399:62:54","nodeType":"YulFunctionCall","src":"36399:62:54"},"nativeSrc":"36399:62:54","nodeType":"YulExpressionStatement","src":"36399:62:54"},{"nativeSrc":"36470:26:54","nodeType":"YulAssignment","src":"36470:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"36482:9:54","nodeType":"YulIdentifier","src":"36482:9:54"},{"kind":"number","nativeSrc":"36493:2:54","nodeType":"YulLiteral","src":"36493:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36478:3:54","nodeType":"YulIdentifier","src":"36478:3:54"},"nativeSrc":"36478:18:54","nodeType":"YulFunctionCall","src":"36478:18:54"},"variableNames":[{"name":"tail","nativeSrc":"36470:4:54","nodeType":"YulIdentifier","src":"36470:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36146:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36297:9:54","nodeType":"YulTypedName","src":"36297:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36311:4:54","nodeType":"YulTypedName","src":"36311:4:54","type":""}],"src":"36146:356:54"},{"body":{"nativeSrc":"36681:181:54","nodeType":"YulBlock","src":"36681:181:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"36698:9:54","nodeType":"YulIdentifier","src":"36698:9:54"},{"kind":"number","nativeSrc":"36709:2:54","nodeType":"YulLiteral","src":"36709:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"36691:6:54","nodeType":"YulIdentifier","src":"36691:6:54"},"nativeSrc":"36691:21:54","nodeType":"YulFunctionCall","src":"36691:21:54"},"nativeSrc":"36691:21:54","nodeType":"YulExpressionStatement","src":"36691:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36732:9:54","nodeType":"YulIdentifier","src":"36732:9:54"},{"kind":"number","nativeSrc":"36743:2:54","nodeType":"YulLiteral","src":"36743:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36728:3:54","nodeType":"YulIdentifier","src":"36728:3:54"},"nativeSrc":"36728:18:54","nodeType":"YulFunctionCall","src":"36728:18:54"},{"kind":"number","nativeSrc":"36748:2:54","nodeType":"YulLiteral","src":"36748:2:54","type":"","value":"31"}],"functionName":{"name":"mstore","nativeSrc":"36721:6:54","nodeType":"YulIdentifier","src":"36721:6:54"},"nativeSrc":"36721:30:54","nodeType":"YulFunctionCall","src":"36721:30:54"},"nativeSrc":"36721:30:54","nodeType":"YulExpressionStatement","src":"36721:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36771:9:54","nodeType":"YulIdentifier","src":"36771:9:54"},{"kind":"number","nativeSrc":"36782:2:54","nodeType":"YulLiteral","src":"36782:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36767:3:54","nodeType":"YulIdentifier","src":"36767:3:54"},"nativeSrc":"36767:18:54","nodeType":"YulFunctionCall","src":"36767:18:54"},{"hexValue":"4d756c7469706c65206272696467696e6720696e20612070726f706f73616c","kind":"string","nativeSrc":"36787:33:54","nodeType":"YulLiteral","src":"36787:33:54","type":"","value":"Multiple bridging in a proposal"}],"functionName":{"name":"mstore","nativeSrc":"36760:6:54","nodeType":"YulIdentifier","src":"36760:6:54"},"nativeSrc":"36760:61:54","nodeType":"YulFunctionCall","src":"36760:61:54"},"nativeSrc":"36760:61:54","nodeType":"YulExpressionStatement","src":"36760:61:54"},{"nativeSrc":"36830:26:54","nodeType":"YulAssignment","src":"36830:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"36842:9:54","nodeType":"YulIdentifier","src":"36842:9:54"},{"kind":"number","nativeSrc":"36853:2:54","nodeType":"YulLiteral","src":"36853:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"36838:3:54","nodeType":"YulIdentifier","src":"36838:3:54"},"nativeSrc":"36838:18:54","nodeType":"YulFunctionCall","src":"36838:18:54"},"variableNames":[{"name":"tail","nativeSrc":"36830:4:54","nodeType":"YulIdentifier","src":"36830:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36507:355:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36658:9:54","nodeType":"YulTypedName","src":"36658:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36672:4:54","nodeType":"YulTypedName","src":"36672:4:54","type":""}],"src":"36507:355:54"}]},"contents":"{\n    { }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value := calldataload(add(headStart, 64))\n        validator_revert_bool(value)\n        value3 := value\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_uint16t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        value2 := abi_decode_uint16(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let offset_1 := calldataload(add(headStart, 128))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value5 := value5_1\n        value6 := value6_1\n        value7 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let value := calldataload(add(headStart, 96))\n        validator_revert_address(value)\n        value5 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\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    function abi_encode_bytes(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_bytes(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint16(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint16(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        let value := calldataload(add(headStart, 128))\n        validator_revert_address(value)\n        value6 := value\n        value7 := calldataload(add(headStart, 160))\n    }\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffff))\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_uint16_t_address_t_bytes_calldata_ptr_t_bool_t_bytes_calldata_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), iszero(iszero(value4)))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value5, value6, tail_1)\n    }\n    function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := mload(headStart)\n        value1 := mload(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_fb6f40981fe5a22463da4d402f5b2d8f9dbbf83560ebbdd44591d6544b346e53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: trusted\")\n        mstore(add(headStart, 96), \" remote not found\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_232124683b132441e662395a64e30551728c0a15d01f6ff2dd9080f88729b51d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: invalid\")\n        mstore(add(headStart, 96), \" native amount\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b4b52b7d4888c17cd61b7d072c8bae52af7ec4fe5cc936af361e359d49845e55__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: empty p\")\n        mstore(add(headStart, 96), \"ayload\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f2dee99a91d995c8e88710507d1b85f55e19c65efb5b25670813dd22d63ba09d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: no stor\")\n        mstore(add(headStart, 96), \"ed payload\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value3, value4, tail_1)\n        mstore(add(headStart, 96), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_8358903084c88ef15210bf333ef998ba2611eed32c9f09d8b5a82883806d1286__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: invalid\")\n        mstore(add(headStart, 96), \" execution params\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    { end := pos }\n    function abi_encode_tuple_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 11)\n        mstore(add(headStart, 64), \"Call failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_8fc786e18c67f9a2aae9af1908b470ce7b6a77c7cd6fd1e9dbdafb6499657565__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: value c\")\n        mstore(add(headStart, 96), \"annot be zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_61468fbafd753a44eba72b43458a5a571ff9821e3893131cc67b0876c2e26370__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 66)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: destina\")\n        mstore(add(headStart, 96), \"tion chain is not a trusted sour\")\n        mstore(add(headStart, 128), \"ce\")\n        tail := add(headStart, 160)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_bytes_calldata_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        tail := abi_encode_bytes_calldata(value0, value1, add(headStart, 64))\n        mstore(add(headStart, 32), value2)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes(value2, tail_1)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 96), and(value3, _1))\n        mstore(add(headStart, 128), and(value4, _1))\n        mstore(add(headStart, 160), sub(tail_2, headStart))\n        tail := abi_encode_bytes_calldata(value5, value6, tail_2)\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_bytes_calldata(value2, value3, tail_1)\n        mstore(add(headStart, 96), value4)\n    }\n    function abi_encode_tuple_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_uint256_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_bytes(value0, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes_calldata(value1, value2, tail_1)\n        mstore(add(headStart, 64), value3)\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_bytes(value4, tail_2)\n    }\n    function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\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    {\n        tail := add(headStart, 128)\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 96), value3)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20)\n    }\n    function abi_decode_available_length_bytes_fromMemory(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_bytes(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(src, add(array, 0x20), length)\n    }\n    function abi_decode_bytes_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_bytes_fromMemory(add(offset, 0x20), mload(offset), end)\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_4867e9bc1f5aceefa1d5492b8babd12820787c1937becbd7fd5e31e7ecb2fecc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: chainId\")\n        mstore(add(headStart, 96), \" must not be zero\")\n        tail := add(headStart, 128)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20(array, len) -> value\n    {\n        let _1 := calldataload(array)\n        let _2 := 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n        value := and(_1, _2)\n        if lt(len, 20)\n        {\n            value := and(and(_1, shl(shl(3, sub(20, len)), _2)), _2)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_f5eefd0c62457e6ddad4d12b314f91d912b3ccd761af75b4b7cf73ff444e1b62__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: remote \")\n        mstore(add(headStart, 96), \"address must be 20 bytes long\")\n        tail := add(headStart, 128)\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        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, and(shl(96, value2), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        end := add(_1, 20)\n    }\n    function array_dataslot_bytes_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_bytes_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_bytes_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\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    function abi_encode_tuple_t_bytes_memory_ptr_t_bytes_storage__to_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_bytes(value0, add(headStart, 64))\n        let _1 := 32\n        mstore(add(headStart, _1), sub(tail_1, headStart))\n        let ret := 0\n        let slotValue := sload(value1)\n        let length := extract_byte_array_length(slotValue)\n        mstore(tail_1, length)\n        let _2 := 1\n        switch and(slotValue, 1)\n        case 0 {\n            mstore(add(tail_1, _1), and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(add(tail_1, shl(5, iszero(iszero(length)))), _1)\n        }\n        case 1 {\n            mstore(0, value1)\n            let dataPos := keccak256(0, _1)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _1) }\n            {\n                mstore(add(add(tail_1, i), _1), sload(dataPos))\n                dataPos := add(dataPos, _2)\n            }\n            ret := add(add(tail_1, i), _1)\n        }\n        tail := ret\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    {\n        let _1 := 0xffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := calldataload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 0x20), dataEnd) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), add(_1, 0x20), _2)\n        mstore(add(add(array, _2), 0x20), 0)\n        value0 := array\n        value1 := calldataload(add(headStart, 0x20))\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_calldata_ptr_t_address_payable_t_address_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffff))\n        mstore(add(headStart, 32), 192)\n        let tail_1 := abi_encode_bytes(value1, add(headStart, 192))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_bytes_calldata(value2, value3, tail_1)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 96), and(value4, _1))\n        mstore(add(headStart, 128), and(value5, _1))\n        mstore(add(headStart, 160), sub(tail_2, headStart))\n        tail := abi_encode_bytes_calldata(value6, value7, tail_2)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\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    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_bytes(value1, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"access denied\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, 0x20)\n        let srcEnd := add(add(offset, shl(5, _1)), 0x20)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, 0x20)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_string_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            let _4 := add(offset, innerOffset)\n            if iszero(slt(add(_4, 63), end))\n            {\n                let _5 := 0\n                revert(_5, _5)\n            }\n            mstore(dst, abi_decode_available_length_bytes_fromMemory(add(_4, 64), mload(add(_4, _2)), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_bytes_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := mload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            mstore(dst, abi_decode_bytes_fromMemory(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_uint8_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := dst_1\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n        let offset_2 := mload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value2 := abi_decode_array_string_dyn_fromMemory(add(headStart, offset_2), dataEnd)\n        let offset_3 := mload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(0, 0) }\n        value3 := abi_decode_array_bytes_dyn_fromMemory(add(headStart, offset_3), dataEnd)\n        value4 := abi_decode_uint8_fromMemory(add(headStart, 128))\n    }\n    function abi_encode_tuple_t_stringliteral_c21731293dc1db8cf9168ecb51cce73dc982950e761a15c276e0761cd2ea3210__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 69)\n        mstore(add(headStart, 64), \"OmnichainProposalSender: proposa\")\n        mstore(add(headStart, 96), \"l function information arity mis\")\n        mstore(add(headStart, 128), \"match\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_7f1ab6dca0c040aececbb4df1c67ab1f13c05f495e8356647158d9e65e565e3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Daily Transaction Limit Exceeded\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e46b78c27334ff7d48b2f5b14d5600e9479f0d3eae7a51dbf6a0c69d730dd8be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"Multiple bridging in a proposal\")\n        tail := add(headStart, 96)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7219":[{"length":32,"start":1248},{"length":32,"start":1512},{"length":32,"start":1792},{"length":32,"start":4199},{"length":32,"start":4647},{"length":32,"start":5707},{"length":32,"start":6719}]},"linkReferences":{},"object":"6080604052600436106101a15760003560e01c80637533d788116100e1578063b4a0bdf31161008a578063da35c66411610064578063da35c66414610502578063e0354d7f14610518578063e2222b0e14610545578063f2fde38b1461055857600080fd5b8063b4a0bdf314610481578063cbed8b9c146104ae578063cd4d1c64146104ce57600080fd5b80638da5cb5b116100bb5780638da5cb5b146103e857806393a61d6c14610434578063a6c3d1651461046157600080fd5b80637533d788146103865780637dbb533c146103a65780638456cb59146103d357600080fd5b806330fd54a01161014e5780634f4ba0f4116101285780634f4ba0f4146102e55780635c975abb146103125780635f6716f71461034d578063715018a61461037a57600080fd5b806330fd54a01461029d5780633f4ba83a146102bd5780633fd9d7ef146102d257600080fd5b806321b4eaa11161017f57806321b4eaa1146102285780632488eec81461025d5780632dbbec081461027d57600080fd5b806307e0db17146101a65780630e32cb86146101c85780631183a3b2146101e8575b600080fd5b3480156101b257600080fd5b506101c66101c136600461222e565b610578565b005b3480156101d457600080fd5b506101c66101e336600461226b565b61065c565b3480156101f457600080fd5b5061021561020336600461222e565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561023457600080fd5b506102486102433660046122df565b6106fb565b6040805192835260208301919091520161021f565b34801561026957600080fd5b506101c6610278366004612374565b6107b2565b34801561028957600080fd5b506101c661029836600461222e565b610855565b3480156102a957600080fd5b506101c66102b836600461239e565b61097b565b3480156102c957600080fd5b506101c6610d11565b6101c66102e0366004612442565b610d59565b3480156102f157600080fd5b5061021561030036600461222e565b60036020526000908152604090205481565b34801561031e57600080fd5b5060015474010000000000000000000000000000000000000000900460ff16604051901515815260200161021f565b34801561035957600080fd5b5061036d6103683660046124d5565b6111dd565b60405161021f9190612561565b3480156101c657600080fd5b34801561039257600080fd5b5061036d6103a136600461222e565b6112b5565b3480156103b257600080fd5b506102156103c1366004612574565b60086020526000908152604090205481565b3480156103df57600080fd5b506101c661134f565b3480156103f457600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021f565b34801561044057600080fd5b5061021561044f36600461222e565b60056020526000908152604090205481565b34801561046d57600080fd5b506101c661047c36600461258d565b611395565b34801561048d57600080fd5b5060025461040f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104ba57600080fd5b506101c66104c93660046125e0565b6115ed565b3480156104da57600080fd5b5061040f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561050e57600080fd5b5061021560075481565b34801561052457600080fd5b5061021561053336600461222e565b60066020526000908152604090205481565b6101c661055336600461264f565b6116b6565b34801561056457600080fd5b506101c661057336600461226b565b611ad8565b6105b66040518060400160405280601681526020017f73657453656e6456657273696f6e2875696e7431362900000000000000000000815250611b75565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906307e0db1790602401600060405180830381600087803b15801561064157600080fd5b505af1158015610655573d6000803e3d6000fd5b5050505050565b610664611c5a565b61066d81611cc1565b60025460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340a7bb1089308a8a8a8a8a6040518863ffffffff1660e01b81526004016107639796959493929190612721565b6040805180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a39190612784565b91509150965096945050505050565b6107f06040518060400160405280602081526020017f7365744d61784461696c794c696d69742875696e7431362c75696e7432353629815250611b75565b61ffff82166000818152600360209081526040918290205482519081529081018490527f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693910160405180910390a261ffff909116600090815260036020526040902055565b6108936040518060400160405280601b81526020017f72656d6f76655472757374656452656d6f74652875696e743136290000000000815250611b75565b61ffff8116600090815260096020526040902080546108b1906127a8565b905060000361092d5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a207472757374656460448201527f2072656d6f7465206e6f7420666f756e6400000000000000000000000000000060648201526084015b60405180910390fd5b61ffff81166000908152600960205260408120610949916121c9565b60405161ffff8216907f6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd3790600090a250565b610983611c5a565b61098b611d0e565b61099488611cc1565b60008111610a0a5760405162461bcd60e51b815260206004820152602e60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f206e617469766520616d6f756e740000000000000000000000000000000000006064820152608401610924565b6000849003610a815760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b60008781526008602052604090205480610b035760405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f7260448201527f6564207061796c6f6164000000000000000000000000000000000000000000006064820152608401610924565b6000878787878787604051602001610b20969594939291906127fb565b604051602081830303815290604052905081818051906020012014610bad5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f20657865637574696f6e20706172616d730000000000000000000000000000006064820152608401610924565b600089815260086020526040808220919091555173ffffffffffffffffffffffffffffffffffffffff8b16907f22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab9690610c089086815260200190565b60405180910390a2887f2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e83604051610c4291815260200190565b60405180910390a260008a73ffffffffffffffffffffffffffffffffffffffff168460405160006040518083038185875af1925050503d8060008114610ca4576040519150601f19603f3d011682016040523d82523d6000602084013e610ca9565b606091505b5050905080610cfa5760405162461bcd60e51b815260206004820152600b60248201527f43616c6c206661696c65640000000000000000000000000000000000000000006044820152606401610924565b505050610d076001600055565b5050505050505050565b610d4f6040518060400160405280600981526020017f756e706175736528290000000000000000000000000000000000000000000000815250611b75565b610d57611d67565b565b610d61611de4565b610d826040518060600160405280602381526020016131f260239139611b75565b60003411610df85760405162461bcd60e51b815260206004820152602d60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2076616c7565206360448201527f616e6e6f74206265207a65726f000000000000000000000000000000000000006064820152608401610924565b6000849003610e6f5760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b61ffff861660009081526009602052604081208054610e8d906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb9906127a8565b8015610f065780601f10610edb57610100808354040283529160200191610f06565b820191906000526020600020905b815481529060010190602001808311610ee957829003601f168201915b505050505090508051600003610faa5760405162461bcd60e51b815260206004820152604260248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6160448201527f74696f6e20636861696e206973206e6f742061207472757374656420736f757260648201527f6365000000000000000000000000000000000000000000000000000000000000608482015260a401610924565b610fea8787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e4f92505050565b6000600760008154610ffb9061286f565b9190508190559050600087878360405160200161101a939291906128a7565b60408051601f19818403018152908290527fc5803100000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c58031009034906110aa908d908890879033908c908f908f906004016128cb565b6000604051808303818588803b1580156110c357600080fd5b505af1935050505080156110d5575060015b611193573d808015611103576040519150601f19603f3d011682016040523d82523d6000602084013e611108565b606091505b508982888834604051602001611122959493929190612933565b60408051601f198184030181528282528051602091820120600087815260089092529190205561ffff8b169084907f6d16111647e03d7f1cb2b71c02eafe3355b97dfc17af3de1b94ef39c8a9ee4d9906111859086908c908c9034908990612976565b60405180910390a3506111d2565b8861ffff167f95a4fcf4eb9be6f5cf2eb6830782870f8907bccc513f765388a9cb2dae2f325983836040516111c99291906129c2565b60405180910390a25b505050505050505050565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808516600483015283166024820152306044820152606481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063f5ecbdbc90608401600060405180830381865afa158015611283573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ab9190810190612ab8565b90505b9392505050565b600960205260009081526040902080546112ce906127a8565b80601f01602080910402602001604051908101604052809291908181526020018280546112fa906127a8565b80156113475780601f1061131c57610100808354040283529160200191611347565b820191906000526020600020905b81548152906001019060200180831161132a57829003601f168201915b505050505081565b61138d6040518060400160405280600781526020017f7061757365282900000000000000000000000000000000000000000000000000815250611b75565b610d57611f3c565b6113b660405180606001604052806025815260200161321560259139611b75565b8261ffff166000036114305760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20636861696e496460448201527f206d757374206e6f74206265207a65726f0000000000000000000000000000006064820152608401610924565b61144561143d8284612af5565b60601c611cc1565b601481146114bb5760405162461bcd60e51b815260206004820152603d60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2072656d6f74652060448201527f61646472657373206d757374206265203230206279746573206c6f6e670000006064820152608401610924565b61ffff8316600090815260096020526040812080546114d9906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611505906127a8565b80156115525780601f1061152757610100808354040283529160200191611552565b820191906000526020600020905b81548152906001019060200180831161153557829003601f168201915b5050505050905082823060405160200161156e93929190612b3d565b60408051601f1981840301815291815261ffff86166000908152600960205220906115999082612bc3565b5061ffff84166000818152600960205260409081902090517fe84e609c32d71c678382f7c65cc051810a41dcaf660e55c9f8fcffeba4621a32916115df91859190612cbf565b60405180910390a250505050565b61160e60405180606001604052806026815260200161323a60269139611b75565b6040517fcbed8b9c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906116889088908890889088908890600401612d78565b600060405180830381600087803b1580156116a257600080fd5b505af11580156111d2573d6000803e3d6000fd5b6116be611de4565b6116c6611d0e565b6116e760405180606001604052806038815260200161326060389139611b75565b61ffff871660009081526009602052604081208054611705906127a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611731906127a8565b801561177e5780601f106117535761010080835404028352916020019161177e565b820191906000526020600020905b81548152906001019060200180831161176157829003601f168201915b5050505050905080516000036118225760405162461bcd60e51b815260206004820152604260248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2064657374696e6160448201527f74696f6e20636861696e206973206e6f742061207472757374656420736f757260648201527f6365000000000000000000000000000000000000000000000000000000000000608482015260a401610924565b600089815260086020526040902054806118a45760405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a206e6f2073746f7260448201527f6564207061796c6f6164000000000000000000000000000000000000000000006064820152608401610924565b600087900361191b5760405162461bcd60e51b815260206004820152602660248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20656d707479207060448201527f61796c6f616400000000000000000000000000000000000000000000000000006064820152608401610924565b6000611929888a018a612db1565b5090506119368a82611e4f565b818a8a8a8a8a89604051602001611952969594939291906127fb565b60405160208183030381529060405280519060200120146119db5760405162461bcd60e51b815260206004820152603160248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a20696e76616c696460448201527f20657865637574696f6e20706172616d730000000000000000000000000000006064820152608401610924565b60008b81526008602052604080822091909155518b907f2dc7ac5d08fd553243fc66b5f15262e3f3013e27abf660d7bb3fccf133322f6e90611a209085815260200190565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663c5803100611a6e3487612e2e565b8c868d8d338c8f8f6040518a63ffffffff1660e01b8152600401611a99989796959493929190612e47565b6000604051808303818588803b158015611ab257600080fd5b505af1158015611ac6573d6000803e3d6000fd5b5050505050505050610d076001600055565b611ae0611c5a565b73ffffffffffffffffffffffffffffffffffffffff8116611b695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610924565b611b7281611fab565b50565b6002546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906318c5e8ab90611bcd9033908590600401612ebf565b602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190612eee565b611b725760405162461bcd60e51b815260206004820152600d60248201527f6163636573732064656e696564000000000000000000000000000000000000006044820152606401610924565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610924565b73ffffffffffffffffffffffffffffffffffffffff8116611b72576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260005403611d605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610924565b6002600055565b611d6f612022565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60015474010000000000000000000000000000000000000000900460ff1615610d575760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610924565b60008060008084806020019051810190611e6991906130bf565b50935093509350935082518451148015611e84575081518451145b8015611e91575080518451145b611f295760405162461bcd60e51b815260206004820152604560248201527f4f6d6e69636861696e50726f706f73616c53656e6465723a2070726f706f736160448201527f6c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d697360648201527f6d61746368000000000000000000000000000000000000000000000000000000608482015260a401610924565b611f3486855161208c565b505050505050565b611f44611de4565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611dba3390565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60015474010000000000000000000000000000000000000000900460ff16610d575760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610924565b61ffff8216600090815260056020908152604080832054600483528184205460038452828520546006909452919093205442939290620151806120cf85876131de565b11156120f35761ffff87166000908152600560205260409020859055859250612100565b6120fd8684612e2e565b92505b818311156121505760405162461bcd60e51b815260206004820181905260248201527f4461696c79205472616e73616374696f6e204c696d69742045786365656465646044820152606401610924565b84810361219f5760405162461bcd60e51b815260206004820152601f60248201527f4d756c7469706c65206272696467696e6720696e20612070726f706f73616c006044820152606401610924565b505061ffff9094166000908152600460209081526040808320969096556006905293909320555050565b5080546121d5906127a8565b6000825580601f106121e5575050565b601f016020900490600052602060002090810190611b7291905b8082111561221357600081556001016121ff565b5090565b803561ffff8116811461222957600080fd5b919050565b60006020828403121561224057600080fd5b6112ae82612217565b73ffffffffffffffffffffffffffffffffffffffff81168114611b7257600080fd5b60006020828403121561227d57600080fd5b81356112ae81612249565b60008083601f84011261229a57600080fd5b50813567ffffffffffffffff8111156122b257600080fd5b6020830191508360208285010111156122ca57600080fd5b9250929050565b8015158114611b7257600080fd5b600080600080600080608087890312156122f857600080fd5b61230187612217565b9550602087013567ffffffffffffffff8082111561231e57600080fd5b61232a8a838b01612288565b90975095506040890135915061233f826122d1565b9093506060880135908082111561235557600080fd5b5061236289828a01612288565b979a9699509497509295939492505050565b6000806040838503121561238757600080fd5b61239083612217565b946020939093013593505050565b60008060008060008060008060c0898b0312156123ba57600080fd5b88356123c581612249565b9750602089013596506123da60408a01612217565b9550606089013567ffffffffffffffff808211156123f757600080fd5b6124038c838d01612288565b909750955060808b013591508082111561241c57600080fd5b506124298b828c01612288565b999c989b50969995989497949560a00135949350505050565b6000806000806000806080878903121561245b57600080fd5b61246487612217565b9550602087013567ffffffffffffffff8082111561248157600080fd5b61248d8a838b01612288565b909750955060408901359150808211156124a657600080fd5b506124b389828a01612288565b90945092505060608701356124c781612249565b809150509295509295509295565b6000806000606084860312156124ea57600080fd5b6124f384612217565b925061250160208501612217565b9150604084013590509250925092565b60005b8381101561252c578181015183820152602001612514565b50506000910152565b6000815180845261254d816020860160208601612511565b601f01601f19169290920160200192915050565b6020815260006112ae6020830184612535565b60006020828403121561258657600080fd5b5035919050565b6000806000604084860312156125a257600080fd5b6125ab84612217565b9250602084013567ffffffffffffffff8111156125c757600080fd5b6125d386828701612288565b9497909650939450505050565b6000806000806000608086880312156125f857600080fd5b61260186612217565b945061260f60208701612217565b935060408601359250606086013567ffffffffffffffff81111561263257600080fd5b61263e88828901612288565b969995985093965092949392505050565b60008060008060008060008060c0898b03121561266b57600080fd5b8835975061267b60208a01612217565b9650604089013567ffffffffffffffff8082111561269857600080fd5b6126a48c838d01612288565b909850965060608b01359150808211156126bd57600080fd5b506126ca8b828c01612288565b90955093505060808901356126de81612249565b8092505060a089013590509295985092959890939650565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015260a06040820152600061275b60a0830187896126f6565b851515606084015282810360808401526127768185876126f6565b9a9950505050505050505050565b6000806040838503121561279757600080fd5b505080516020909101519092909150565b600181811c908216806127bc57607f821691505b6020821081036127f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b61ffff871681526080602082015260006128196080830187896126f6565b828103604084015261282c8186886126f6565b915050826060830152979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128a0576128a0612840565b5060010190565b6040815260006128bb6040830185876126f6565b9050826020830152949350505050565b61ffff8816815260c0602082015260006128e860c0830189612535565b82810360408401526128fa8189612535565b73ffffffffffffffffffffffffffffffffffffffff88811660608601528716608085015283810360a085015290506127768185876126f6565b61ffff861681526080602082015260006129506080830187612535565b82810360408401526129638186886126f6565b9150508260608301529695505050505050565b6080815260006129896080830188612535565b828103602084015261299c8187896126f6565b905084604084015282810360608401526129b68185612535565b98975050505050505050565b8281526040602082015260006112ab6040830184612535565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a3357612a336129db565b604052919050565b600067ffffffffffffffff821115612a5557612a556129db565b50601f01601f191660200190565b6000612a76612a7184612a3b565b612a0a565b9050828152838383011115612a8a57600080fd5b6112ae836020830184612511565b600082601f830112612aa957600080fd5b6112ae83835160208501612a63565b600060208284031215612aca57600080fd5b815167ffffffffffffffff811115612ae157600080fd5b612aed84828501612a98565b949350505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015612b355780818660140360031b1b83161692505b505092915050565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b601f821115612bbe576000816000526020600020601f850160051c81016020861015612b9f5750805b601f850160051c820191505b81811015611f3457828155600101612bab565b505050565b815167ffffffffffffffff811115612bdd57612bdd6129db565b612bf181612beb84546127a8565b84612b76565b602080601f831160018114612c445760008415612c0e5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611f34565b600085815260208120601f198616915b82811015612c7357888601518255948401946001909101908401612c54565b5085821015612caf57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612cd26040830185612535565b60208382038185015260008554612ce8816127a8565b80855260018281168015612d035760018114612d3b57612d69565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008416868801528583151560051b8801019450612d69565b896000528560002060005b84811015612d61578154898201890152908301908701612d46565b880187019550505b50929998505050505050505050565b600061ffff808816835280871660208401525084604083015260806060830152612da66080830184866126f6565b979650505050505050565b60008060408385031215612dc457600080fd5b823567ffffffffffffffff811115612ddb57600080fd5b8301601f81018513612dec57600080fd5b8035612dfa612a7182612a3b565b818152866020838501011115612e0f57600080fd5b8160208401602083013760006020928201830152969401359450505050565b80820180821115612e4157612e41612840565b92915050565b61ffff8916815260c060208201526000612e6460c083018a612535565b8281036040840152612e7781898b6126f6565b73ffffffffffffffffffffffffffffffffffffffff88811660608601528716608085015283810360a08501529050612eb08185876126f6565b9b9a5050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006112ab6040830184612535565b600060208284031215612f0057600080fd5b81516112ae816122d1565b600067ffffffffffffffff821115612f2557612f256129db565b5060051b60200190565b600082601f830112612f4057600080fd5b81516020612f50612a7183612f0b565b8083825260208201915060208460051b870101935086841115612f7257600080fd5b602086015b84811015612f8e5780518352918301918301612f77565b509695505050505050565b600082601f830112612faa57600080fd5b81516020612fba612a7183612f0b565b82815260059290921b84018101918181019086841115612fd957600080fd5b8286015b84811015612f8e57805167ffffffffffffffff811115612ffd5760008081fd5b8701603f8101891361300f5760008081fd5b613020898683015160408401612a63565b845250918301918301612fdd565b600082601f83011261303f57600080fd5b8151602061304f612a7183612f0b565b82815260059290921b8401810191818101908684111561306e57600080fd5b8286015b84811015612f8e57805167ffffffffffffffff8111156130925760008081fd5b6130a08986838b0101612a98565b845250918301918301613072565b805160ff8116811461222957600080fd5b600080600080600060a086880312156130d757600080fd5b855167ffffffffffffffff808211156130ef57600080fd5b818801915088601f83011261310357600080fd5b81516020613113612a7183612f0b565b82815260059290921b8401810191818101908c84111561313257600080fd5b948201945b8386101561315957855161314a81612249565b82529482019490820190613137565b918b015191995090935050508082111561317257600080fd5b61317e89838a01612f2f565b9550604088015191508082111561319457600080fd5b6131a089838a01612f99565b945060608801519150808211156131b657600080fd5b506131c38882890161302e565b9250506131d2608087016130ae565b90509295509295909350565b81810381811115612e4157612e4161284056fe657865637574652875696e7431362c62797465732c62797465732c61646472657373297365745472757374656452656d6f7465416464726573732875696e7431362c627974657329736574436f6e6669672875696e7431362c75696e7431362c75696e743235362c6279746573297265747279457865637574652875696e743235362c75696e7431362c62797465732c62797465732c616464726573732c75696e7432353629a26469706673582212207640aa01bf0fe0091e9a77ed4591e13da364297a13e8537adede0f95d517267664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7533D788 GT PUSH2 0xE1 JUMPI DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0xE0354D7F EQ PUSH2 0x518 JUMPI DUP1 PUSH4 0xE2222B0E EQ PUSH2 0x545 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x558 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xCD4D1C64 EQ PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xBB JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7533D788 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x7DBB533C EQ PUSH2 0x3A6 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30FD54A0 GT PUSH2 0x14E JUMPI DUP1 PUSH4 0x4F4BA0F4 GT PUSH2 0x128 JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0x5F6716F7 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30FD54A0 EQ PUSH2 0x29D JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0x3FD9D7EF EQ PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x21B4EAA1 GT PUSH2 0x17F JUMPI DUP1 PUSH4 0x21B4EAA1 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x2DBBEC08 EQ PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x1183A3B2 EQ PUSH2 0x1E8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x578 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x1E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x65C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x248 PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x22DF JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x2374 JUMP JUMPDEST PUSH2 0x7B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x298 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x855 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x2B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x97B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0xD11 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x2E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2442 JUMP JUMPDEST PUSH2 0xD59 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x24D5 JUMP JUMPDEST PUSH2 0x11DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x2561 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH2 0x3A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH2 0x12B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2574 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x134F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x21F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x47C CALLDATASIZE PUSH1 0x4 PUSH2 0x258D JUMP JUMPDEST PUSH2 0x1395 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x40F SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x4C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E0 JUMP JUMPDEST PUSH2 0x15ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40F PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1C6 PUSH2 0x553 CALLDATASIZE PUSH1 0x4 PUSH2 0x264F JUMP JUMPDEST PUSH2 0x16B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x564 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C6 PUSH2 0x573 CALLDATASIZE PUSH1 0x4 PUSH2 0x226B JUMP JUMPDEST PUSH2 0x1AD8 JUMP JUMPDEST PUSH2 0x5B6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x73657453656E6456657273696F6E2875696E7431362900000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7E0DB1700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x664 PUSH2 0x1C5A JUMP JUMPDEST PUSH2 0x66D DUP2 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x40A7BB10 DUP10 ADDRESS DUP11 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x763 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x77F 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 0x7A3 SWAP2 SWAP1 PUSH2 0x2784 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x7F0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D61784461696C794C696D69742875696E7431362C75696E7432353629 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x893 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x72656D6F76655472757374656452656D6F74652875696E743136290000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x8B1 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 SUB PUSH2 0x92D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2074727573746564 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2072656D6F7465206E6F7420666F756E64000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x949 SWAP2 PUSH2 0x21C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP3 AND SWAP1 PUSH32 0x6D5075C81D4D9E75BEC6052F4E44F58F8A8CF1327544ADDBBF015FB06F83BD37 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x983 PUSH2 0x1C5A JUMP JUMPDEST PUSH2 0x98B PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0x994 DUP9 PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xA0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206E617469766520616D6F756E74000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 SUB PUSH2 0xA81 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0xB03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A206E6F2073746F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564207061796C6F616400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB20 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP DUP2 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0xBAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20657865637574696F6E20706172616D73000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP1 PUSH32 0x22FE8E8EAD80AD0961D77107E806BA9BCF9CA3B175A9D446145646D39C36AB96 SWAP1 PUSH2 0xC08 SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP9 PUSH32 0x2DC7AC5D08FD553243FC66B5F15262E3F3013E27ABF660D7BB3FCCF133322F6E DUP4 PUSH1 0x40 MLOAD PUSH2 0xC42 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xCA4 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 0xCA9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xCFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST POP POP POP PUSH2 0xD07 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD4F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x756E706175736528290000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xD57 PUSH2 0x1D67 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xD61 PUSH2 0x1DE4 JUMP JUMPDEST PUSH2 0xD82 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x31F2 PUSH1 0x23 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT PUSH2 0xDF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2076616C75652063 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E6E6F74206265207A65726F00000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP5 SWAP1 SUB PUSH2 0xE6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xE8D SWAP1 PUSH2 0x27A8 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 0xEB9 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF06 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEDB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF06 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 0xEE9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xFAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2064657374696E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74696F6E20636861696E206973206E6F742061207472757374656420736F7572 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFEA 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 PUSH2 0x1E4F SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD PUSH2 0xFFB SWAP1 PUSH2 0x286F JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP8 DUP8 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x101A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x28A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH32 0xC580310000000000000000000000000000000000000000000000000000000000 DUP3 MSTORE SWAP2 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 CALLVALUE SWAP1 PUSH2 0x10AA SWAP1 DUP14 SWAP1 DUP9 SWAP1 DUP8 SWAP1 CALLER SWAP1 DUP13 SWAP1 DUP16 SWAP1 DUP16 SWAP1 PUSH1 0x4 ADD PUSH2 0x28CB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x10D5 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x1193 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1103 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 0x1108 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP10 DUP3 DUP9 DUP9 CALLVALUE PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1122 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2933 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x8 SWAP1 SWAP3 MSTORE SWAP2 SWAP1 KECCAK256 SSTORE PUSH2 0xFFFF DUP12 AND SWAP1 DUP5 SWAP1 PUSH32 0x6D16111647E03D7F1CB2B71C02EAFE3355B97DFC17AF3DE1B94EF39C8A9EE4D9 SWAP1 PUSH2 0x1185 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 CALLVALUE SWAP1 DUP10 SWAP1 PUSH2 0x2976 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH2 0x11D2 JUMP JUMPDEST DUP9 PUSH2 0xFFFF AND PUSH32 0x95A4FCF4EB9BE6F5CF2EB6830782870F8907BCCC513F765388A9CB2DAE2F3259 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11C9 SWAP3 SWAP2 SWAP1 PUSH2 0x29C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF5ECBDBC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH2 0xFFFF DUP1 DUP6 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1283 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 0x12AB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AB8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x12CE SWAP1 PUSH2 0x27A8 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 0x12FA SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1347 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x131C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1347 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 0x132A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x138D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061757365282900000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xD57 PUSH2 0x1F3C JUMP JUMPDEST PUSH2 0x13B6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3215 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0x1430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20636861696E4964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D757374206E6F74206265207A65726F000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1445 PUSH2 0x143D DUP3 DUP5 PUSH2 0x2AF5 JUMP JUMPDEST PUSH1 0x60 SHR PUSH2 0x1CC1 JUMP JUMPDEST PUSH1 0x14 DUP2 EQ PUSH2 0x14BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2072656D6F746520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61646472657373206D757374206265203230206279746573206C6F6E67000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x14D9 SWAP1 PUSH2 0x27A8 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 0x1505 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1552 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1527 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1552 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 0x1535 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 DUP3 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x156E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B3D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x1599 SWAP1 DUP3 PUSH2 0x2BC3 JUMP JUMPDEST POP PUSH2 0xFFFF DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH32 0xE84E609C32D71C678382F7C65CC051810A41DCAF660E55C9F8FCFFEBA4621A32 SWAP2 PUSH2 0x15DF SWAP2 DUP6 SWAP2 SWAP1 PUSH2 0x2CBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x160E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x323A PUSH1 0x26 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xCBED8B9C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1688 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2D78 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x16BE PUSH2 0x1DE4 JUMP JUMPDEST PUSH2 0x16C6 PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0x16E7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x38 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3260 PUSH1 0x38 SWAP2 CODECOPY PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1705 SWAP1 PUSH2 0x27A8 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 0x1731 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x177E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1753 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x177E 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 0x1761 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1822 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2064657374696E61 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74696F6E20636861696E206973206E6F742061207472757374656420736F7572 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x18A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A206E6F2073746F72 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6564207061796C6F616400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP8 SWAP1 SUB PUSH2 0x191B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20656D7074792070 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x61796C6F61640000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1929 DUP9 DUP11 ADD DUP11 PUSH2 0x2DB1 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x1936 DUP11 DUP3 PUSH2 0x1E4F JUMP JUMPDEST DUP2 DUP11 DUP11 DUP11 DUP11 DUP11 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1952 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ PUSH2 0x19DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A20696E76616C6964 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20657865637574696F6E20706172616D73000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD DUP12 SWAP1 PUSH32 0x2DC7AC5D08FD553243FC66B5F15262E3F3013E27ABF660D7BB3FCCF133322F6E SWAP1 PUSH2 0x1A20 SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND PUSH4 0xC5803100 PUSH2 0x1A6E CALLVALUE DUP8 PUSH2 0x2E2E JUMP JUMPDEST DUP13 DUP7 DUP14 DUP14 CALLER DUP13 DUP16 DUP16 PUSH1 0x40 MLOAD DUP11 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A99 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2E47 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP PUSH2 0xD07 PUSH1 0x1 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1AE0 PUSH2 0x1C5A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B69 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1B72 DUP2 PUSH2 0x1FAB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH32 0x18C5E8AB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x1BCD SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x2EBF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BEA 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 0x1C0E SWAP2 SWAP1 PUSH2 0x2EEE JUMP JUMPDEST PUSH2 0x1B72 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6163636573732064656E69656400000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B72 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SLOAD SUB PUSH2 0x1D60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH2 0x1D6F PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1E69 SWAP2 SWAP1 PUSH2 0x30BF JUMP JUMPDEST POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP DUP3 MLOAD DUP5 MLOAD EQ DUP1 ISZERO PUSH2 0x1E84 JUMPI POP DUP2 MLOAD DUP5 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x1E91 JUMPI POP DUP1 MLOAD DUP5 MLOAD EQ JUMPDEST PUSH2 0x1F29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6D6E69636861696E50726F706F73616C53656E6465723A2070726F706F7361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C2066756E6374696F6E20696E666F726D6174696F6E206172697479206D6973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6D61746368000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0x1F34 DUP7 DUP6 MLOAD PUSH2 0x208C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F44 PUSH2 0x1DE4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x1DBA CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x4 DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x3 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD TIMESTAMP SWAP4 SWAP3 SWAP1 PUSH3 0x15180 PUSH2 0x20CF DUP6 DUP8 PUSH2 0x31DE JUMP JUMPDEST GT ISZERO PUSH2 0x20F3 JUMPI PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP6 SWAP3 POP PUSH2 0x2100 JUMP JUMPDEST PUSH2 0x20FD DUP7 DUP5 PUSH2 0x2E2E JUMP JUMPDEST SWAP3 POP JUMPDEST DUP2 DUP4 GT ISZERO PUSH2 0x2150 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565646564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST DUP5 DUP2 SUB PUSH2 0x219F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D756C7469706C65206272696467696E6720696E20612070726F706F73616C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x924 JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE PUSH1 0x6 SWAP1 MSTORE SWAP4 SWAP1 SWAP4 KECCAK256 SSTORE POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x21D5 SWAP1 PUSH2 0x27A8 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x21E5 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 0x1B72 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2213 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x21FF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2240 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP3 PUSH2 0x2217 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1B72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x227D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x12AE DUP2 PUSH2 0x2249 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x229A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x22CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1B72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2301 DUP8 PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x231E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x232A DUP11 DUP4 DUP12 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH2 0x233F DUP3 PUSH2 0x22D1 JUMP JUMPDEST SWAP1 SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x2355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2362 DUP10 DUP3 DUP11 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2390 DUP4 PUSH2 0x2217 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x23BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0x23C5 DUP2 PUSH2 0x2249 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP7 POP PUSH2 0x23DA PUSH1 0x40 DUP11 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x23F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2403 DUP13 DUP4 DUP14 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x241C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2429 DUP12 DUP3 DUP13 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP5 SWAP8 SWAP5 SWAP6 PUSH1 0xA0 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x245B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2464 DUP8 PUSH2 0x2217 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2481 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x248D DUP11 DUP4 DUP12 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x24A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24B3 DUP10 DUP3 DUP11 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0x24C7 DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24F3 DUP5 PUSH2 0x2217 JUMP JUMPDEST SWAP3 POP PUSH2 0x2501 PUSH1 0x20 DUP6 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x252C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2514 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x254D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2511 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x12AE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x25A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25AB DUP5 PUSH2 0x2217 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25D3 DUP7 DUP3 DUP8 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x25F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2601 DUP7 PUSH2 0x2217 JUMP JUMPDEST SWAP5 POP PUSH2 0x260F PUSH1 0x20 DUP8 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x263E DUP9 DUP3 DUP10 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x266B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x267B PUSH1 0x20 DUP11 ADD PUSH2 0x2217 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A4 DUP13 DUP4 DUP14 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x26BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26CA DUP12 DUP3 DUP13 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH2 0x26DE DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x275B PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST DUP6 ISZERO ISZERO PUSH1 0x60 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2776 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x27BC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27F5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2819 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x282C DUP2 DUP7 DUP9 PUSH2 0x26F6 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x28A0 JUMPI PUSH2 0x28A0 PUSH2 0x2840 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x28BB PUSH1 0x40 DUP4 ADD DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x28E8 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x28FA DUP2 DUP10 PUSH2 0x2535 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2776 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2950 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2963 DUP2 DUP7 DUP9 PUSH2 0x26F6 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2989 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x299C DUP2 DUP8 DUP10 PUSH2 0x26F6 JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x40 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x29B6 DUP2 DUP6 PUSH2 0x2535 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x12AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2A33 JUMPI PUSH2 0x2A33 PUSH2 0x29DB JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A55 JUMPI PUSH2 0x2A55 PUSH2 0x29DB JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A76 PUSH2 0x2A71 DUP5 PUSH2 0x2A3B JUMP JUMPDEST PUSH2 0x2A0A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2A8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2511 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AE DUP4 DUP4 MLOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2A63 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AED DUP5 DUP3 DUP6 ADD PUSH2 0x2A98 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x14 DUP6 LT ISZERO PUSH2 0x2B35 JUMPI DUP1 DUP2 DUP7 PUSH1 0x14 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x60 SWAP2 SWAP1 SWAP2 SHL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 AND SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2BBE JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2B9F JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F34 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2BAB JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BDD JUMPI PUSH2 0x2BDD PUSH2 0x29DB JUMP JUMPDEST PUSH2 0x2BF1 DUP2 PUSH2 0x2BEB DUP5 SLOAD PUSH2 0x27A8 JUMP JUMPDEST DUP5 PUSH2 0x2B76 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2C44 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2C0E JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1F34 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C73 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x2C54 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x2CAF JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2CD2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP3 SUB DUP2 DUP6 ADD MSTORE PUSH1 0x0 DUP6 SLOAD PUSH2 0x2CE8 DUP2 PUSH2 0x27A8 JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x2D03 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2D3B JUMPI PUSH2 0x2D69 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP5 AND DUP7 DUP9 ADD MSTORE DUP6 DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP9 ADD ADD SWAP5 POP PUSH2 0x2D69 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP6 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2D61 JUMPI DUP2 SLOAD DUP10 DUP3 ADD DUP10 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP8 ADD PUSH2 0x2D46 JUMP JUMPDEST DUP9 ADD DUP8 ADD SWAP6 POP POP JUMPDEST POP SWAP3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP1 DUP9 AND DUP4 MSTORE DUP1 DUP8 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2DA6 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x26F6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x2DEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2DFA PUSH2 0x2A71 DUP3 PUSH2 0x2A3B JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 SWAP3 DUP3 ADD DUP4 ADD MSTORE SWAP7 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2E41 JUMPI PUSH2 0x2E41 PUSH2 0x2840 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP10 AND DUP2 MSTORE PUSH1 0xC0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2E64 PUSH1 0xC0 DUP4 ADD DUP11 PUSH2 0x2535 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2E77 DUP2 DUP10 DUP12 PUSH2 0x26F6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND PUSH1 0x60 DUP7 ADD MSTORE DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x2EB0 DUP2 DUP6 DUP8 PUSH2 0x26F6 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x12AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2535 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x12AE DUP2 PUSH2 0x22D1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2F25 JUMPI PUSH2 0x2F25 PUSH2 0x29DB JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x2F50 PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP7 DUP5 GT ISZERO PUSH2 0x2F72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2F77 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x2FBA PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2FD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FFD JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x300F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3020 DUP10 DUP7 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD PUSH2 0x2A63 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2FDD JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x303F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x304F PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x306E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F8E JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3092 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x30A0 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x2A98 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x3072 JUMP JUMPDEST DUP1 MLOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2229 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x30D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x30EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3103 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH2 0x3113 PUSH2 0x2A71 DUP4 PUSH2 0x2F0B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP13 DUP5 GT ISZERO PUSH2 0x3132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x3159 JUMPI DUP6 MLOAD PUSH2 0x314A DUP2 PUSH2 0x2249 JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH2 0x3137 JUMP JUMPDEST SWAP2 DUP12 ADD MLOAD SWAP2 SWAP10 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH2 0x3172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x317E DUP10 DUP4 DUP11 ADD PUSH2 0x2F2F JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31A0 DUP10 DUP4 DUP11 ADD PUSH2 0x2F99 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x31B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31C3 DUP9 DUP3 DUP10 ADD PUSH2 0x302E JUMP JUMPDEST SWAP3 POP POP PUSH2 0x31D2 PUSH1 0x80 DUP8 ADD PUSH2 0x30AE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2E41 JUMPI PUSH2 0x2E41 PUSH2 0x2840 JUMP INVALID PUSH6 0x786563757465 0x28 PUSH22 0x696E7431362C62797465732C62797465732C61646472 PUSH6 0x737329736574 SLOAD PUSH19 0x757374656452656D6F74654164647265737328 PUSH22 0x696E7431362C627974657329736574436F6E66696728 PUSH22 0x696E7431362C75696E7431362C75696E743235362C62 PUSH26 0x746573297265747279457865637574652875696E743235362C75 PUSH10 0x6E7431362C6279746573 0x2C PUSH3 0x797465 PUSH20 0x2C616464726573732C75696E7432353629A26469 PUSH17 0x6673582212207640AA01BF0FE0091E9A77 0xED GASLIMIT SWAP2 0xE1 RETURNDATASIZE LOG3 PUSH5 0x297A13E853 PUSH27 0xDEDE0F95D517267664736F6C634300081900330000000000000000 ","sourceMap":"927:14147:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13740:153;;;;;;;;;;-1:-1:-1;13740:153:29;;;;;:::i;:::-;;:::i;:::-;;3461:280:26;;;;;;;;;;-1:-1:-1;3461:280:26;;;;;:::i;:::-;;:::i;1136:65::-;;;;;;;;;;-1:-1:-1;1136:65:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;924:25:54;;;912:2;897:18;1136:65:26;;;;;;;;3906:308:29;;;;;;;;;;-1:-1:-1;3906:308:29;;;;;:::i;:::-;;:::i;:::-;;;;2533:25:54;;;2589:2;2574:18;;2567:34;;;;2506:18;3906:308:29;2359:248:54;2436:269:26;;;;;;;;;;-1:-1:-1;2436:269:26;;;;;:::i;:::-;;:::i;4508:345:29:-;;;;;;;;;;-1:-1:-1;4508:345:29;;;;;:::i;:::-;;:::i;10543:1083::-;;;;;;;;;;-1:-1:-1;10543:1083:29;;;;;:::i;:::-;;:::i;3067:92:26:-;;;;;;;;;;;;;:::i;5876:1514:29:-;;;;;;:::i;:::-;;:::i;963:56:26:-;;;;;;;;;;-1:-1:-1;963:56:26;;;;;:::i;:::-;;;;;;;;;;;;;;1615:84:17;;;;;;;;;;-1:-1:-1;1685:7:17;;;;;;;1615:84;;5032:14:54;;5025:22;5007:41;;4995:2;4980:18;1615:84:17;4867:187:54;14203:204:29;;;;;;;;;;-1:-1:-1;14203:204:29;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3841:47:26:-;;;;;;;;;1577:51:29;;;;;;;;;;-1:-1:-1;1577:51:29;;;;;:::i;:::-;;:::i;1234:56::-;;;;;;;;;;-1:-1:-1;1234:56:29;;;;;:::i;:::-;;;;;;;;;;;;;;2843:86:26;;;;;;;;;;;;;:::i;1201:85:16:-;;;;;;;;;;-1:-1:-1;1273:6:16;;;;1201:85;;;6742:42:54;6730:55;;;6712:74;;6700:2;6685:18;1201:85:16;6566:226:54;1307:64:26;;;;;;;;;;-1:-1:-1;1307:64:26;;;;;:::i;:::-;;;;;;;;;;;;;;12038:736:29;;;;;;;;;;-1:-1:-1;12038:736:29;;;;;:::i;:::-;;:::i;836:35:26:-;;;;;;;;;;-1:-1:-1;836:35:26;;;;;;;;13257:253:29;;;;;;;;;;-1:-1:-1;13257:253:29;;;;;:::i;:::-;;:::i;1385:47::-;;;;;;;;;;;;;;;1088:28;;;;;;;;;;;;;;;;1481:68:26;;;;;;;;;;-1:-1:-1;1481:68:26;;;;;:::i;:::-;;;;;;;;;;;;;;8321:1410:29;;;;;;:::i;:::-;;:::i;2081:198:16:-;;;;;;;;;;-1:-1:-1;2081:198:16;;;;;:::i;:::-;;:::i;13740:153:29:-;13800:40;;;;;;;;;;;;;;;;;;:14;:40::i;:::-;13850:36;;;;;9410:6:54;9398:19;;13850:36:29;;;9380:38:54;13850:11:29;:26;;;;;9353:18:54;;13850:36:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13740:153;:::o;3461:280:26:-;1094:13:16;:11;:13::i;:::-;3554:43:26::1;3575:21;3554:20;:43::i;:::-;3636:20;::::0;3612:68:::1;::::0;::::1;::::0;;::::1;::::0;3636:20:::1;::::0;3612:68:::1;::::0;3636:20:::1;::::0;3612:68:::1;3690:20;:44:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;3461:280::o;3906:308:29:-;4082:7;4091;4117:11;:24;;;4142:14;4166:4;4173:8;;4183:7;4192:14;;4117:90;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4110:97;;;;3906:308;;;;;;;;;:::o;2436:269:26:-;2514:50;;;;;;;;;;;;;;;;;;:14;:50::i;:::-;2579:68;;;2606:32;;;;:22;:32;;;;;;;;;;2579:68;;2533:25:54;;;2574:18;;;2567:34;;;2579:68:26;;2506:18:54;2579:68:26;;;;;;;2657:32;;;;;;;;:22;:32;;;;;:41;2436:269::o;4508:345:29:-;4579:45;;;;;;;;;;;;;;;;;;:14;:45::i;:::-;4642:35;;;;;;;:19;:35;;;;;:42;;;;;:::i;:::-;;;4688:1;4642:47;4634:109;;;;-1:-1:-1;;;4634:109:29;;11375:2:54;4634:109:29;;;11357:21:54;11414:2;11394:18;;;11387:30;11453:34;11433:18;;;11426:62;11524:19;11504:18;;;11497:47;11561:19;;4634:109:29;;;;;;;;;4760:35;;;;;;;:19;:35;;;;;4753:42;;;:::i;:::-;4810:36;;;;;;;;;;;4508:345;:::o;10543:1083::-;1094:13:16;:11;:13::i;:::-;2261:21:18::1;:19;:21::i;:::-;10795:25:29::2;10816:3;10795:20;:25::i;:::-;10855:1;10838:14;:18;10830:77;;;::::0;-1:-1:-1;;;10830:77:29;;11793:2:54;10830:77:29::2;::::0;::::2;11775:21:54::0;11832:2;11812:18;;;11805:30;11871:34;11851:18;;;11844:62;11942:16;11922:18;;;11915:44;11976:19;;10830:77:29::2;11591:410:54::0;10830:77:29::2;10944:1;10925:20:::0;;;10917:71:::2;;;::::0;-1:-1:-1;;;10917:71:29;;12208:2:54;10917:71:29::2;::::0;::::2;12190:21:54::0;12247:2;12227:18;;;12220:30;12286:34;12266:18;;;12259:62;12357:8;12337:18;;;12330:36;12383:19;;10917:71:29::2;12006:402:54::0;10917:71:29::2;10999:12;11014:27:::0;;;:21:::2;:27;::::0;;;;;;11051:73:::2;;;::::0;-1:-1:-1;;;11051:73:29;;12615:2:54;11051:73:29::2;::::0;::::2;12597:21:54::0;12654:2;12634:18;;;12627:30;12693:34;12673:18;;;12666:62;12764:12;12744:18;;;12737:40;12794:19;;11051:73:29::2;12413:406:54::0;11051:73:29::2;11135:22;11171:14;11187:8;;11197:14;;11213;11160:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11135:93;;11270:4;11256:9;11246:20;;;;;;:28;11238:90;;;::::0;-1:-1:-1;;;11238:90:29;;13617:2:54;11238:90:29::2;::::0;::::2;13599:21:54::0;13656:2;13636:18;;;13629:30;13695:34;13675:18;;;13668:62;13766:19;13746:18;;;13739:47;13803:19;;11238:90:29::2;13415:413:54::0;11238:90:29::2;11346:27;::::0;;;:21:::2;:27;::::0;;;;;11339:34;;;;11389:37;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;11411:14;924:25:54;;912:2;897:18;;778:177;11389:37:29::2;;;;;;;;11454:4;11441:24;11460:4;11441:24;;;;924:25:54::0;;912:2;897:18;;778:177;11441:24:29::2;;;;;;;;11529:9;11544:3;:8;;11561:14;11544:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11528:53;;;11599:4;11591:28;;;::::0;-1:-1:-1;;;11591:28:29;;14245:2:54;11591:28:29::2;::::0;::::2;14227:21:54::0;14284:2;14264:18;;;14257:30;14323:13;14303:18;;;14296:41;14354:18;;11591:28:29::2;14043:335:54::0;11591:28:29::2;10785:841;;;2303:20:18::1;1716:1:::0;2809:7;:22;2629:209;2303:20:::1;10543:1083:29::0;;;;;;;;:::o;3067:92:26:-;3105:27;;;;;;;;;;;;;;;;;;:14;:27::i;:::-;3142:10;:8;:10::i;:::-;3067:92::o;5876:1514:29:-;1239:19:17;:17;:19::i;:::-;6079:53:29::1;;;;;;;;;;;;;;;;;;:14;:53::i;:::-;6296:1;6284:9;:13;6276:71;;;::::0;-1:-1:-1;;;6276:71:29;;14585:2:54;6276:71:29::1;::::0;::::1;14567:21:54::0;14624:2;14604:18;;;14597:30;14663:34;14643:18;;;14636:62;14734:15;14714:18;;;14707:43;14767:19;;6276:71:29::1;14383:409:54::0;6276:71:29::1;6384:1;6365:20:::0;;;6357:71:::1;;;::::0;-1:-1:-1;;;6357:71:29;;12208:2:54;6357:71:29::1;::::0;::::1;12190:21:54::0;12247:2;12227:18;;;12220:30;12286:34;12266:18;;;12259:62;12357:8;12337:18;;;12330:36;12383:19;;6357:71:29::1;12006:402:54::0;6357:71:29::1;6468:35;::::0;::::1;6439:26;6468:35:::0;;;:19:::1;:35;::::0;;;;6439:64;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6521:13;:20;6545:1;6521:25:::0;6513:104:::1;;;::::0;-1:-1:-1;;;6513:104:29;;14999:2:54;6513:104:29::1;::::0;::::1;14981:21:54::0;15038:2;15018:18;;;15011:30;15077:34;15057:18;;;15050:62;15148:34;15128:18;;;15121:62;15220:4;15199:19;;;15192:33;15242:19;;6513:104:29::1;14797:470:54::0;6513:104:29::1;6627:43;6645:14;6661:8;;6627:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;6627:17:29::1;::::0;-1:-1:-1;;;6627:43:29:i:1;:::-;6680:12;6697:13;;6695:15;;;;;:::i;:::-;;;;;;;6680:30;;6720:20;6754:8;;6764:4;6743:26;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;6743:26:29;;::::1;::::0;;;;;;;6796:243;;;6743:26;-1:-1:-1;6796:16:29::1;:11;:16;::::0;::::1;::::0;6821:9:::1;::::0;6796:243:::1;::::0;6850:14;;6882:13;;6743:26;;6946:10:::1;::::0;6975:18;;7011:14;;;;6796:243:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;6780:604;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7224:14;7240:7;7249:14;;7265:9;7213:62;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;7213:62:29;;::::1;::::0;;;;;;7203:73;;7213:62:::1;7203:73:::0;;::::1;::::0;7173:27:::1;::::0;;;:21:::1;:27:::0;;;;;;:103;7295:78:::1;::::0;::::1;::::0;7195:4;;7295:78:::1;::::0;::::1;::::0;7330:7;;7339:14;;;;7355:9:::1;::::0;7366:6;;7295:78:::1;:::i;:::-;;;;;;;;7131:253;6780:604;;;7089:14;7067:52;;;7105:4;7111:7;7067:52;;;;;;;:::i;:::-;;;;;;;;6780:604;6069:1321;;;5876:1514:::0;;;;;;:::o;14203:204::-;14331:69;;;;;18609:6:54;18642:15;;;14331:69:29;;;18624:34:54;18694:15;;18674:18;;;18667:43;14381:4:29;18726:18:54;;;18719:83;18818:18;;;18811:34;;;14300:12:29;;14331:11;:21;;;;;18571:19:54;;14331:69:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14331:69:29;;;;;;;;;;;;:::i;:::-;14324:76;;14203:204;;;;;;:::o;1577:51::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2843:86:26:-;2879:25;;;;;;;;;;;;;;;;;;:14;:25::i;:::-;2914:8;:6;:8::i;12038:736:29:-;12147:55;;;;;;;;;;;;;;;;;;:14;:55::i;:::-;12220:14;:19;;12238:1;12220:19;12212:81;;;;-1:-1:-1;;;12212:81:29;;20741:2:54;12212:81:29;;;20723:21:54;20780:2;20760:18;;;20753:30;20819:34;20799:18;;;20792:62;20890:19;20870:18;;;20863:47;20927:19;;12212:81:29;20539:413:54;12212:81:29;12303:66;12340:26;12348:17;;12340:26;:::i;:::-;12332:35;;12303:20;:66::i;:::-;12415:2;12387:30;;12379:104;;;;-1:-1:-1;;;12379:104:29;;21536:2:54;12379:104:29;;;21518:21:54;21575:2;21555:18;;;21548:30;21614:34;21594:18;;;21587:62;21685:31;21665:18;;;21658:59;21734:19;;12379:104:29;21334:425:54;12379:104:29;12525:35;;;12493:29;12525:35;;;:19;:35;;;;;12493:67;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12625:17;;12652:4;12608:50;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;12608:50:29;;;;;;;;;12570:35;;;;;;;:19;12608:50;12570:35;;;:88;;:35;:88;:::i;:::-;-1:-1:-1;12673:94:29;;;12731:35;;;;:19;:35;;;;;;;12673:94;;;;;;12713:16;;12731:35;12673:94;:::i;:::-;;;;;;;;12137:637;12038:736;;;:::o;13257:253::-;13374:56;;;;;;;;;;;;;;;;;;:14;:56::i;:::-;13440:63;;;;;:21;:11;:21;;;;:63;;13462:8;;13472;;13482:11;;13495:7;;;;13440:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8321:1410;1239:19:17;:17;:19::i;:::-;2261:21:18::1;:19;:21::i;:::-;8596:74:29::2;;;;;;;;;;;;;;;;;;:14;:74::i;:::-;8709:35;::::0;::::2;8680:26;8709:35:::0;;;:19:::2;:35;::::0;;;;8680:64;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8762:13;:20;8786:1;8762:25:::0;8754:104:::2;;;::::0;-1:-1:-1;;;8754:104:29;;14999:2:54;8754:104:29::2;::::0;::::2;14981:21:54::0;15038:2;15018:18;;;15011:30;15077:34;15057:18;;;15050:62;15148:34;15128:18;;;15121:62;15220:4;15199:19;;;15192:33;15242:19;;8754:104:29::2;14797:470:54::0;8754:104:29::2;8868:12;8883:27:::0;;;:21:::2;:27;::::0;;;;;;8920:73:::2;;;::::0;-1:-1:-1;;;8920:73:29;;12615:2:54;8920:73:29::2;::::0;::::2;12597:21:54::0;12654:2;12634:18;;;12627:30;12693:34;12673:18;;;12666:62;12764:12;12744:18;;;12737:40;12794:19;;8920:73:29::2;12413:406:54::0;8920:73:29::2;9030:1;9011:20:::0;;;9003:71:::2;;;::::0;-1:-1:-1;;;9003:71:29;;12208:2:54;9003:71:29::2;::::0;::::2;12190:21:54::0;12247:2;12227:18;;;12220:30;12286:34;12266:18;;;12259:62;12357:8;12337:18;;;12330:36;12383:19;;9003:71:29::2;12006:402:54::0;9003:71:29::2;9085:20;9111:38;::::0;;::::2;9122:8:::0;9111:38:::2;:::i;:::-;9084:65;;;9159:42;9177:14;9193:7;9159:17;:42::i;:::-;9316:4;9254:14;9270:8;;9280:14;;9296;9243:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9233:79;;;;;;:87;9212:183;;;::::0;-1:-1:-1;;;9212:183:29;;13617:2:54;9212:183:29::2;::::0;::::2;13599:21:54::0;13656:2;13636:18;;;13629:30;13695:34;13675:18;;;13668:62;13766:19;13746:18;;;13739:47;13803:19;;9212:183:29::2;13415:413:54::0;9212:183:29::2;9413:27;::::0;;;:21:::2;:27;::::0;;;;;9406:34;;;;9456:24;9435:4;;9456:24:::2;::::0;::::2;::::0;9475:4;924:25:54;;912:2;897:18;;778:177;9456:24:29::2;;;;;;;;9491:16;:11;:16;;9516:26;9533:9;9516:14:::0;:26:::2;:::i;:::-;9558:14;9586:13;9613:8;;9643:10;9668:18;9700:14;;9491:233;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;8586:1145;;;2303:20:18::1;1716:1:::0;2809:7;:22;2629:209;2081:198:16;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:16;;28190:2:54;2161:73:16::1;::::0;::::1;28172:21:54::0;28229:2;28209:18;;;28202:30;28268:34;28248:18;;;28241:62;28339:8;28319:18;;;28312:36;28365:19;;2161:73:16::1;27988:402:54::0;2161:73:16::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;5783:230:26:-;5904:20;;5880:87;;;;;5904:20;;;;;5880:61;;:87;;5942:10;;5954:12;;5880:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5859:147;;;;-1:-1:-1;;;5859:147:26;;29191:2:54;5859:147:26;;;29173:21:54;29230:2;29210:18;;;29203:30;29269:15;29249:18;;;29242:43;29302:18;;5859:147:26;28989:337:54;1359:130:16;1273:6;;1422:23;1273:6;719:10:19;1422:23:16;1414:68;;;;-1:-1:-1;;;1414:68:16;;29533:2:54;1414:68:16;;;29515:21:54;;;29552:18;;;29545:30;29611:34;29591:18;;;29584:62;29663:18;;1414:68:16;29331:356:54;485:136:24;548:22;;;544:75;;589:23;;;;;;;;;;;;;;2336:287:18;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:18;;29894:2:54;2460:63:18;;;29876:21:54;29933:2;29913:18;;;29906:30;29972:33;29952:18;;;29945:61;30023:18;;2460:63:18;29692:355:54;2460:63:18;1759:1;2598:7;:18;2336:287::o;2433:117:17:-;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;;::::1;::::0;;2521:22:::1;719:10:19::0;2530:12:17::1;2521:22;::::0;6742:42:54;6730:55;;;6712:74;;6700:2;6685:18;2521:22:17::1;;;;;;;2433:117::o:0;1767:106::-;1685:7;;;;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:17;;30254:2:54;1828:38:17;;;30236:21:54;30293:2;30273:18;;;30266:30;30332:18;30312;;;30305:46;30368:18;;1828:38:17;30052:340:54;14413:659:29;14519:24;14557:23;14594:26;14634:24;14684:8;14673:67;;;;;;;;;;;;:::i;:::-;14505:235;;;;;;;;;14789:6;:13;14771:7;:14;:31;:86;;;;;14840:10;:17;14822:7;:14;:35;14771:86;:140;;;;;14895:9;:16;14877:7;:14;:34;14771:140;14750:256;;;;-1:-1:-1;;;14750:256:29;;35388:2:54;14750:256:29;;;35370:21:54;35427:2;35407:18;;;35400:30;35466:34;35446:18;;;35439:62;35537:34;35517:18;;;35510:62;35609:7;35588:19;;;35581:36;35634:19;;14750:256:29;35186:473:54;14750:256:29;15016:49;15034:14;15050:7;:14;15016:17;:49::i;:::-;14495:577;;;;14413:659;;:::o;2186:115:17:-;1239:19;:17;:19::i;:::-;2255:4:::1;2245:14:::0;;;::::1;::::0;::::1;::::0;;2274:20:::1;2281:12;719:10:19::0;;640:96;2433:187:16;2525:6;;;;2541:17;;;;;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;1945:106:17:-;1685:7;;;;;;;2003:41;;;;-1:-1:-1;;;2003:41:17;;35866:2:54;2003:41:17;;;35848:21:54;35905:2;35885:18;;;35878:30;35944:22;35924:18;;;35917:50;35984:18;;2003:41:17;35664:344:54;4062:1540:26;4290:43;;;4204:29;4290:43;;;:30;:43;;;;;;;;;4374:31;:44;;;;;;4452:22;:35;;;;;;4533:34;:47;;;;;;;;4236:15;;4290:43;4452:35;4721:6;4676:42;4290:43;4236:15;4676:42;:::i;:::-;:51;4672:267;;;4793:43;;;;;;;:30;:43;;;;;:67;;;4766:13;;-1:-1:-1;4672:267:26;;;4891:37;4915:13;4891:37;;:::i;:::-;;;4672:267;5037:13;5013:20;:37;;5005:82;;;;-1:-1:-1;;;5005:82:26;;36348:2:54;5005:82:26;;;36330:21:54;;;36367:18;;;36360:30;36426:34;36406:18;;;36399:62;36478:18;;5005:82:26;36146:356:54;5005:82:26;5276:21;5247:25;:50;5239:94;;;;-1:-1:-1;;;5239:94:26;;36709:2:54;5239:94:26;;;36691:21:54;36748:2;36728:18;;;36721:30;36787:33;36767:18;;;36760:61;36838:18;;5239:94:26;36507:355:54;5239:94:26;-1:-1:-1;;5396:44:26;;;;;;;;:31;:44;;;;;;;;:67;;;;5524:34;:47;;;;;;:71;-1:-1:-1;;4062:1540:26:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:159:54:-;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:184::-;236:6;289:2;277:9;268:7;264:23;260:32;257:52;;;305:1;302;295:12;257:52;328:28;346:9;328:28;:::i;367:154::-;453:42;446:5;442:54;435:5;432:65;422:93;;511:1;508;501:12;526:247;585:6;638:2;626:9;617:7;613:23;609:32;606:52;;;654:1;651;644:12;606:52;693:9;680:23;712:31;737:5;712:31;:::i;960:347::-;1011:8;1021:6;1075:3;1068:4;1060:6;1056:17;1052:27;1042:55;;1093:1;1090;1083:12;1042:55;-1:-1:-1;1116:20:54;;1159:18;1148:30;;1145:50;;;1191:1;1188;1181:12;1145:50;1228:4;1220:6;1216:17;1204:29;;1280:3;1273:4;1264:6;1256;1252:19;1248:30;1245:39;1242:59;;;1297:1;1294;1287:12;1242:59;960:347;;;;;:::o;1312:118::-;1398:5;1391:13;1384:21;1377:5;1374:32;1364:60;;1420:1;1417;1410:12;1435:919;1539:6;1547;1555;1563;1571;1579;1632:3;1620:9;1611:7;1607:23;1603:33;1600:53;;;1649:1;1646;1639:12;1600:53;1672:28;1690:9;1672:28;:::i;:::-;1662:38;;1751:2;1740:9;1736:18;1723:32;1774:18;1815:2;1807:6;1804:14;1801:34;;;1831:1;1828;1821:12;1801:34;1870:58;1920:7;1911:6;1900:9;1896:22;1870:58;:::i;:::-;1947:8;;-1:-1:-1;1844:84:54;-1:-1:-1;2032:2:54;2017:18;;2004:32;;-1:-1:-1;2045:28:54;2004:32;2045:28;:::i;:::-;2092:5;;-1:-1:-1;2150:2:54;2135:18;;2122:32;;2166:16;;;2163:36;;;2195:1;2192;2185:12;2163:36;;2234:60;2286:7;2275:8;2264:9;2260:24;2234:60;:::i;:::-;1435:919;;;;-1:-1:-1;1435:919:54;;-1:-1:-1;1435:919:54;;2313:8;;1435:919;-1:-1:-1;;;1435:919:54:o;2612:252::-;2679:6;2687;2740:2;2728:9;2719:7;2715:23;2711:32;2708:52;;;2756:1;2753;2746:12;2708:52;2779:28;2797:9;2779:28;:::i;:::-;2769:38;2854:2;2839:18;;;;2826:32;;-1:-1:-1;;;2612:252:54:o;2869:1063::-;2994:6;3002;3010;3018;3026;3034;3042;3050;3103:3;3091:9;3082:7;3078:23;3074:33;3071:53;;;3120:1;3117;3110:12;3071:53;3159:9;3146:23;3178:31;3203:5;3178:31;:::i;:::-;3228:5;-1:-1:-1;3280:2:54;3265:18;;3252:32;;-1:-1:-1;3303:37:54;3336:2;3321:18;;3303:37;:::i;:::-;3293:47;;3391:2;3380:9;3376:18;3363:32;3414:18;3455:2;3447:6;3444:14;3441:34;;;3471:1;3468;3461:12;3441:34;3510:58;3560:7;3551:6;3540:9;3536:22;3510:58;:::i;:::-;3587:8;;-1:-1:-1;3484:84:54;-1:-1:-1;3675:3:54;3660:19;;3647:33;;-1:-1:-1;3692:16:54;;;3689:36;;;3721:1;3718;3711:12;3689:36;;3760:60;3812:7;3801:8;3790:9;3786:24;3760:60;:::i;:::-;2869:1063;;;;-1:-1:-1;2869:1063:54;;;;;;3734:86;;3921:3;3906:19;3893:33;;2869:1063;-1:-1:-1;;;;2869:1063:54:o;3937:925::-;4044:6;4052;4060;4068;4076;4084;4137:3;4125:9;4116:7;4112:23;4108:33;4105:53;;;4154:1;4151;4144:12;4105:53;4177:28;4195:9;4177:28;:::i;:::-;4167:38;;4256:2;4245:9;4241:18;4228:32;4279:18;4320:2;4312:6;4309:14;4306:34;;;4336:1;4333;4326:12;4306:34;4375:58;4425:7;4416:6;4405:9;4401:22;4375:58;:::i;:::-;4452:8;;-1:-1:-1;4349:84:54;-1:-1:-1;4540:2:54;4525:18;;4512:32;;-1:-1:-1;4556:16:54;;;4553:36;;;4585:1;4582;4575:12;4553:36;;4624:60;4676:7;4665:8;4654:9;4650:24;4624:60;:::i;:::-;4703:8;;-1:-1:-1;4598:86:54;-1:-1:-1;;4788:2:54;4773:18;;4760:32;4801:31;4760:32;4801:31;:::i;:::-;4851:5;4841:15;;;3937:925;;;;;;;;:::o;5059:324::-;5134:6;5142;5150;5203:2;5191:9;5182:7;5178:23;5174:32;5171:52;;;5219:1;5216;5209:12;5171:52;5242:28;5260:9;5242:28;:::i;:::-;5232:38;;5289:37;5322:2;5311:9;5307:18;5289:37;:::i;:::-;5279:47;;5373:2;5362:9;5358:18;5345:32;5335:42;;5059:324;;;;;:::o;5388:250::-;5473:1;5483:113;5497:6;5494:1;5491:13;5483:113;;;5573:11;;;5567:18;5554:11;;;5547:39;5519:2;5512:10;5483:113;;;-1:-1:-1;;5630:1:54;5612:16;;5605:27;5388:250::o;5643:329::-;5684:3;5722:5;5716:12;5749:6;5744:3;5737:19;5765:76;5834:6;5827:4;5822:3;5818:14;5811:4;5804:5;5800:16;5765:76;:::i;:::-;5886:2;5874:15;-1:-1:-1;;5870:88:54;5861:98;;;;5961:4;5857:109;;5643:329;-1:-1:-1;;5643:329:54:o;5977:217::-;6124:2;6113:9;6106:21;6087:4;6144:44;6184:2;6173:9;6169:18;6161:6;6144:44;:::i;6199:180::-;6258:6;6311:2;6299:9;6290:7;6286:23;6282:32;6279:52;;;6327:1;6324;6317:12;6279:52;-1:-1:-1;6350:23:54;;6199:180;-1:-1:-1;6199:180:54:o;6797:481::-;6875:6;6883;6891;6944:2;6932:9;6923:7;6919:23;6915:32;6912:52;;;6960:1;6957;6950:12;6912:52;6983:28;7001:9;6983:28;:::i;:::-;6973:38;;7062:2;7051:9;7047:18;7034:32;7089:18;7081:6;7078:30;7075:50;;;7121:1;7118;7111:12;7075:50;7160:58;7210:7;7201:6;7190:9;7186:22;7160:58;:::i;:::-;6797:481;;7237:8;;-1:-1:-1;7134:84:54;;-1:-1:-1;;;;6797:481:54:o;7283:622::-;7378:6;7386;7394;7402;7410;7463:3;7451:9;7442:7;7438:23;7434:33;7431:53;;;7480:1;7477;7470:12;7431:53;7503:28;7521:9;7503:28;:::i;:::-;7493:38;;7550:37;7583:2;7572:9;7568:18;7550:37;:::i;:::-;7540:47;;7634:2;7623:9;7619:18;7606:32;7596:42;;7689:2;7678:9;7674:18;7661:32;7716:18;7708:6;7705:30;7702:50;;;7748:1;7745;7738:12;7702:50;7787:58;7837:7;7828:6;7817:9;7813:22;7787:58;:::i;:::-;7283:622;;;;-1:-1:-1;7283:622:54;;-1:-1:-1;7864:8:54;;7761:84;7283:622;-1:-1:-1;;;7283:622:54:o;8168:1063::-;8293:6;8301;8309;8317;8325;8333;8341;8349;8402:3;8390:9;8381:7;8377:23;8373:33;8370:53;;;8419:1;8416;8409:12;8370:53;8455:9;8442:23;8432:33;;8484:37;8517:2;8506:9;8502:18;8484:37;:::i;:::-;8474:47;;8572:2;8561:9;8557:18;8544:32;8595:18;8636:2;8628:6;8625:14;8622:34;;;8652:1;8649;8642:12;8622:34;8691:58;8741:7;8732:6;8721:9;8717:22;8691:58;:::i;:::-;8768:8;;-1:-1:-1;8665:84:54;-1:-1:-1;8856:2:54;8841:18;;8828:32;;-1:-1:-1;8872:16:54;;;8869:36;;;8901:1;8898;8891:12;8869:36;;8940:60;8992:7;8981:8;8970:9;8966:24;8940:60;:::i;:::-;9019:8;;-1:-1:-1;8914:86:54;-1:-1:-1;;9104:3:54;9089:19;;9076:33;9118:31;9076:33;9118:31;:::i;:::-;9168:5;9158:15;;;9220:3;9209:9;9205:19;9192:33;9182:43;;8168:1063;;;;;;;;;;;:::o;9429:325::-;9517:6;9512:3;9505:19;9569:6;9562:5;9555:4;9550:3;9546:14;9533:43;;9621:1;9614:4;9605:6;9600:3;9596:16;9592:27;9585:38;9487:3;9743:4;-1:-1:-1;;9668:2:54;9660:6;9656:15;9652:88;9647:3;9643:98;9639:109;9632:116;;9429:325;;;;:::o;9759:717::-;10060:6;10052;10048:19;10037:9;10030:38;10116:42;10108:6;10104:55;10099:2;10088:9;10084:18;10077:83;10196:3;10191:2;10180:9;10176:18;10169:31;10011:4;10223:62;10280:3;10269:9;10265:19;10257:6;10249;10223:62;:::i;:::-;10335:6;10328:14;10321:22;10316:2;10305:9;10301:18;10294:50;10393:9;10385:6;10381:22;10375:3;10364:9;10360:19;10353:51;10421:49;10463:6;10455;10447;10421:49;:::i;:::-;10413:57;9759:717;-1:-1:-1;;;;;;;;;;9759:717:54:o;10481:245::-;10560:6;10568;10621:2;10609:9;10600:7;10596:23;10592:32;10589:52;;;10637:1;10634;10627:12;10589:52;-1:-1:-1;;10660:16:54;;10716:2;10701:18;;;10695:25;10660:16;;10695:25;;-1:-1:-1;10481:245:54:o;10731:437::-;10810:1;10806:12;;;;10853;;;10874:61;;10928:4;10920:6;10916:17;10906:27;;10874:61;10981:2;10973:6;10970:14;10950:18;10947:38;10944:218;;11018:77;11015:1;11008:88;11119:4;11116:1;11109:15;11147:4;11144:1;11137:15;10944:218;;10731:437;;;:::o;12824:586::-;13103:6;13095;13091:19;13080:9;13073:38;13147:3;13142:2;13131:9;13127:18;13120:31;13054:4;13174:62;13231:3;13220:9;13216:19;13208:6;13200;13174:62;:::i;:::-;13284:9;13276:6;13272:22;13267:2;13256:9;13252:18;13245:50;13312:49;13354:6;13346;13338;13312:49;:::i;:::-;13304:57;;;13397:6;13392:2;13381:9;13377:18;13370:34;12824:586;;;;;;;;;:::o;15272:184::-;15324:77;15321:1;15314:88;15421:4;15418:1;15411:15;15445:4;15442:1;15435:15;15461:195;15500:3;15531:66;15524:5;15521:77;15518:103;;15601:18;;:::i;:::-;-1:-1:-1;15648:1:54;15637:13;;15461:195::o;15661:315::-;15846:2;15835:9;15828:21;15809:4;15866:61;15923:2;15912:9;15908:18;15900:6;15892;15866:61;:::i;:::-;15858:69;;15963:6;15958:2;15947:9;15943:18;15936:34;15661:315;;;;;;:::o;15981:887::-;16340:6;16332;16328:19;16317:9;16310:38;16384:3;16379:2;16368:9;16364:18;16357:31;16291:4;16411:45;16451:3;16440:9;16436:19;16428:6;16411:45;:::i;:::-;16504:9;16496:6;16492:22;16487:2;16476:9;16472:18;16465:50;16538:32;16563:6;16555;16538:32;:::i;:::-;16589:42;16667:15;;;16662:2;16647:18;;16640:43;16720:15;;16714:3;16699:19;;16692:44;16773:22;;;16767:3;16752:19;;16745:51;16524:46;-1:-1:-1;16813:49:54;16524:46;16847:6;16839;16813:49;:::i;16873:559::-;17142:6;17134;17130:19;17119:9;17112:38;17186:3;17181:2;17170:9;17166:18;17159:31;17093:4;17213:45;17253:3;17242:9;17238:19;17230:6;17213:45;:::i;:::-;17306:9;17298:6;17294:22;17289:2;17278:9;17274:18;17267:50;17334:49;17376:6;17368;17360;17334:49;:::i;:::-;17326:57;;;17419:6;17414:2;17403:9;17399:18;17392:34;16873:559;;;;;;;;:::o;17437:637::-;17714:3;17703:9;17696:22;17677:4;17741:45;17781:3;17770:9;17766:19;17758:6;17741:45;:::i;:::-;17834:9;17826:6;17822:22;17817:2;17806:9;17802:18;17795:50;17868:49;17910:6;17902;17894;17868:49;:::i;:::-;17854:63;;17953:6;17948:2;17937:9;17933:18;17926:34;18008:9;18000:6;17996:22;17991:2;17980:9;17976:18;17969:50;18036:32;18061:6;18053;18036:32;:::i;:::-;18028:40;17437:637;-1:-1:-1;;;;;;;;17437:637:54:o;18079:288::-;18254:6;18243:9;18236:25;18297:2;18292;18281:9;18277:18;18270:30;18217:4;18317:44;18357:2;18346:9;18342:18;18334:6;18317:44;:::i;18856:184::-;18908:77;18905:1;18898:88;19005:4;19002:1;18995:15;19029:4;19026:1;19019:15;19045:334;19116:2;19110:9;19172:2;19162:13;;-1:-1:-1;;19158:86:54;19146:99;;19275:18;19260:34;;19296:22;;;19257:62;19254:88;;;19322:18;;:::i;:::-;19358:2;19351:22;19045:334;;-1:-1:-1;19045:334:54:o;19384:245::-;19432:4;19465:18;19457:6;19454:30;19451:56;;;19487:18;;:::i;:::-;-1:-1:-1;19544:2:54;19532:15;-1:-1:-1;;19528:88:54;19618:4;19524:99;;19384:245::o;19634:320::-;19709:5;19738:52;19754:35;19782:6;19754:35;:::i;:::-;19738:52;:::i;:::-;19729:61;;19813:6;19806:5;19799:21;19853:3;19844:6;19839:3;19835:16;19832:25;19829:45;;;19870:1;19867;19860:12;19829:45;19883:65;19941:6;19934:4;19927:5;19923:16;19918:3;19883:65;:::i;19959:235::-;20012:5;20065:3;20058:4;20050:6;20046:17;20042:27;20032:55;;20083:1;20080;20073:12;20032:55;20105:83;20184:3;20175:6;20169:13;20162:4;20154:6;20150:17;20105:83;:::i;20199:335::-;20278:6;20331:2;20319:9;20310:7;20306:23;20302:32;20299:52;;;20347:1;20344;20337:12;20299:52;20380:9;20374:16;20413:18;20405:6;20402:30;20399:50;;;20445:1;20442;20435:12;20399:50;20468:60;20520:7;20511:6;20500:9;20496:22;20468:60;:::i;:::-;20458:70;20199:335;-1:-1:-1;;;;20199:335:54:o;20957:372::-;21116:66;21078:19;;21200:11;;;;21231:2;21223:11;;21220:103;;;21310:2;21304;21297:3;21293:2;21289:12;21286:1;21282:20;21278:29;21274:2;21270:38;21266:47;21257:56;;21220:103;;;20957:372;;;;:::o;21764:395::-;21975:6;21967;21962:3;21949:33;22045:2;22041:15;;;;22058:66;22037:88;22001:16;;22026:100;;;22150:2;22142:11;;21764:395;-1:-1:-1;21764:395:54:o;22289:542::-;22390:2;22385:3;22382:11;22379:446;;;22426:1;22450:5;22447:1;22440:16;22494:4;22491:1;22481:18;22564:2;22552:10;22548:19;22545:1;22541:27;22535:4;22531:38;22600:4;22588:10;22585:20;22582:47;;;-1:-1:-1;22623:4:54;22582:47;22678:2;22673:3;22669:12;22666:1;22662:20;22656:4;22652:31;22642:41;;22733:82;22751:2;22744:5;22741:13;22733:82;;;22796:17;;;22777:1;22766:13;22733:82;;22379:446;22289:542;;;:::o;23067:1460::-;23191:3;23185:10;23218:18;23210:6;23207:30;23204:56;;;23240:18;;:::i;:::-;23269:96;23358:6;23318:38;23350:4;23344:11;23318:38;:::i;:::-;23312:4;23269:96;:::i;:::-;23420:4;;23477:2;23466:14;;23494:1;23489:781;;;;24314:1;24331:6;24328:89;;;-1:-1:-1;24383:19:54;;;24377:26;24328:89;22973:66;22964:1;22960:11;;;22956:84;22952:89;22942:100;23048:1;23044:11;;;22939:117;24430:81;;23459:1062;;23489:781;22236:1;22229:14;;;22273:4;22260:18;;-1:-1:-1;;23525:79:54;;;23701:236;23715:7;23712:1;23709:14;23701:236;;;23804:19;;;23798:26;23783:42;;23896:27;;;;23864:1;23852:14;;;;23731:19;;23701:236;;;23705:3;23965:6;23956:7;23953:19;23950:261;;;24026:19;;;24020:26;24127:66;24109:1;24105:14;;;24121:3;24101:24;24097:97;24093:102;24078:118;24063:134;;23950:261;-1:-1:-1;;;;;24257:1:54;24241:14;;;24237:22;24224:36;;-1:-1:-1;23067:1460:54:o;24532:1145::-;24722:2;24711:9;24704:21;24685:4;24748:44;24788:2;24777:9;24773:18;24765:6;24748:44;:::i;:::-;24811:2;24861:9;24853:6;24849:22;24844:2;24833:9;24829:18;24822:50;24892:1;24925:6;24919:13;24955:36;24981:9;24955:36;:::i;:::-;25000:22;;;25041:1;25058:17;;;25084:210;;;;25308:1;25303:348;;;;25051:600;;25084:210;25144:66;25133:9;25129:82;25124:2;25116:6;25112:15;25105:107;25281:2;25269:6;25262:14;25255:22;25252:1;25248:30;25240:6;25236:43;25232:52;25225:59;;25084:210;;25303:348;25334:6;25331:1;25324:17;25382:2;25379:1;25369:16;25407:1;25421:177;25435:6;25432:1;25429:13;25421:177;;;25525:14;;25504;;;25500:23;;25493:47;25568:16;;;;25450:10;;25421:177;;;25622:14;;25618:23;;;-1:-1:-1;;25051:600:54;-1:-1:-1;25668:3:54;;24532:1145;-1:-1:-1;;;;;;;;;24532:1145:54:o;25682:498::-;25882:4;25911:6;25956:2;25948:6;25944:15;25933:9;25926:34;26008:2;26000:6;25996:15;25991:2;25980:9;25976:18;25969:43;;26048:6;26043:2;26032:9;26028:18;26021:34;26091:3;26086:2;26075:9;26071:18;26064:31;26112:62;26169:3;26158:9;26154:19;26146:6;26138;26112:62;:::i;:::-;26104:70;25682:498;-1:-1:-1;;;;;;;25682:498:54:o;26185:749::-;26262:6;26270;26323:2;26311:9;26302:7;26298:23;26294:32;26291:52;;;26339:1;26336;26329:12;26291:52;26379:9;26366:23;26412:18;26404:6;26401:30;26398:50;;;26444:1;26441;26434:12;26398:50;26467:22;;26520:4;26512:13;;26508:27;-1:-1:-1;26498:55:54;;26549:1;26546;26539:12;26498:55;26585:2;26572:16;26610:48;26626:31;26654:2;26626:31;:::i;26610:48::-;26681:2;26674:5;26667:17;26723:7;26716:4;26711:2;26707;26703:11;26699:22;26696:35;26693:55;;;26744:1;26741;26734:12;26693:55;26803:2;26796:4;26792:2;26788:13;26781:4;26774:5;26770:16;26757:49;26849:1;26842:4;26826:14;;;26822:25;;26815:36;26826:14;26907:20;;26894:34;;-1:-1:-1;;;;26185:749:54:o;26939:125::-;27004:9;;;27025:10;;;27022:36;;;27038:18;;:::i;:::-;26939:125;;;;:::o;27069:914::-;27438:6;27430;27426:19;27415:9;27408:38;27482:3;27477:2;27466:9;27462:18;27455:31;27389:4;27509:45;27549:3;27538:9;27534:19;27526:6;27509:45;:::i;:::-;27602:9;27594:6;27590:22;27585:2;27574:9;27570:18;27563:50;27636:49;27678:6;27670;27662;27636:49;:::i;:::-;27704:42;27782:15;;;27777:2;27762:18;;27755:43;27835:15;;27829:3;27814:19;;27807:44;27888:22;;;27882:3;27867:19;;27860:51;27622:63;-1:-1:-1;27928:49:54;27622:63;27962:6;27954;27928:49;:::i;:::-;27920:57;27069:914;-1:-1:-1;;;;;;;;;;;27069:914:54:o;28395:339::-;28584:42;28576:6;28572:55;28561:9;28554:74;28664:2;28659;28648:9;28644:18;28637:30;28535:4;28684:44;28724:2;28713:9;28709:18;28701:6;28684:44;:::i;28739:245::-;28806:6;28859:2;28847:9;28838:7;28834:23;28830:32;28827:52;;;28875:1;28872;28865:12;28827:52;28907:9;28901:16;28926:28;28948:5;28926:28;:::i;30397:183::-;30457:4;30490:18;30482:6;30479:30;30476:56;;;30512:18;;:::i;:::-;-1:-1:-1;30557:1:54;30553:14;30569:4;30549:25;;30397:183::o;30585:665::-;30650:5;30703:3;30696:4;30688:6;30684:17;30680:27;30670:55;;30721:1;30718;30711:12;30670:55;30750:6;30744:13;30776:4;30800:60;30816:43;30856:2;30816:43;:::i;30800:60::-;30882:3;30906:2;30901:3;30894:15;30934:4;30929:3;30925:14;30918:21;;30991:4;30985:2;30982:1;30978:10;30970:6;30966:23;30962:34;30948:48;;31019:3;31011:6;31008:15;31005:35;;;31036:1;31033;31026:12;31005:35;31072:4;31064:6;31060:17;31086:135;31102:6;31097:3;31094:15;31086:135;;;31168:10;;31156:23;;31199:12;;;;31119;;31086:135;;;-1:-1:-1;31239:5:54;30585:665;-1:-1:-1;;;;;;30585:665:54:o;31255:1089::-;31319:5;31372:3;31365:4;31357:6;31353:17;31349:27;31339:55;;31390:1;31387;31380:12;31339:55;31419:6;31413:13;31445:4;31469:60;31485:43;31525:2;31485:43;:::i;31469:60::-;31563:15;;;31649:1;31645:10;;;;31633:23;;31629:32;;;31594:12;;;;31673:15;;;31670:35;;;31701:1;31698;31691:12;31670:35;31737:2;31729:6;31725:15;31749:566;31765:6;31760:3;31757:15;31749:566;;;31844:3;31838:10;31880:18;31867:11;31864:35;31861:125;;;31940:1;31969:2;31965;31958:14;31861:125;32009:24;;32068:2;32060:11;;32056:21;-1:-1:-1;32046:119:54;;32119:1;32148:2;32144;32137:14;32046:119;32190:82;32268:3;32262:2;32258;32254:11;32248:18;32243:2;32239;32235:11;32190:82;:::i;:::-;32178:95;;-1:-1:-1;32293:12:54;;;;31782;;31749:566;;32349:894;32412:5;32465:3;32458:4;32450:6;32446:17;32442:27;32432:55;;32483:1;32480;32473:12;32432:55;32512:6;32506:13;32538:4;32562:60;32578:43;32618:2;32578:43;:::i;32562:60::-;32656:15;;;32742:1;32738:10;;;;32726:23;;32722:32;;;32687:12;;;;32766:15;;;32763:35;;;32794:1;32791;32784:12;32763:35;32830:2;32822:6;32818:15;32842:372;32858:6;32853:3;32850:15;32842:372;;;32937:3;32931:10;32973:18;32960:11;32957:35;32954:125;;;33033:1;33062:2;33058;33051:14;32954:125;33104:67;33167:3;33162:2;33148:11;33140:6;33136:24;33132:33;33104:67;:::i;:::-;33092:80;;-1:-1:-1;33192:12:54;;;;32875;;32842:372;;33248:160;33325:13;;33378:4;33367:16;;33357:27;;33347:55;;33398:1;33395;33388:12;33413:1768;33636:6;33644;33652;33660;33668;33721:3;33709:9;33700:7;33696:23;33692:33;33689:53;;;33738:1;33735;33728:12;33689:53;33771:9;33765:16;33800:18;33841:2;33833:6;33830:14;33827:34;;;33857:1;33854;33847:12;33827:34;33895:6;33884:9;33880:22;33870:32;;33940:7;33933:4;33929:2;33925:13;33921:27;33911:55;;33962:1;33959;33952:12;33911:55;33991:2;33985:9;34013:4;34037:60;34053:43;34093:2;34053:43;:::i;34037:60::-;34131:15;;;34213:1;34209:10;;;;34201:19;;34197:28;;;34162:12;;;;34237:19;;;34234:39;;;34269:1;34266;34259:12;34234:39;34293:11;;;;34313:210;34329:6;34324:3;34321:15;34313:210;;;34402:3;34396:10;34419:31;34444:5;34419:31;:::i;:::-;34463:18;;34346:12;;;;34501;;;;34313:210;;;34578:18;;;34572:25;34542:5;;-1:-1:-1;34572:25:54;;-1:-1:-1;;;34609:16:54;;;34606:36;;;34638:1;34635;34628:12;34606:36;34661:74;34727:7;34716:8;34705:9;34701:24;34661:74;:::i;:::-;34651:84;;34781:2;34770:9;34766:18;34760:25;34744:41;;34810:2;34800:8;34797:16;34794:36;;;34826:1;34823;34816:12;34794:36;34849:73;34914:7;34903:8;34892:9;34888:24;34849:73;:::i;:::-;34839:83;;34968:2;34957:9;34953:18;34947:25;34931:41;;34997:2;34987:8;34984:16;34981:36;;;35013:1;35010;35003:12;34981:36;;35036:72;35100:7;35089:8;35078:9;35074:24;35036:72;:::i;:::-;35026:82;;;35127:48;35170:3;35159:9;35155:19;35127:48;:::i;:::-;35117:58;;33413:1768;;;;;;;;:::o;36013:128::-;36080:9;;;36101:11;;;36098:37;;;36115:18;;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2601000","executionCost":"infinite","totalCost":"infinite"},"external":{"LZ_ENDPOINT()":"infinite","accessControlManager()":"2358","chainIdToLast24HourCommandsSent(uint16)":"2587","chainIdToLast24HourWindowStart(uint16)":"2563","chainIdToLastProposalSentTimestamp(uint16)":"2562","chainIdToMaxDailyLimit(uint16)":"2541","estimateFees(uint16,bytes,bool,bytes)":"infinite","execute(uint16,bytes,bytes,address)":"infinite","fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)":"infinite","getConfig(uint16,uint16,uint256)":"infinite","owner()":"2341","pause()":"infinite","paused()":"2370","proposalCount()":"2328","removeTrustedRemote(uint16)":"infinite","renounceOwnership()":"234","retryExecute(uint256,uint16,bytes,bytes,address,uint256)":"infinite","setAccessControlManager(address)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMaxDailyLimit(uint16,uint256)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","storedExecutionHashes(uint256)":"2495","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","unpause()":"infinite"},"internal":{"_validateProposal(uint16,bytes memory)":"infinite"}},"methodIdentifiers":{"LZ_ENDPOINT()":"cd4d1c64","accessControlManager()":"b4a0bdf3","chainIdToLast24HourCommandsSent(uint16)":"1183a3b2","chainIdToLast24HourWindowStart(uint16)":"93a61d6c","chainIdToLastProposalSentTimestamp(uint16)":"e0354d7f","chainIdToMaxDailyLimit(uint16)":"4f4ba0f4","estimateFees(uint16,bytes,bool,bytes)":"21b4eaa1","execute(uint16,bytes,bytes,address)":"3fd9d7ef","fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)":"30fd54a0","getConfig(uint16,uint16,uint256)":"5f6716f7","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","proposalCount()":"da35c664","removeTrustedRemote(uint16)":"2dbbec08","renounceOwnership()":"715018a6","retryExecute(uint256,uint16,bytes,bytes,address,uint256)":"e2222b0e","setAccessControlManager(address)":"0e32cb86","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMaxDailyLimit(uint16,uint256)":"2488eec8","setSendVersion(uint16)":"07e0db17","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","storedExecutionHashes(uint256)":"7dbb533c","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"lzEndpoint_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"executionHash\",\"type\":\"bytes32\"}],\"name\":\"ClearPayload\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"ExecuteRemoteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"FallbackWithdraw\",\"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\":\"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\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"oldRemoteAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newRemoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"StorePayload\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"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\"},{\"inputs\":[],\"name\":\"LZ_ENDPOINT\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourCommandsSent\",\"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\":\"chainIdToLastProposalSentTimestamp\",\"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\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"useZro_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress_\",\"type\":\"address\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pId_\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"originalValue_\",\"type\":\"uint256\"}],\"name\":\"fallbackWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version_\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"configType_\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"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\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"pId_\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"originalValue_\",\"type\":\"uint256\"}],\"name\":\"retryExecute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"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\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyLimit\",\"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\":\"newRemoteAddress_\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"storedExecutionHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"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\":{\"estimateFees(uint16,bytes,bool,bytes)\":{\"details\":\"The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"payload_\":\"The payload to be sent to the remote chain. It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of a remote chain\",\"useZro_\":\"Bool that indicates whether to pay in ZRO tokens or not\"},\"returns\":{\"_0\":\"nativeFee The amount of fee in the native gas token (e.g. ETH)\",\"_1\":\"zroFee The amount of fee in ZRO token\"}},\"execute(uint16,bytes,bytes,address)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on successEmits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\",\"details\":\"Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"zroPaymentAddress_\":\"The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\"}},\"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits ClearPayload with proposal ID and hashEmits FallbackWithdraw with receiver and amount\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"originalValue_\":\"The msg.value passed when execute() function was called\",\"pId_\":\"The proposal ID to identify a failed message\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"to_\":\"Address of the receiver\"}},\"getConfig(uint16,uint16,uint256)\":{\"params\":{\"chainId_\":\"The LayerZero chainId\",\"configType_\":\"Type of configuration. Every messaging library has its own convention\",\"version_\":\"Messaging library version\"}},\"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.\"},\"removeTrustedRemote(uint16)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emit TrustedRemoteRemoved with remote chain id\",\"params\":{\"remoteChainId_\":\"The chain's id corresponds to setting the trusted remote to empty\"}},\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\":{\"custom:access\":\"Controlled by Access Control Manager\",\"custom:event\":\"Emits ClearPayload with proposal ID and hash\",\"details\":\"Allows providing more fees if needed. The extra fees will be refunded to the caller\",\"params\":{\"adapterParams_\":\"The params used to specify the custom amount of gas required for the execution on the destination\",\"originalValue_\":\"The msg.value passed when execute() function was called\",\"pId_\":\"The proposal ID to identify a failed message\",\"payload_\":\"The payload to be sent to the remote chain It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\",\"remoteChainId_\":\"The LayerZero id of the remote chain\",\"zroPaymentAddress_\":\"The address of the ZRO token holder who would pay for the transaction.\"}},\"setAccessControlManager(address)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits NewAccessControlManager with old and new access control manager addresses\",\"params\":{\"accessControlManager_\":\"The new address of the Access Control Manager\"}},\"setConfig(uint16,uint16,uint256,bytes)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"params\":{\"chainId_\":\"The LayerZero chainId for the pending config change\",\"configType_\":\"The type of configuration. Every messaging library has its own convention\",\"config_\":\"The configuration in bytes. It can encode arbitrary content\",\"version_\":\"Messaging library version\"}},\"setMaxDailyLimit(uint16,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\",\"params\":{\"chainId_\":\"Destination chain id\",\"limit_\":\"Number of commands\"}},\"setSendVersion(uint16)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"params\":{\"version_\":\"New messaging library version\"}},\"setTrustedRemoteAddress(uint16,bytes)\":{\"custom:access\":\"Controlled by AccessControlManager\",\"custom:event\":\"Emits SetTrustedRemoteAddress with remote chain Id and remote address\",\"params\":{\"newRemoteAddress_\":\"The address of the contract on the remote chain to receive messages sent by this contract\",\"remoteChainId_\":\"The LayerZero id of a remote chain\"}},\"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\"}},\"stateVariables\":{\"storedExecutionHashes\":{\"details\":\"[proposalId] -> [executionHash]\"}},\"title\":\"OmnichainProposalSender\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"ClearPayload(uint256,bytes32)\":{\"notice\":\"Emitted when a previously failed message is successfully sent to the remote chain\"},\"ExecuteRemoteProposal(uint16,uint256,bytes)\":{\"notice\":\"Emitted when a proposal execution request is sent to the remote chain\"},\"FallbackWithdraw(address,uint256)\":{\"notice\":\"Emitted while fallback withdraw\"},\"SetMaxDailyLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit of commands from the local chain is modified\"},\"SetTrustedRemoteAddress(uint16,bytes,bytes)\":{\"notice\":\"Emitted when a remote message receiver is set for the remote chain\"},\"StorePayload(uint256,uint16,bytes,bytes,uint256,bytes)\":{\"notice\":\"Emitted when an execution hash of a failed message is saved\"},\"TrustedRemoteRemoved(uint16)\":{\"notice\":\"Event emitted when trusted remote sets to empty\"}},\"kind\":\"user\",\"methods\":{\"LZ_ENDPOINT()\":{\"notice\":\"LayerZero endpoint for sending messages to remote chains\"},\"accessControlManager()\":{\"notice\":\"ACM (Access Control Manager) contract address\"},\"chainIdToLast24HourCommandsSent(uint16)\":{\"notice\":\"Total commands transferred within the last 24-hour window from the local chain\"},\"chainIdToLast24HourWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from the local chain\"},\"chainIdToLastProposalSentTimestamp(uint16)\":{\"notice\":\"Timestamp when the last proposal sent from the local chain to dest chain\"},\"chainIdToMaxDailyLimit(uint16)\":{\"notice\":\"Maximum daily limit for commands from the local chain\"},\"estimateFees(uint16,bytes,bool,bytes)\":{\"notice\":\"Estimates LayerZero fees for cross-chain message delivery to the remote chain\"},\"execute(uint16,bytes,bytes,address)\":{\"notice\":\"Sends a message to execute a remote proposal\"},\"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)\":{\"notice\":\"Clear previously failed message\"},\"getConfig(uint16,uint16,uint256)\":{\"notice\":\"Gets the configuration of the LayerZero messaging library of the specified version\"},\"pause()\":{\"notice\":\"Triggers the paused state of the controller\"},\"proposalCount()\":{\"notice\":\"Stores the total number of remote proposals\"},\"removeTrustedRemote(uint16)\":{\"notice\":\"Remove trusted remote from storage\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishap\"},\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\":{\"notice\":\"Resends a previously failed message\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of Access Control Manager (ACM)\"},\"setConfig(uint16,uint16,uint256,bytes)\":{\"notice\":\"Sets the configuration of the LayerZero messaging library of the specified version\"},\"setMaxDailyLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of daily (24 Hour) command amount\"},\"setSendVersion(uint16)\":{\"notice\":\"Sets the configuration of the LayerZero messaging library of the specified version\"},\"setTrustedRemoteAddress(uint16,bytes)\":{\"notice\":\"Sets the remote message receiver address\"},\"storedExecutionHashes(uint256)\":{\"notice\":\"Execution hashes of failed messages\"},\"trustedRemoteLookup(uint16)\":{\"notice\":\"Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)\"},\"unpause()\":{\"notice\":\"Triggers the resume state of the controller\"}},\"notice\":\"OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc It sends a proposal's data to remote chains for execution after the proposal passes on the main chain when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/OmnichainProposalSender.sol\":\"OmnichainProposalSender\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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\"},\"@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.7.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 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\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"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/security/ReentrancyGuard.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Contract module that helps prevent reentrant calls to a function.\\n *\\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\n * available, which can be applied to functions to make sure there are no nested\\n * (reentrant) calls to them.\\n *\\n * Note that because there is a single `nonReentrant` guard, functions marked as\\n * `nonReentrant` may not call one another. This can be worked around by making\\n * those functions `private`, and then adding `external` `nonReentrant` entry\\n * points to them.\\n *\\n * TIP: If you would like to learn more about reentrancy and alternative ways\\n * to protect against it, check out our blog post\\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\\n */\\nabstract contract ReentrancyGuard {\\n    // Booleans are more expensive than uint256 or any type that takes up a full\\n    // word because each write operation emits an extra SLOAD to first read the\\n    // slot's contents, replace the bits taken up by the boolean, and then write\\n    // back. This is the compiler's defense against contract upgrades and\\n    // pointer aliasing, and it cannot be disabled.\\n\\n    // The values being non-zero value makes deployment a bit more expensive,\\n    // but in exchange the refund on every call to nonReentrant will be lower in\\n    // amount. Since refunds are capped to a percentage of the total\\n    // transaction's gas, it is best to keep them low in cases like this one, to\\n    // increase the likelihood of the full refund coming into effect.\\n    uint256 private constant _NOT_ENTERED = 1;\\n    uint256 private constant _ENTERED = 2;\\n\\n    uint256 private _status;\\n\\n    constructor() {\\n        _status = _NOT_ENTERED;\\n    }\\n\\n    /**\\n     * @dev Prevents a contract from calling itself, directly or indirectly.\\n     * Calling a `nonReentrant` function from another `nonReentrant`\\n     * function is not supported. It is possible to prevent this from happening\\n     * by making the `nonReentrant` function external, and making it call a\\n     * `private` function that does the actual work.\\n     */\\n    modifier nonReentrant() {\\n        _nonReentrantBefore();\\n        _;\\n        _nonReentrantAfter();\\n    }\\n\\n    function _nonReentrantBefore() private {\\n        // On the first call to nonReentrant, _status will be _NOT_ENTERED\\n        require(_status != _ENTERED, \\\"ReentrancyGuard: reentrant call\\\");\\n\\n        // Any calls to nonReentrant after this point will fail\\n        _status = _ENTERED;\\n    }\\n\\n    function _nonReentrantAfter() private {\\n        // By storing the original value once again, a refund is triggered (see\\n        // https://eips.ethereum.org/EIPS/eip-2200)\\n        _status = _NOT_ENTERED;\\n    }\\n}\\n\",\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"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/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/Cross-chain/BaseOmnichainControllerSrc.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\n\\npragma solidity 0.8.25;\\n\\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\\\";\\nimport { IAccessControlManagerV8 } from \\\"./../Governance/IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title BaseOmnichainControllerSrc\\n * @dev This contract is the base for the Omnichain controller source contracts.\\n * It provides functionality related to daily command limits and pausability.\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\ncontract BaseOmnichainControllerSrc is Ownable, Pausable {\\n    /**\\n     * @notice ACM (Access Control Manager) contract address\\n     */\\n    address public accessControlManager;\\n\\n    /**\\n     * @notice Maximum daily limit for commands from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\\n\\n    /**\\n     * @notice Total commands transferred within the last 24-hour window from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourCommandsSent;\\n\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from the local chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\\n    /**\\n     * @notice Timestamp when the last proposal sent from the local chain to dest chain\\n     */\\n    mapping(uint16 => uint256) public chainIdToLastProposalSentTimestamp;\\n\\n    /**\\n     * @notice Emitted when the maximum daily limit of commands from the local chain is modified\\n     */\\n    event SetMaxDailyLimit(uint16 indexed chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /*\\n     * @notice Emitted when the address of ACM is updated\\n     */\\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\\n\\n    constructor(address accessControlManager_) {\\n        ensureNonzeroAddress(accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Sets the limit of daily (24 Hour) command amount\\n     * @param chainId_ Destination chain id\\n     * @param limit_ Number of commands\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SetMaxDailyLimit with old and new limit and its corresponding chain id\\n     */\\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external {\\n        _ensureAllowed(\\\"setMaxDailyLimit(uint16,uint256)\\\");\\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\\n        chainIdToMaxDailyLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Triggers the paused state of the controller\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function pause() external {\\n        _ensureAllowed(\\\"pause()\\\");\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers the resume state of the controller\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function unpause() external {\\n        _ensureAllowed(\\\"unpause()\\\");\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Sets the address of Access Control Manager (ACM)\\n     * @param accessControlManager_ The new address of the Access Control Manager\\n     * @custom:access Only owner\\n     * @custom:event Emits NewAccessControlManager with old and new access control manager addresses\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        ensureNonzeroAddress(accessControlManager_);\\n        emit NewAccessControlManager(accessControlManager, accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishap\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Check eligibility to send commands\\n     * @param dstChainId_ Destination chain id\\n     * @param noOfCommands_ Number of commands to send\\n     */\\n    function _isEligibleToSend(uint16 dstChainId_, uint256 noOfCommands_) internal {\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        uint256 commandsSentInWindow = chainIdToLast24HourCommandsSent[dstChainId_];\\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n        uint256 lastProposalSentTimestamp = chainIdToLastProposalSentTimestamp[dstChainId_];\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\\n            commandsSentInWindow = noOfCommands_;\\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\\n        } else {\\n            commandsSentInWindow += noOfCommands_;\\n        }\\n\\n        // Revert if the amount exceeds the daily limit\\n        require(commandsSentInWindow <= maxDailyLimit, \\\"Daily Transaction Limit Exceeded\\\");\\n        // Revert if the last proposal is already sent in current block i.e multiple proposals cannot be sent within the same block.timestamp\\n        require(lastProposalSentTimestamp != currentBlockTimestamp, \\\"Multiple bridging in a proposal\\\");\\n\\n        // Update the amount for the 24-hour window\\n        chainIdToLast24HourCommandsSent[dstChainId_] = commandsSentInWindow;\\n        // Update the last sent proposal timestamp\\n        chainIdToLastProposalSentTimestamp[dstChainId_] = currentBlockTimestamp;\\n    }\\n\\n    /**\\n     * @notice Ensure that the caller has permission to execute a specific function\\n     * @param functionSig_ Function signature to be checked for permission\\n     */\\n    function _ensureAllowed(string memory functionSig_) internal view {\\n        require(\\n            IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_),\\n            \\\"access denied\\\"\\n        );\\n    }\\n}\\n\",\"keccak256\":\"0x6af3fad580da005d3c0f7485eb17c3a0a42ffea7e1c4b9062ae085db7b9bcba5\",\"license\":\"BSD-3-Clause\"},\"contracts/Cross-chain/OmnichainProposalSender.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.25;\\n\\nimport { ReentrancyGuard } from \\\"@openzeppelin/contracts/security/ReentrancyGuard.sol\\\";\\nimport { ILayerZeroEndpoint } from \\\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { BaseOmnichainControllerSrc } from \\\"./BaseOmnichainControllerSrc.sol\\\";\\n\\n/**\\n * @title OmnichainProposalSender\\n * @author Venus\\n * @notice OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc\\n * It sends a proposal's data to remote chains for execution after the proposal passes on the main chain\\n * when used with GovernorBravo, the owner of this contract must be set to the Timelock contract\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\n\\ncontract OmnichainProposalSender is ReentrancyGuard, BaseOmnichainControllerSrc {\\n    /**\\n     * @notice Stores the total number of remote proposals\\n     */\\n    uint256 public proposalCount;\\n\\n    /**\\n     * @notice Execution hashes of failed messages\\n     * @dev [proposalId] -> [executionHash]\\n     */\\n    mapping(uint256 => bytes32) public storedExecutionHashes;\\n\\n    /**\\n     * @notice LayerZero endpoint for sending messages to remote chains\\n     */\\n    ILayerZeroEndpoint public immutable LZ_ENDPOINT;\\n\\n    /**\\n     * @notice Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)\\n     */\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n\\n    /**\\n     * @notice Emitted when a remote message receiver is set for the remote chain\\n     */\\n    event SetTrustedRemoteAddress(uint16 indexed remoteChainId, bytes oldRemoteAddress, bytes newRemoteAddress);\\n\\n    /**\\n     * @notice Event emitted when trusted remote sets to empty\\n     */\\n    event TrustedRemoteRemoved(uint16 indexed chainId);\\n\\n    /**\\n     * @notice Emitted when a proposal execution request is sent to the remote chain\\n     */\\n    event ExecuteRemoteProposal(uint16 indexed remoteChainId, uint256 proposalId, bytes payload);\\n\\n    /**\\n     * @notice Emitted when a previously failed message is successfully sent to the remote chain\\n     */\\n    event ClearPayload(uint256 indexed proposalId, bytes32 executionHash);\\n\\n    /**\\n     * @notice Emitted when an execution hash of a failed message is saved\\n     */\\n    event StorePayload(\\n        uint256 indexed proposalId,\\n        uint16 indexed remoteChainId,\\n        bytes payload,\\n        bytes adapterParams,\\n        uint256 value,\\n        bytes reason\\n    );\\n    /**\\n     * @notice Emitted while fallback withdraw\\n     */\\n    event FallbackWithdraw(address indexed receiver, uint256 value);\\n\\n    constructor(\\n        ILayerZeroEndpoint lzEndpoint_,\\n        address accessControlManager_\\n    ) BaseOmnichainControllerSrc(accessControlManager_) {\\n        ensureNonzeroAddress(address(lzEndpoint_));\\n        LZ_ENDPOINT = lzEndpoint_;\\n    }\\n\\n    /**\\n     * @notice Estimates LayerZero fees for cross-chain message delivery to the remote chain\\n     * @dev The estimated fees are the minimum required; it's recommended to increase the fees amount when sending a message. The unused amount will be refunded\\n     * @param remoteChainId_ The LayerZero id of a remote chain\\n     * @param payload_ The payload to be sent to the remote chain. It's computed as follows:\\n     * payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\\n     * @param useZro_ Bool that indicates whether to pay in ZRO tokens or not\\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\\n     * @return nativeFee The amount of fee in the native gas token (e.g. ETH)\\n     * @return zroFee The amount of fee in ZRO token\\n     */\\n    function estimateFees(\\n        uint16 remoteChainId_,\\n        bytes calldata payload_,\\n        bool useZro_,\\n        bytes calldata adapterParams_\\n    ) external view returns (uint256, uint256) {\\n        return LZ_ENDPOINT.estimateFees(remoteChainId_, address(this), payload_, useZro_, adapterParams_);\\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 Controlled by Access Control Manager\\n     * @custom:event Emit TrustedRemoteRemoved with remote chain id\\n     */\\n    function removeTrustedRemote(uint16 remoteChainId_) external {\\n        _ensureAllowed(\\\"removeTrustedRemote(uint16)\\\");\\n        require(trustedRemoteLookup[remoteChainId_].length != 0, \\\"OmnichainProposalSender: trusted remote not found\\\");\\n        delete trustedRemoteLookup[remoteChainId_];\\n        emit TrustedRemoteRemoved(remoteChainId_);\\n    }\\n\\n    /**\\n     * @notice Sends a message to execute a remote proposal\\n     * @dev Stores the hash of the execution parameters if sending fails (e.g., due to insufficient fees)\\n     * @param remoteChainId_ The LayerZero id of the remote chain\\n     * @param payload_ The payload to be sent to the remote chain\\n     * It's computed as follows: payload = abi.encode(targets, values, signatures, calldatas, proposalType)\\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\\n     * @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction. This must be either address(this) or tx.origin\\n     * @custom:event Emits ExecuteRemoteProposal with remote chain id, proposal ID and payload on success\\n     * @custom:event Emits StorePayload with last stored payload proposal ID ,remote chain id , payload, adapter params , values and reason for failure\\n     * @custom:access Controlled by Access Control Manager\\n     */\\n    function execute(\\n        uint16 remoteChainId_,\\n        bytes calldata payload_,\\n        bytes calldata adapterParams_,\\n        address zroPaymentAddress_\\n    ) external payable whenNotPaused {\\n        _ensureAllowed(\\\"execute(uint16,bytes,bytes,address)\\\");\\n\\n        // A zero value will result in a failed message; therefore, a positive value is required to send a message across the chain.\\n        require(msg.value > 0, \\\"OmnichainProposalSender: value cannot be zero\\\");\\n        require(payload_.length != 0, \\\"OmnichainProposalSender: empty payload\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[remoteChainId_];\\n        require(trustedRemote.length != 0, \\\"OmnichainProposalSender: destination chain is not a trusted source\\\");\\n        _validateProposal(remoteChainId_, payload_);\\n        uint256 _pId = ++proposalCount;\\n        bytes memory payload = abi.encode(payload_, _pId);\\n\\n        try\\n            LZ_ENDPOINT.send{ value: msg.value }(\\n                remoteChainId_,\\n                trustedRemote,\\n                payload,\\n                payable(msg.sender),\\n                zroPaymentAddress_,\\n                adapterParams_\\n            )\\n        {\\n            emit ExecuteRemoteProposal(remoteChainId_, _pId, payload);\\n        } catch (bytes memory reason) {\\n            storedExecutionHashes[_pId] = keccak256(abi.encode(remoteChainId_, payload, adapterParams_, msg.value));\\n            emit StorePayload(_pId, remoteChainId_, payload, adapterParams_, msg.value, reason);\\n        }\\n    }\\n\\n    /**\\n     * @notice Resends a previously failed message\\n     * @dev Allows providing more fees if needed. The extra fees will be refunded to the caller\\n     * @param pId_ The proposal ID to identify a failed message\\n     * @param remoteChainId_ The LayerZero id of the remote chain\\n     * @param payload_ The payload to be sent to the remote chain\\n     * It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\\n     * @param zroPaymentAddress_ The address of the ZRO token holder who would pay for the transaction.\\n     * @param originalValue_ The msg.value passed when execute() function was called\\n     * @custom:event Emits ClearPayload with proposal ID and hash\\n     * @custom:access Controlled by Access Control Manager\\n     */\\n    function retryExecute(\\n        uint256 pId_,\\n        uint16 remoteChainId_,\\n        bytes calldata payload_,\\n        bytes calldata adapterParams_,\\n        address zroPaymentAddress_,\\n        uint256 originalValue_\\n    ) external payable whenNotPaused nonReentrant {\\n        _ensureAllowed(\\\"retryExecute(uint256,uint16,bytes,bytes,address,uint256)\\\");\\n        bytes memory trustedRemote = trustedRemoteLookup[remoteChainId_];\\n        require(trustedRemote.length != 0, \\\"OmnichainProposalSender: destination chain is not a trusted source\\\");\\n        bytes32 hash = storedExecutionHashes[pId_];\\n        require(hash != bytes32(0), \\\"OmnichainProposalSender: no stored payload\\\");\\n        require(payload_.length != 0, \\\"OmnichainProposalSender: empty payload\\\");\\n        (bytes memory payload, ) = abi.decode(payload_, (bytes, uint256));\\n        _validateProposal(remoteChainId_, payload);\\n\\n        require(\\n            keccak256(abi.encode(remoteChainId_, payload_, adapterParams_, originalValue_)) == hash,\\n            \\\"OmnichainProposalSender: invalid execution params\\\"\\n        );\\n\\n        delete storedExecutionHashes[pId_];\\n\\n        emit ClearPayload(pId_, hash);\\n\\n        LZ_ENDPOINT.send{ value: originalValue_ + msg.value }(\\n            remoteChainId_,\\n            trustedRemote,\\n            payload_,\\n            payable(msg.sender),\\n            zroPaymentAddress_,\\n            adapterParams_\\n        );\\n    }\\n\\n    /**\\n     * @notice Clear previously failed message\\n     * @param to_ Address of the receiver\\n     * @param pId_ The proposal ID to identify a failed message\\n     * @param remoteChainId_ The LayerZero id of the remote chain\\n     * @param payload_ The payload to be sent to the remote chain\\n     * It's computed as follows: payload = abi.encode(abi.encode(targets, values, signatures, calldatas, proposalType), pId)\\n     * @param adapterParams_ The params used to specify the custom amount of gas required for the execution on the destination\\n     * @param originalValue_ The msg.value passed when execute() function was called\\n     * @custom:access Only owner\\n     * @custom:event Emits ClearPayload with proposal ID and hash\\n     * @custom:event Emits FallbackWithdraw with receiver and amount\\n     */\\n    function fallbackWithdraw(\\n        address to_,\\n        uint256 pId_,\\n        uint16 remoteChainId_,\\n        bytes calldata payload_,\\n        bytes calldata adapterParams_,\\n        uint256 originalValue_\\n    ) external onlyOwner nonReentrant {\\n        ensureNonzeroAddress(to_);\\n        require(originalValue_ > 0, \\\"OmnichainProposalSender: invalid native amount\\\");\\n        require(payload_.length != 0, \\\"OmnichainProposalSender: empty payload\\\");\\n\\n        bytes32 hash = storedExecutionHashes[pId_];\\n        require(hash != bytes32(0), \\\"OmnichainProposalSender: no stored payload\\\");\\n\\n        bytes memory execution = abi.encode(remoteChainId_, payload_, adapterParams_, originalValue_);\\n        require(keccak256(execution) == hash, \\\"OmnichainProposalSender: invalid execution params\\\");\\n\\n        delete storedExecutionHashes[pId_];\\n\\n        emit FallbackWithdraw(to_, originalValue_);\\n        emit ClearPayload(pId_, hash);\\n\\n        // Transfer the native to the `to_` address\\n        (bool sent, ) = to_.call{ value: originalValue_ }(\\\"\\\");\\n        require(sent, \\\"Call failed\\\");\\n    }\\n\\n    /**\\n     * @notice Sets the remote message receiver address\\n     * @param remoteChainId_ The LayerZero id of a remote chain\\n     * @param newRemoteAddress_ The address of the contract on the remote chain to receive messages sent by this contract\\n     * @custom:access Controlled by AccessControlManager\\n     * @custom:event Emits SetTrustedRemoteAddress with remote chain Id and remote address\\n     */\\n    function setTrustedRemoteAddress(uint16 remoteChainId_, bytes calldata newRemoteAddress_) external {\\n        _ensureAllowed(\\\"setTrustedRemoteAddress(uint16,bytes)\\\");\\n        require(remoteChainId_ != 0, \\\"OmnichainProposalSender: chainId must not be zero\\\");\\n        ensureNonzeroAddress(address(uint160(bytes20(newRemoteAddress_))));\\n        require(newRemoteAddress_.length == 20, \\\"OmnichainProposalSender: remote address must be 20 bytes long\\\");\\n        bytes memory oldRemoteAddress = trustedRemoteLookup[remoteChainId_];\\n        trustedRemoteLookup[remoteChainId_] = abi.encodePacked(newRemoteAddress_, address(this));\\n        emit SetTrustedRemoteAddress(remoteChainId_, oldRemoteAddress, trustedRemoteLookup[remoteChainId_]);\\n    }\\n\\n    /**\\n     * @notice Sets the configuration of the LayerZero messaging library of the specified version\\n     * @param version_ Messaging library version\\n     * @param chainId_ The LayerZero chainId for the pending config change\\n     * @param configType_ The type of configuration. Every messaging library has its own convention\\n     * @param config_ The configuration in bytes. It can encode arbitrary content\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function setConfig(uint16 version_, uint16 chainId_, uint256 configType_, bytes calldata config_) external {\\n        _ensureAllowed(\\\"setConfig(uint16,uint16,uint256,bytes)\\\");\\n        LZ_ENDPOINT.setConfig(version_, chainId_, configType_, config_);\\n    }\\n\\n    /**\\n     * @notice Sets the configuration of the LayerZero messaging library of the specified version\\n     * @param version_ New messaging library version\\n     * @custom:access Controlled by AccessControlManager\\n     */\\n    function setSendVersion(uint16 version_) external {\\n        _ensureAllowed(\\\"setSendVersion(uint16)\\\");\\n        LZ_ENDPOINT.setSendVersion(version_);\\n    }\\n\\n    /**\\n     * @notice Gets the configuration of the LayerZero messaging library of the specified version\\n     * @param version_ Messaging library version\\n     * @param chainId_ The LayerZero chainId\\n     * @param configType_ Type of configuration. Every messaging library has its own convention\\n     */\\n    function getConfig(uint16 version_, uint16 chainId_, uint256 configType_) external view returns (bytes memory) {\\n        return LZ_ENDPOINT.getConfig(version_, chainId_, address(this), configType_);\\n    }\\n\\n    function _validateProposal(uint16 remoteChainId_, bytes memory payload_) internal {\\n        (\\n            address[] memory targets,\\n            uint256[] memory values,\\n            string[] memory signatures,\\n            bytes[] memory calldatas,\\n\\n        ) = abi.decode(payload_, (address[], uint[], string[], bytes[], uint8));\\n        require(\\n            targets.length == values.length &&\\n                targets.length == signatures.length &&\\n                targets.length == calldatas.length,\\n            \\\"OmnichainProposalSender: proposal function information arity mismatch\\\"\\n        );\\n        _isEligibleToSend(remoteChainId_, targets.length);\\n    }\\n}\\n\",\"keccak256\":\"0x23948e6cc55e49f5ebff6f5811c2073274eb34da87a9c62399bb602fcf8792da\",\"license\":\"MIT\"},\"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":4299,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":4075,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"_owner","offset":0,"slot":"1","type":"t_address"},{"astId":4198,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"_paused","offset":20,"slot":"1","type":"t_bool"},{"astId":5633,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"accessControlManager","offset":0,"slot":"2","type":"t_address"},{"astId":5638,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"chainIdToMaxDailyLimit","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":5643,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"chainIdToLast24HourCommandsSent","offset":0,"slot":"4","type":"t_mapping(t_uint16,t_uint256)"},{"astId":5648,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"chainIdToLast24HourWindowStart","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_uint256)"},{"astId":5653,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"chainIdToLastProposalSentTimestamp","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_uint256)"},{"astId":7210,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":7215,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"storedExecutionHashes","offset":0,"slot":"8","type":"t_mapping(t_uint256,t_bytes32)"},{"astId":7224,"contract":"contracts/Cross-chain/OmnichainProposalSender.sol:OmnichainProposalSender","label":"trustedRemoteLookup","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_bytes_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_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_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_bytes32)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"ClearPayload(uint256,bytes32)":{"notice":"Emitted when a previously failed message is successfully sent to the remote chain"},"ExecuteRemoteProposal(uint16,uint256,bytes)":{"notice":"Emitted when a proposal execution request is sent to the remote chain"},"FallbackWithdraw(address,uint256)":{"notice":"Emitted while fallback withdraw"},"SetMaxDailyLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit of commands from the local chain is modified"},"SetTrustedRemoteAddress(uint16,bytes,bytes)":{"notice":"Emitted when a remote message receiver is set for the remote chain"},"StorePayload(uint256,uint16,bytes,bytes,uint256,bytes)":{"notice":"Emitted when an execution hash of a failed message is saved"},"TrustedRemoteRemoved(uint16)":{"notice":"Event emitted when trusted remote sets to empty"}},"kind":"user","methods":{"LZ_ENDPOINT()":{"notice":"LayerZero endpoint for sending messages to remote chains"},"accessControlManager()":{"notice":"ACM (Access Control Manager) contract address"},"chainIdToLast24HourCommandsSent(uint16)":{"notice":"Total commands transferred within the last 24-hour window from the local chain"},"chainIdToLast24HourWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from the local chain"},"chainIdToLastProposalSentTimestamp(uint16)":{"notice":"Timestamp when the last proposal sent from the local chain to dest chain"},"chainIdToMaxDailyLimit(uint16)":{"notice":"Maximum daily limit for commands from the local chain"},"estimateFees(uint16,bytes,bool,bytes)":{"notice":"Estimates LayerZero fees for cross-chain message delivery to the remote chain"},"execute(uint16,bytes,bytes,address)":{"notice":"Sends a message to execute a remote proposal"},"fallbackWithdraw(address,uint256,uint16,bytes,bytes,uint256)":{"notice":"Clear previously failed message"},"getConfig(uint16,uint16,uint256)":{"notice":"Gets the configuration of the LayerZero messaging library of the specified version"},"pause()":{"notice":"Triggers the paused state of the controller"},"proposalCount()":{"notice":"Stores the total number of remote proposals"},"removeTrustedRemote(uint16)":{"notice":"Remove trusted remote from storage"},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishap"},"retryExecute(uint256,uint16,bytes,bytes,address,uint256)":{"notice":"Resends a previously failed message"},"setAccessControlManager(address)":{"notice":"Sets the address of Access Control Manager (ACM)"},"setConfig(uint16,uint16,uint256,bytes)":{"notice":"Sets the configuration of the LayerZero messaging library of the specified version"},"setMaxDailyLimit(uint16,uint256)":{"notice":"Sets the limit of daily (24 Hour) command amount"},"setSendVersion(uint16)":{"notice":"Sets the configuration of the LayerZero messaging library of the specified version"},"setTrustedRemoteAddress(uint16,bytes)":{"notice":"Sets the remote message receiver address"},"storedExecutionHashes(uint256)":{"notice":"Execution hashes of failed messages"},"trustedRemoteLookup(uint16)":{"notice":"Specifies the allowed path for sending messages (remote chainId => remote app address + local app address)"},"unpause()":{"notice":"Triggers the resume state of the controller"}},"notice":"OmnichainProposalSender contract builds upon the functionality of its parent contract , BaseOmnichainControllerSrc It sends a proposal's data to remote chains for execution after the proposal passes on the main chain when used with GovernorBravo, the owner of this contract must be set to the Timelock contract","version":1}}},"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol":{"IOmnichainGovernanceExecutor":{"abi":[{"inputs":[{"internalType":"uint16","name":"srcChainId_","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":{"kind":"dev","methods":{"setTrustedRemoteAddress(uint16,bytes)":{"params":{"srcAddress_":"The address of the contract on the source chain","srcChainId_":"The LayerZero id of a source chain"}},"transferOwnership(address)":{"params":{"addr":"The address to which ownership will be transferred"}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b"}},"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\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"setTrustedRemoteAddress(uint16,bytes)\":{\"params\":{\"srcAddress_\":\"The address of the contract on the source chain\",\"srcChainId_\":\"The LayerZero id of a source chain\"}},\"transferOwnership(address)\":{\"params\":{\"addr\":\"The address to which ownership will be transferred\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setTrustedRemoteAddress(uint16,bytes)\":{\"notice\":\"Sets the source message sender address\"},\"transferOwnership(address)\":{\"notice\":\"Transfers ownership of the contract to the specified address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol\":\"IOmnichainGovernanceExecutor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/Cross-chain/interfaces/IOmnichainGovernanceExecutor.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.25;\\n\\ninterface IOmnichainGovernanceExecutor {\\n    /**\\n     * @notice Transfers ownership of the contract to the specified address\\n     * @param addr The address to which ownership will be transferred\\n     */\\n    function transferOwnership(address addr) external;\\n\\n    /**\\n     * @notice Sets the source message sender address\\n     * @param srcChainId_ The LayerZero id of a source chain\\n     * @param srcAddress_ The address of the contract on the source chain\\n     */\\n    function setTrustedRemoteAddress(uint16 srcChainId_, bytes calldata srcAddress_) external;\\n}\\n\",\"keccak256\":\"0xae3df89cc760968a190e3d723211a643c2aa49c54c0579a1e17db4fc27bf24cb\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"setTrustedRemoteAddress(uint16,bytes)":{"notice":"Sets the source message sender address"},"transferOwnership(address)":{"notice":"Transfers ownership of the contract to the specified address"}},"version":1}}},"contracts/Cross-chain/interfaces/ITimelock.sol":{"ITimelock":{"abi":[{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","custom:security-contact":"https://github.com/VenusProtocol/governance-contracts#discussion","details":"Interface for Timelock contract","kind":"dev","methods":{"cancelTransaction(address,uint256,string,bytes,uint256)":{"params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"}},"executeTransaction(address,uint256,string,bytes,uint256)":{"params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Result of function call"}},"queueTransaction(address,uint256,string,bytes,uint256)":{"params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Hash of the queued transaction"}},"queuedTransactions(bytes32)":{"params":{"hash":"Transaction hash"}}},"title":"ITimelock","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","acceptAdmin()":"0e18b681","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537","setPendingAdmin(address)":"4dd18bf5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"custom:security-contact\":\"https://github.com/VenusProtocol/governance-contracts#discussion\",\"details\":\"Interface for Timelock contract\",\"kind\":\"dev\",\"methods\":{\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"}},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Result of function call\"}},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Hash of the queued transaction\"}},\"queuedTransactions(bytes32)\":{\"params\":{\"hash\":\"Transaction hash\"}}},\"title\":\"ITimelock\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"GRACE_PERIOD()\":{\"notice\":\"Required period to execute a proposal transaction\"},\"acceptAdmin()\":{\"notice\":\"Method for accepting a proposed admin\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to cancel a queued transaction\"},\"delay()\":{\"notice\":\"Delay period for the transaction queue\"},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to execute a queued transaction\"},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called for each action when queuing a proposal\"},\"queuedTransactions(bytes32)\":{\"notice\":\"Show mapping of queued transactions\"},\"setPendingAdmin(address)\":{\"notice\":\"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Cross-chain/interfaces/ITimelock.sol\":\"ITimelock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/Cross-chain/interfaces/ITimelock.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/**\\n * @title ITimelock\\n * @author Venus\\n * @dev Interface for Timelock contract\\n * @custom:security-contact https://github.com/VenusProtocol/governance-contracts#discussion\\n */\\ninterface ITimelock {\\n    /**\\n     * @notice Delay period for the transaction queue\\n     */\\n    function delay() external view returns (uint256);\\n\\n    /**\\n     * @notice Required period to execute a proposal transaction\\n     */\\n    function GRACE_PERIOD() external view returns (uint256);\\n\\n    /**\\n     * @notice Method for accepting a proposed admin\\n     */\\n    function acceptAdmin() external;\\n\\n    /**\\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract.\\n     */\\n    function setPendingAdmin(address pendingAdmin) external;\\n\\n    /**\\n     * @notice Show mapping of queued transactions\\n     * @param hash Transaction hash\\n     */\\n    function queuedTransactions(bytes32 hash) external view returns (bool);\\n\\n    /**\\n     * @notice Called for each action when queuing a proposal\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Hash of the queued transaction\\n     */\\n    function queueTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external returns (bytes32);\\n\\n    /**\\n     * @notice Called to cancel a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     */\\n    function cancelTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external;\\n\\n    /**\\n     * @notice Called to execute a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Result of function call\\n     */\\n    function executeTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) external payable returns (bytes memory);\\n}\\n\",\"keccak256\":\"0x7e05998e5b36a78e6b7933e446c0e0a634ba7fdaae1eb8ba6d4affe12f3a2712\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{"GRACE_PERIOD()":{"notice":"Required period to execute a proposal transaction"},"acceptAdmin()":{"notice":"Method for accepting a proposed admin"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to cancel a queued transaction"},"delay()":{"notice":"Delay period for the transaction queue"},"executeTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to execute a queued transaction"},"queueTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called for each action when queuing a proposal"},"queuedTransactions(bytes32)":{"notice":"Show mapping of queued transactions"},"setPendingAdmin(address)":{"notice":"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract."}},"version":1}}},"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":{"@_8048":{"entryPoint":null,"id":8048,"parameterSlots":0,"returnSlots":0},"@_grantRole_3962":{"entryPoint":41,"id":3962,"parameterSlots":2,"returnSlots":0},"@_msgSender_4354":{"entryPoint":null,"id":4354,"parameterSlots":0,"returnSlots":1},"@_setupRole_3902":{"entryPoint":29,"id":3902,"parameterSlots":2,"returnSlots":0},"@hasRole_3758":{"entryPoint":null,"id":3758,"parameterSlots":2,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506019600033601d565b60c5565b602582826029565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166025576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905560813390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610f19806100d46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063545f7a321161008157806391d148541161005b57806391d148541461019b578063a217fddf146101df578063d547741f146101e757600080fd5b8063545f7a3214610162578063584f6b601461017557806382bfd0f01461018857600080fd5b8063248a9ca3116100b2578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014f57600080fd5b806301ffc9a7146100ce57806318c5e8ab146100f6575b600080fd5b6100e16100dc366004610a74565b6101fa565b60405190151581526020015b60405180910390f35b6100e1610104366004610b28565b610293565b61012c610117366004610b7b565b60009081526020819052604090206001015490565b6040519081526020016100ed565b61014d610148366004610b94565b610368565b005b61014d61015d366004610b94565b610392565b61014d610170366004610bc0565b61044a565b61014d610183366004610bc0565b6104c7565b6100e1610196366004610c25565b610535565b6100e16101a9366004610b94565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61012c600081565b61014d6101f5366004610b94565b61059f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061028d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000803384846040516020016102ab93929190610c86565b60408051601f198184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff8a16825290935291205490915060ff1615610302576001915050610361565b6000848460405160200161031893929190610c86565b60408051808303601f190181529181528151602092830120600090815280835281812073ffffffffffffffffffffffffffffffffffffffff8916825290925290205460ff169150505b9392505050565b600082815260208190526040902060010154610383816105c4565b61038d83836105d1565b505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461043c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61044682826106c1565b5050565b600084848460405160200161046193929190610c86565b604051602081830303815290604052805190602001209050610483818361059f565b7f55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2828686866040516104b89493929190610cc5565b60405180910390a15050505050565b60008484846040516020016104de93929190610c86565b6040516020818303038152906040528051906020012090506105008183610368565b7f69c5ce2d658fea352a2464f87ffbe1f09746c918a91da0994044c3767d641b3f828686866040516104b89493929190610cc5565b60008084848460405160200161054d93929190610c86565b60408051601f198184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff8b16825290935291205490915060ff169695505050505050565b6000828152602081905260409020600101546105ba816105c4565b61038d83836106c1565b6105ce8133610778565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166104465760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556106633390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156104465760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610446576107b681610812565b6107c1836020610831565b6040516020016107d2929190610d43565b60408051601f19818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261043391600401610dc4565b606061028d73ffffffffffffffffffffffffffffffffffffffff831660145b60606000610840836002610e26565b61084b906002610e3d565b67ffffffffffffffff81111561086357610863610e50565b6040519080825280601f01601f19166020018201604052801561088d576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106108c4576108c4610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061092757610927610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610963846002610e26565b61096e906001610e3d565b90505b6001811115610a0b577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106109af576109af610e7f565b1a60f81b8282815181106109c5576109c5610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610a0481610eae565b9050610971565b508315610361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610433565b600060208284031215610a8657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461036157600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610ada57600080fd5b919050565b60008083601f840112610af157600080fd5b50813567ffffffffffffffff811115610b0957600080fd5b602083019150836020828501011115610b2157600080fd5b9250929050565b600080600060408486031215610b3d57600080fd5b610b4684610ab6565b9250602084013567ffffffffffffffff811115610b6257600080fd5b610b6e86828701610adf565b9497909650939450505050565b600060208284031215610b8d57600080fd5b5035919050565b60008060408385031215610ba757600080fd5b82359150610bb760208401610ab6565b90509250929050565b60008060008060608587031215610bd657600080fd5b610bdf85610ab6565b9350602085013567ffffffffffffffff811115610bfb57600080fd5b610c0787828801610adf565b9094509250610c1a905060408601610ab6565b905092959194509250565b60008060008060608587031215610c3b57600080fd5b610c4485610ab6565b9350610c5260208601610ab6565b9250604085013567ffffffffffffffff811115610c6e57600080fd5b610c7a87828801610adf565b95989497509550505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060606040830152826060830152828460808401376000608084840101526080601f19601f850116830101905095945050505050565b60005b83811015610d3a578181015183820152602001610d22565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610d7b816017850160208801610d1f565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351610db8816028840160208801610d1f565b01602801949350505050565b6020815260008251806020840152610de3816040850160208701610d1f565b601f01601f19169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761028d5761028d610df7565b8082018082111561028d5761028d610df7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081610ebd57610ebd610df7565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220a6052000a243f1fa66363f0f0a0d702386084ba1cb5d78f17dbc24f77d046bfb64736f6c63430008190033","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 0xF19 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 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x545F7A32 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0x91D14854 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x545F7A32 EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x584F6B60 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x82BFD0F0 EQ PUSH2 0x188 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x18C5E8AB EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0xA74 JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE1 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0xB28 JUMP JUMPDEST PUSH2 0x293 JUMP JUMPDEST PUSH2 0x12C PUSH2 0x117 CALLDATASIZE PUSH1 0x4 PUSH2 0xB7B 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 SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0x14D PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14D PUSH2 0x15D CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x170 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC0 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH2 0x14D PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC0 JUMP JUMPDEST PUSH2 0x4C7 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0xC25 JUMP JUMPDEST PUSH2 0x535 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x1A9 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x12C PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x59F JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x28D JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE DUP1 DUP5 MSTORE DUP3 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x302 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x318 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE DUP1 DUP4 MSTORE DUP2 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND 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 0x383 DUP2 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x38D DUP4 DUP4 PUSH2 0x5D1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND CALLER EQ PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x446 DUP3 DUP3 PUSH2 0x6C1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x461 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 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 0x483 DUP2 DUP4 PUSH2 0x59F JUMP JUMPDEST PUSH32 0x55426A61E90AC7D7D1FC886B67B420ADE8C8B535E68D655394BC271E3A12B8E2 DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x4B8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC5 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 0x4DE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 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 0x500 DUP2 DUP4 PUSH2 0x368 JUMP JUMPDEST PUSH32 0x69C5CE2D658FEA352A2464F87FFBE1F09746C918A91DA0994044C3767D641B3F DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x4B8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x54D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE DUP1 DUP5 MSTORE DUP3 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x5BA DUP2 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x38D DUP4 DUP4 PUSH2 0x6C1 JUMP JUMPDEST PUSH2 0x5CE DUP2 CALLER PUSH2 0x778 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x446 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x663 CALLER SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x446 JUMPI PUSH2 0x7B6 DUP2 PUSH2 0x812 JUMP JUMPDEST PUSH2 0x7C1 DUP4 PUSH1 0x20 PUSH2 0x831 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7D2 SWAP3 SWAP2 SWAP1 PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP3 MSTORE PUSH2 0x433 SWAP2 PUSH1 0x4 ADD PUSH2 0xDC4 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x28D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x840 DUP4 PUSH1 0x2 PUSH2 0xE26 JUMP JUMPDEST PUSH2 0x84B SWAP1 PUSH1 0x2 PUSH2 0xE3D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0xE50 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 0x88D JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x8C4 JUMPI PUSH2 0x8C4 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x927 JUMPI PUSH2 0x927 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x963 DUP5 PUSH1 0x2 PUSH2 0xE26 JUMP JUMPDEST PUSH2 0x96E SWAP1 PUSH1 0x1 PUSH2 0xE3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xA0B JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x9AF JUMPI PUSH2 0x9AF PUSH2 0xE7F JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x9C5 JUMPI PUSH2 0x9C5 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0xA04 DUP2 PUSH2 0xEAE JUMP JUMPDEST SWAP1 POP PUSH2 0x971 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x361 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x433 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xADA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xAF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xB21 JUMPI 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 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB46 DUP5 PUSH2 0xAB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6E DUP7 DUP3 DUP8 ADD PUSH2 0xADF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xBB7 PUSH1 0x20 DUP5 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xBD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBDF DUP6 PUSH2 0xAB6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC07 DUP8 DUP3 DUP9 ADD PUSH2 0xADF JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0xC1A SWAP1 POP PUSH1 0x40 DUP7 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC44 DUP6 PUSH2 0xAB6 JUMP JUMPDEST SWAP4 POP PUSH2 0xC52 PUSH1 0x20 DUP7 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC7A DUP8 DUP3 DUP9 ADD PUSH2 0xADF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP5 PUSH1 0x60 SHL AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x14 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x14 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 PUSH1 0x60 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x80 DUP5 DUP5 ADD ADD MSTORE PUSH1 0x80 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP4 ADD ADD SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD3A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD22 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xD7B DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD1F JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0xDB8 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD1F JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xDE3 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xD1F JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x28D JUMPI PUSH2 0x28D PUSH2 0xDF7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28D JUMPI PUSH2 0x28D PUSH2 0xDF7 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xEBD JUMPI PUSH2 0xEBD PUSH2 0xDF7 JUMP JUMPDEST POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 SDIV KECCAK256 STOP LOG2 NUMBER CALL STATICCALL PUSH7 0x363F0F0A0D7023 DUP7 ADDMOD 0x4B LOG1 0xCB TSTORE PUSH25 0xF17DBC24F77D046BFB64736F6C634300081900330000000000 ","sourceMap":"2815:4310:32:-:0;;;3437:193;;;;;;;;;-1:-1:-1;3581:42:32;2072:4:14;3612:10:32;3581;:42::i;:::-;2815:4310;;6811:110:14;6889:25;6900:4;6906:7;6889:10;:25::i;:::-;6811:110;;:::o;7461:233::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:14;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:14;;;;;;;;;:36;;-1:-1:-1;;7582:36:14;7614:4;7582:36;;;7664:12;719:10:19;;640:96;7664:12:14;-1:-1:-1;;;;;7637:40:14;7655:7;-1:-1:-1;;;;;7637:40:14;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;2815:4310:32:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_3706":{"entryPoint":null,"id":3706,"parameterSlots":0,"returnSlots":0},"@_checkRole_3771":{"entryPoint":1476,"id":3771,"parameterSlots":1,"returnSlots":0},"@_checkRole_3810":{"entryPoint":1912,"id":3810,"parameterSlots":2,"returnSlots":0},"@_grantRole_3962":{"entryPoint":1489,"id":3962,"parameterSlots":2,"returnSlots":0},"@_msgSender_4354":{"entryPoint":null,"id":4354,"parameterSlots":0,"returnSlots":1},"@_revokeRole_3993":{"entryPoint":1729,"id":3993,"parameterSlots":2,"returnSlots":0},"@getRoleAdmin_3825":{"entryPoint":null,"id":3825,"parameterSlots":1,"returnSlots":1},"@giveCallPermission_8080":{"entryPoint":1223,"id":8080,"parameterSlots":4,"returnSlots":0},"@grantRole_3845":{"entryPoint":872,"id":3845,"parameterSlots":2,"returnSlots":0},"@hasPermission_8189":{"entryPoint":1333,"id":8189,"parameterSlots":4,"returnSlots":1},"@hasRole_3758":{"entryPoint":null,"id":3758,"parameterSlots":2,"returnSlots":1},"@isAllowedToCall_8161":{"entryPoint":659,"id":8161,"parameterSlots":3,"returnSlots":1},"@renounceRole_3888":{"entryPoint":914,"id":3888,"parameterSlots":2,"returnSlots":0},"@revokeCallPermission_8112":{"entryPoint":1098,"id":8112,"parameterSlots":4,"returnSlots":0},"@revokeRole_3865":{"entryPoint":1439,"id":3865,"parameterSlots":2,"returnSlots":0},"@supportsInterface_3739":{"entryPoint":506,"id":3739,"parameterSlots":1,"returnSlots":1},"@supportsInterface_4562":{"entryPoint":null,"id":4562,"parameterSlots":1,"returnSlots":1},"@toHexString_4518":{"entryPoint":2097,"id":4518,"parameterSlots":2,"returnSlots":1},"@toHexString_4538":{"entryPoint":2066,"id":4538,"parameterSlots":1,"returnSlots":1},"abi_decode_address":{"entryPoint":2742,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":2783,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_string_calldata_ptr":{"entryPoint":3109,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_string_calldata_ptr":{"entryPoint":2856,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_string_calldata_ptrt_address":{"entryPoint":3008,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes32":{"entryPoint":2939,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":2964,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":2676,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3206,"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":3395,"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":3269,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3524,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3645,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3622,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3359,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":3758,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3575,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3711,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3664,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7830:54","nodeType":"YulBlock","src":"0:7830:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"83:263:54","nodeType":"YulBlock","src":"83:263:54","statements":[{"body":{"nativeSrc":"129:16:54","nodeType":"YulBlock","src":"129:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138:1:54","nodeType":"YulLiteral","src":"138:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"141:1:54","nodeType":"YulLiteral","src":"141:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"131:6:54","nodeType":"YulIdentifier","src":"131:6:54"},"nativeSrc":"131:12:54","nodeType":"YulFunctionCall","src":"131:12:54"},"nativeSrc":"131:12:54","nodeType":"YulExpressionStatement","src":"131:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"104:7:54","nodeType":"YulIdentifier","src":"104:7:54"},{"name":"headStart","nativeSrc":"113:9:54","nodeType":"YulIdentifier","src":"113:9:54"}],"functionName":{"name":"sub","nativeSrc":"100:3:54","nodeType":"YulIdentifier","src":"100:3:54"},"nativeSrc":"100:23:54","nodeType":"YulFunctionCall","src":"100:23:54"},{"kind":"number","nativeSrc":"125:2:54","nodeType":"YulLiteral","src":"125:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"96:3:54","nodeType":"YulIdentifier","src":"96:3:54"},"nativeSrc":"96:32:54","nodeType":"YulFunctionCall","src":"96:32:54"},"nativeSrc":"93:52:54","nodeType":"YulIf","src":"93:52:54"},{"nativeSrc":"154:36:54","nodeType":"YulVariableDeclaration","src":"154:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"180:9:54","nodeType":"YulIdentifier","src":"180:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"167:12:54","nodeType":"YulIdentifier","src":"167:12:54"},"nativeSrc":"167:23:54","nodeType":"YulFunctionCall","src":"167:23:54"},"variables":[{"name":"value","nativeSrc":"158:5:54","nodeType":"YulTypedName","src":"158:5:54","type":""}]},{"body":{"nativeSrc":"300:16:54","nodeType":"YulBlock","src":"300:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"309:1:54","nodeType":"YulLiteral","src":"309:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"312:1:54","nodeType":"YulLiteral","src":"312:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"302:6:54","nodeType":"YulIdentifier","src":"302:6:54"},"nativeSrc":"302:12:54","nodeType":"YulFunctionCall","src":"302:12:54"},"nativeSrc":"302:12:54","nodeType":"YulExpressionStatement","src":"302:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"212:5:54","nodeType":"YulIdentifier","src":"212:5:54"},{"arguments":[{"name":"value","nativeSrc":"223:5:54","nodeType":"YulIdentifier","src":"223:5:54"},{"kind":"number","nativeSrc":"230:66:54","nodeType":"YulLiteral","src":"230:66:54","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"219:3:54","nodeType":"YulIdentifier","src":"219:3:54"},"nativeSrc":"219:78:54","nodeType":"YulFunctionCall","src":"219:78:54"}],"functionName":{"name":"eq","nativeSrc":"209:2:54","nodeType":"YulIdentifier","src":"209:2:54"},"nativeSrc":"209:89:54","nodeType":"YulFunctionCall","src":"209:89:54"}],"functionName":{"name":"iszero","nativeSrc":"202:6:54","nodeType":"YulIdentifier","src":"202:6:54"},"nativeSrc":"202:97:54","nodeType":"YulFunctionCall","src":"202:97:54"},"nativeSrc":"199:117:54","nodeType":"YulIf","src":"199:117:54"},{"nativeSrc":"325:15:54","nodeType":"YulAssignment","src":"325:15:54","value":{"name":"value","nativeSrc":"335:5:54","nodeType":"YulIdentifier","src":"335:5:54"},"variableNames":[{"name":"value0","nativeSrc":"325:6:54","nodeType":"YulIdentifier","src":"325:6:54"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"14:332:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49:9:54","nodeType":"YulTypedName","src":"49:9:54","type":""},{"name":"dataEnd","nativeSrc":"60:7:54","nodeType":"YulTypedName","src":"60:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72:6:54","nodeType":"YulTypedName","src":"72:6:54","type":""}],"src":"14:332:54"},{"body":{"nativeSrc":"446:92:54","nodeType":"YulBlock","src":"446:92:54","statements":[{"nativeSrc":"456:26:54","nodeType":"YulAssignment","src":"456:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"468:9:54","nodeType":"YulIdentifier","src":"468:9:54"},{"kind":"number","nativeSrc":"479:2:54","nodeType":"YulLiteral","src":"479:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"464:3:54","nodeType":"YulIdentifier","src":"464:3:54"},"nativeSrc":"464:18:54","nodeType":"YulFunctionCall","src":"464:18:54"},"variableNames":[{"name":"tail","nativeSrc":"456:4:54","nodeType":"YulIdentifier","src":"456:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"498:9:54","nodeType":"YulIdentifier","src":"498:9:54"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"523:6:54","nodeType":"YulIdentifier","src":"523:6:54"}],"functionName":{"name":"iszero","nativeSrc":"516:6:54","nodeType":"YulIdentifier","src":"516:6:54"},"nativeSrc":"516:14:54","nodeType":"YulFunctionCall","src":"516:14:54"}],"functionName":{"name":"iszero","nativeSrc":"509:6:54","nodeType":"YulIdentifier","src":"509:6:54"},"nativeSrc":"509:22:54","nodeType":"YulFunctionCall","src":"509:22:54"}],"functionName":{"name":"mstore","nativeSrc":"491:6:54","nodeType":"YulIdentifier","src":"491:6:54"},"nativeSrc":"491:41:54","nodeType":"YulFunctionCall","src":"491:41:54"},"nativeSrc":"491:41:54","nodeType":"YulExpressionStatement","src":"491:41:54"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"351:187:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"415:9:54","nodeType":"YulTypedName","src":"415:9:54","type":""},{"name":"value0","nativeSrc":"426:6:54","nodeType":"YulTypedName","src":"426:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"437:4:54","nodeType":"YulTypedName","src":"437:4:54","type":""}],"src":"351:187:54"},{"body":{"nativeSrc":"592:147:54","nodeType":"YulBlock","src":"592:147:54","statements":[{"nativeSrc":"602:29:54","nodeType":"YulAssignment","src":"602:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"624:6:54","nodeType":"YulIdentifier","src":"624:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"611:12:54","nodeType":"YulIdentifier","src":"611:12:54"},"nativeSrc":"611:20:54","nodeType":"YulFunctionCall","src":"611:20:54"},"variableNames":[{"name":"value","nativeSrc":"602:5:54","nodeType":"YulIdentifier","src":"602:5:54"}]},{"body":{"nativeSrc":"717:16:54","nodeType":"YulBlock","src":"717:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"726:1:54","nodeType":"YulLiteral","src":"726:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"729:1:54","nodeType":"YulLiteral","src":"729:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"719:6:54","nodeType":"YulIdentifier","src":"719:6:54"},"nativeSrc":"719:12:54","nodeType":"YulFunctionCall","src":"719:12:54"},"nativeSrc":"719:12:54","nodeType":"YulExpressionStatement","src":"719:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"653:5:54","nodeType":"YulIdentifier","src":"653:5:54"},{"arguments":[{"name":"value","nativeSrc":"664:5:54","nodeType":"YulIdentifier","src":"664:5:54"},{"kind":"number","nativeSrc":"671:42:54","nodeType":"YulLiteral","src":"671:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"660:3:54","nodeType":"YulIdentifier","src":"660:3:54"},"nativeSrc":"660:54:54","nodeType":"YulFunctionCall","src":"660:54:54"}],"functionName":{"name":"eq","nativeSrc":"650:2:54","nodeType":"YulIdentifier","src":"650:2:54"},"nativeSrc":"650:65:54","nodeType":"YulFunctionCall","src":"650:65:54"}],"functionName":{"name":"iszero","nativeSrc":"643:6:54","nodeType":"YulIdentifier","src":"643:6:54"},"nativeSrc":"643:73:54","nodeType":"YulFunctionCall","src":"643:73:54"},"nativeSrc":"640:93:54","nodeType":"YulIf","src":"640:93:54"}]},"name":"abi_decode_address","nativeSrc":"543:196:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"571:6:54","nodeType":"YulTypedName","src":"571:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"582:5:54","nodeType":"YulTypedName","src":"582:5:54","type":""}],"src":"543:196:54"},{"body":{"nativeSrc":"817:275:54","nodeType":"YulBlock","src":"817:275:54","statements":[{"body":{"nativeSrc":"866:16:54","nodeType":"YulBlock","src":"866:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"875:1:54","nodeType":"YulLiteral","src":"875:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"878:1:54","nodeType":"YulLiteral","src":"878:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"868:6:54","nodeType":"YulIdentifier","src":"868:6:54"},"nativeSrc":"868:12:54","nodeType":"YulFunctionCall","src":"868:12:54"},"nativeSrc":"868:12:54","nodeType":"YulExpressionStatement","src":"868:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"845:6:54","nodeType":"YulIdentifier","src":"845:6:54"},{"kind":"number","nativeSrc":"853:4:54","nodeType":"YulLiteral","src":"853:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"841:3:54","nodeType":"YulIdentifier","src":"841:3:54"},"nativeSrc":"841:17:54","nodeType":"YulFunctionCall","src":"841:17:54"},{"name":"end","nativeSrc":"860:3:54","nodeType":"YulIdentifier","src":"860:3:54"}],"functionName":{"name":"slt","nativeSrc":"837:3:54","nodeType":"YulIdentifier","src":"837:3:54"},"nativeSrc":"837:27:54","nodeType":"YulFunctionCall","src":"837:27:54"}],"functionName":{"name":"iszero","nativeSrc":"830:6:54","nodeType":"YulIdentifier","src":"830:6:54"},"nativeSrc":"830:35:54","nodeType":"YulFunctionCall","src":"830:35:54"},"nativeSrc":"827:55:54","nodeType":"YulIf","src":"827:55:54"},{"nativeSrc":"891:30:54","nodeType":"YulAssignment","src":"891:30:54","value":{"arguments":[{"name":"offset","nativeSrc":"914:6:54","nodeType":"YulIdentifier","src":"914:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"901:12:54","nodeType":"YulIdentifier","src":"901:12:54"},"nativeSrc":"901:20:54","nodeType":"YulFunctionCall","src":"901:20:54"},"variableNames":[{"name":"length","nativeSrc":"891:6:54","nodeType":"YulIdentifier","src":"891:6:54"}]},{"body":{"nativeSrc":"964:16:54","nodeType":"YulBlock","src":"964:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"973:1:54","nodeType":"YulLiteral","src":"973:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"976:1:54","nodeType":"YulLiteral","src":"976:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"966:6:54","nodeType":"YulIdentifier","src":"966:6:54"},"nativeSrc":"966:12:54","nodeType":"YulFunctionCall","src":"966:12:54"},"nativeSrc":"966:12:54","nodeType":"YulExpressionStatement","src":"966:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"936:6:54","nodeType":"YulIdentifier","src":"936:6:54"},{"kind":"number","nativeSrc":"944:18:54","nodeType":"YulLiteral","src":"944:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"933:2:54","nodeType":"YulIdentifier","src":"933:2:54"},"nativeSrc":"933:30:54","nodeType":"YulFunctionCall","src":"933:30:54"},"nativeSrc":"930:50:54","nodeType":"YulIf","src":"930:50:54"},{"nativeSrc":"989:29:54","nodeType":"YulAssignment","src":"989:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"1005:6:54","nodeType":"YulIdentifier","src":"1005:6:54"},{"kind":"number","nativeSrc":"1013:4:54","nodeType":"YulLiteral","src":"1013:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1001:3:54","nodeType":"YulIdentifier","src":"1001:3:54"},"nativeSrc":"1001:17:54","nodeType":"YulFunctionCall","src":"1001:17:54"},"variableNames":[{"name":"arrayPos","nativeSrc":"989:8:54","nodeType":"YulIdentifier","src":"989:8:54"}]},{"body":{"nativeSrc":"1070:16:54","nodeType":"YulBlock","src":"1070:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1079:1:54","nodeType":"YulLiteral","src":"1079:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1082:1:54","nodeType":"YulLiteral","src":"1082:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1072:6:54","nodeType":"YulIdentifier","src":"1072:6:54"},"nativeSrc":"1072:12:54","nodeType":"YulFunctionCall","src":"1072:12:54"},"nativeSrc":"1072:12:54","nodeType":"YulExpressionStatement","src":"1072:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1041:6:54","nodeType":"YulIdentifier","src":"1041:6:54"},{"name":"length","nativeSrc":"1049:6:54","nodeType":"YulIdentifier","src":"1049:6:54"}],"functionName":{"name":"add","nativeSrc":"1037:3:54","nodeType":"YulIdentifier","src":"1037:3:54"},"nativeSrc":"1037:19:54","nodeType":"YulFunctionCall","src":"1037:19:54"},{"kind":"number","nativeSrc":"1058:4:54","nodeType":"YulLiteral","src":"1058:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1033:3:54","nodeType":"YulIdentifier","src":"1033:3:54"},"nativeSrc":"1033:30:54","nodeType":"YulFunctionCall","src":"1033:30:54"},{"name":"end","nativeSrc":"1065:3:54","nodeType":"YulIdentifier","src":"1065:3:54"}],"functionName":{"name":"gt","nativeSrc":"1030:2:54","nodeType":"YulIdentifier","src":"1030:2:54"},"nativeSrc":"1030:39:54","nodeType":"YulFunctionCall","src":"1030:39:54"},"nativeSrc":"1027:59:54","nodeType":"YulIf","src":"1027:59:54"}]},"name":"abi_decode_string_calldata","nativeSrc":"744:348:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"780:6:54","nodeType":"YulTypedName","src":"780:6:54","type":""},{"name":"end","nativeSrc":"788:3:54","nodeType":"YulTypedName","src":"788:3:54","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"796:8:54","nodeType":"YulTypedName","src":"796:8:54","type":""},{"name":"length","nativeSrc":"806:6:54","nodeType":"YulTypedName","src":"806:6:54","type":""}],"src":"744:348:54"},{"body":{"nativeSrc":"1204:378:54","nodeType":"YulBlock","src":"1204:378:54","statements":[{"body":{"nativeSrc":"1250:16:54","nodeType":"YulBlock","src":"1250:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1259:1:54","nodeType":"YulLiteral","src":"1259:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1262:1:54","nodeType":"YulLiteral","src":"1262:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1252:6:54","nodeType":"YulIdentifier","src":"1252:6:54"},"nativeSrc":"1252:12:54","nodeType":"YulFunctionCall","src":"1252:12:54"},"nativeSrc":"1252:12:54","nodeType":"YulExpressionStatement","src":"1252:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1225:7:54","nodeType":"YulIdentifier","src":"1225:7:54"},{"name":"headStart","nativeSrc":"1234:9:54","nodeType":"YulIdentifier","src":"1234:9:54"}],"functionName":{"name":"sub","nativeSrc":"1221:3:54","nodeType":"YulIdentifier","src":"1221:3:54"},"nativeSrc":"1221:23:54","nodeType":"YulFunctionCall","src":"1221:23:54"},{"kind":"number","nativeSrc":"1246:2:54","nodeType":"YulLiteral","src":"1246:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1217:3:54","nodeType":"YulIdentifier","src":"1217:3:54"},"nativeSrc":"1217:32:54","nodeType":"YulFunctionCall","src":"1217:32:54"},"nativeSrc":"1214:52:54","nodeType":"YulIf","src":"1214:52:54"},{"nativeSrc":"1275:39:54","nodeType":"YulAssignment","src":"1275:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1304:9:54","nodeType":"YulIdentifier","src":"1304:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1285:18:54","nodeType":"YulIdentifier","src":"1285:18:54"},"nativeSrc":"1285:29:54","nodeType":"YulFunctionCall","src":"1285:29:54"},"variableNames":[{"name":"value0","nativeSrc":"1275:6:54","nodeType":"YulIdentifier","src":"1275:6:54"}]},{"nativeSrc":"1323:46:54","nodeType":"YulVariableDeclaration","src":"1323:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1354:9:54","nodeType":"YulIdentifier","src":"1354:9:54"},{"kind":"number","nativeSrc":"1365:2:54","nodeType":"YulLiteral","src":"1365:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1350:3:54","nodeType":"YulIdentifier","src":"1350:3:54"},"nativeSrc":"1350:18:54","nodeType":"YulFunctionCall","src":"1350:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1337:12:54","nodeType":"YulIdentifier","src":"1337:12:54"},"nativeSrc":"1337:32:54","nodeType":"YulFunctionCall","src":"1337:32:54"},"variables":[{"name":"offset","nativeSrc":"1327:6:54","nodeType":"YulTypedName","src":"1327:6:54","type":""}]},{"body":{"nativeSrc":"1412:16:54","nodeType":"YulBlock","src":"1412:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1421:1:54","nodeType":"YulLiteral","src":"1421:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1424:1:54","nodeType":"YulLiteral","src":"1424:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1414:6:54","nodeType":"YulIdentifier","src":"1414:6:54"},"nativeSrc":"1414:12:54","nodeType":"YulFunctionCall","src":"1414:12:54"},"nativeSrc":"1414:12:54","nodeType":"YulExpressionStatement","src":"1414:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1384:6:54","nodeType":"YulIdentifier","src":"1384:6:54"},{"kind":"number","nativeSrc":"1392:18:54","nodeType":"YulLiteral","src":"1392:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1381:2:54","nodeType":"YulIdentifier","src":"1381:2:54"},"nativeSrc":"1381:30:54","nodeType":"YulFunctionCall","src":"1381:30:54"},"nativeSrc":"1378:50:54","nodeType":"YulIf","src":"1378:50:54"},{"nativeSrc":"1437:85:54","nodeType":"YulVariableDeclaration","src":"1437:85:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1494:9:54","nodeType":"YulIdentifier","src":"1494:9:54"},{"name":"offset","nativeSrc":"1505:6:54","nodeType":"YulIdentifier","src":"1505:6:54"}],"functionName":{"name":"add","nativeSrc":"1490:3:54","nodeType":"YulIdentifier","src":"1490:3:54"},"nativeSrc":"1490:22:54","nodeType":"YulFunctionCall","src":"1490:22:54"},{"name":"dataEnd","nativeSrc":"1514:7:54","nodeType":"YulIdentifier","src":"1514:7:54"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1463:26:54","nodeType":"YulIdentifier","src":"1463:26:54"},"nativeSrc":"1463:59:54","nodeType":"YulFunctionCall","src":"1463:59:54"},"variables":[{"name":"value1_1","nativeSrc":"1441:8:54","nodeType":"YulTypedName","src":"1441:8:54","type":""},{"name":"value2_1","nativeSrc":"1451:8:54","nodeType":"YulTypedName","src":"1451:8:54","type":""}]},{"nativeSrc":"1531:18:54","nodeType":"YulAssignment","src":"1531:18:54","value":{"name":"value1_1","nativeSrc":"1541:8:54","nodeType":"YulIdentifier","src":"1541:8:54"},"variableNames":[{"name":"value1","nativeSrc":"1531:6:54","nodeType":"YulIdentifier","src":"1531:6:54"}]},{"nativeSrc":"1558:18:54","nodeType":"YulAssignment","src":"1558:18:54","value":{"name":"value2_1","nativeSrc":"1568:8:54","nodeType":"YulIdentifier","src":"1568:8:54"},"variableNames":[{"name":"value2","nativeSrc":"1558:6:54","nodeType":"YulIdentifier","src":"1558:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_string_calldata_ptr","nativeSrc":"1097:485:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1154:9:54","nodeType":"YulTypedName","src":"1154:9:54","type":""},{"name":"dataEnd","nativeSrc":"1165:7:54","nodeType":"YulTypedName","src":"1165:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1177:6:54","nodeType":"YulTypedName","src":"1177:6:54","type":""},{"name":"value1","nativeSrc":"1185:6:54","nodeType":"YulTypedName","src":"1185:6:54","type":""},{"name":"value2","nativeSrc":"1193:6:54","nodeType":"YulTypedName","src":"1193:6:54","type":""}],"src":"1097:485:54"},{"body":{"nativeSrc":"1657:110:54","nodeType":"YulBlock","src":"1657:110:54","statements":[{"body":{"nativeSrc":"1703:16:54","nodeType":"YulBlock","src":"1703:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1712:1:54","nodeType":"YulLiteral","src":"1712:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1715:1:54","nodeType":"YulLiteral","src":"1715:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1705:6:54","nodeType":"YulIdentifier","src":"1705:6:54"},"nativeSrc":"1705:12:54","nodeType":"YulFunctionCall","src":"1705:12:54"},"nativeSrc":"1705:12:54","nodeType":"YulExpressionStatement","src":"1705:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1678:7:54","nodeType":"YulIdentifier","src":"1678:7:54"},{"name":"headStart","nativeSrc":"1687:9:54","nodeType":"YulIdentifier","src":"1687:9:54"}],"functionName":{"name":"sub","nativeSrc":"1674:3:54","nodeType":"YulIdentifier","src":"1674:3:54"},"nativeSrc":"1674:23:54","nodeType":"YulFunctionCall","src":"1674:23:54"},{"kind":"number","nativeSrc":"1699:2:54","nodeType":"YulLiteral","src":"1699:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1670:3:54","nodeType":"YulIdentifier","src":"1670:3:54"},"nativeSrc":"1670:32:54","nodeType":"YulFunctionCall","src":"1670:32:54"},"nativeSrc":"1667:52:54","nodeType":"YulIf","src":"1667:52:54"},{"nativeSrc":"1728:33:54","nodeType":"YulAssignment","src":"1728:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1751:9:54","nodeType":"YulIdentifier","src":"1751:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"1738:12:54","nodeType":"YulIdentifier","src":"1738:12:54"},"nativeSrc":"1738:23:54","nodeType":"YulFunctionCall","src":"1738:23:54"},"variableNames":[{"name":"value0","nativeSrc":"1728:6:54","nodeType":"YulIdentifier","src":"1728:6:54"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"1587:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1623:9:54","nodeType":"YulTypedName","src":"1623:9:54","type":""},{"name":"dataEnd","nativeSrc":"1634:7:54","nodeType":"YulTypedName","src":"1634:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1646:6:54","nodeType":"YulTypedName","src":"1646:6:54","type":""}],"src":"1587:180:54"},{"body":{"nativeSrc":"1873:76:54","nodeType":"YulBlock","src":"1873:76:54","statements":[{"nativeSrc":"1883:26:54","nodeType":"YulAssignment","src":"1883:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1895:9:54","nodeType":"YulIdentifier","src":"1895:9:54"},{"kind":"number","nativeSrc":"1906:2:54","nodeType":"YulLiteral","src":"1906:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1891:3:54","nodeType":"YulIdentifier","src":"1891:3:54"},"nativeSrc":"1891:18:54","nodeType":"YulFunctionCall","src":"1891:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1883:4:54","nodeType":"YulIdentifier","src":"1883:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1925:9:54","nodeType":"YulIdentifier","src":"1925:9:54"},{"name":"value0","nativeSrc":"1936:6:54","nodeType":"YulIdentifier","src":"1936:6:54"}],"functionName":{"name":"mstore","nativeSrc":"1918:6:54","nodeType":"YulIdentifier","src":"1918:6:54"},"nativeSrc":"1918:25:54","nodeType":"YulFunctionCall","src":"1918:25:54"},"nativeSrc":"1918:25:54","nodeType":"YulExpressionStatement","src":"1918:25:54"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"1772:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1842:9:54","nodeType":"YulTypedName","src":"1842:9:54","type":""},{"name":"value0","nativeSrc":"1853:6:54","nodeType":"YulTypedName","src":"1853:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1864:4:54","nodeType":"YulTypedName","src":"1864:4:54","type":""}],"src":"1772:177:54"},{"body":{"nativeSrc":"2041:167:54","nodeType":"YulBlock","src":"2041:167:54","statements":[{"body":{"nativeSrc":"2087:16:54","nodeType":"YulBlock","src":"2087:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2096:1:54","nodeType":"YulLiteral","src":"2096:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2099:1:54","nodeType":"YulLiteral","src":"2099:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2089:6:54","nodeType":"YulIdentifier","src":"2089:6:54"},"nativeSrc":"2089:12:54","nodeType":"YulFunctionCall","src":"2089:12:54"},"nativeSrc":"2089:12:54","nodeType":"YulExpressionStatement","src":"2089:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2062:7:54","nodeType":"YulIdentifier","src":"2062:7:54"},{"name":"headStart","nativeSrc":"2071:9:54","nodeType":"YulIdentifier","src":"2071:9:54"}],"functionName":{"name":"sub","nativeSrc":"2058:3:54","nodeType":"YulIdentifier","src":"2058:3:54"},"nativeSrc":"2058:23:54","nodeType":"YulFunctionCall","src":"2058:23:54"},{"kind":"number","nativeSrc":"2083:2:54","nodeType":"YulLiteral","src":"2083:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2054:3:54","nodeType":"YulIdentifier","src":"2054:3:54"},"nativeSrc":"2054:32:54","nodeType":"YulFunctionCall","src":"2054:32:54"},"nativeSrc":"2051:52:54","nodeType":"YulIf","src":"2051:52:54"},{"nativeSrc":"2112:33:54","nodeType":"YulAssignment","src":"2112:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2135:9:54","nodeType":"YulIdentifier","src":"2135:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"2122:12:54","nodeType":"YulIdentifier","src":"2122:12:54"},"nativeSrc":"2122:23:54","nodeType":"YulFunctionCall","src":"2122:23:54"},"variableNames":[{"name":"value0","nativeSrc":"2112:6:54","nodeType":"YulIdentifier","src":"2112:6:54"}]},{"nativeSrc":"2154:48:54","nodeType":"YulAssignment","src":"2154:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2187:9:54","nodeType":"YulIdentifier","src":"2187:9:54"},{"kind":"number","nativeSrc":"2198:2:54","nodeType":"YulLiteral","src":"2198:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2183:3:54","nodeType":"YulIdentifier","src":"2183:3:54"},"nativeSrc":"2183:18:54","nodeType":"YulFunctionCall","src":"2183:18:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2164:18:54","nodeType":"YulIdentifier","src":"2164:18:54"},"nativeSrc":"2164:38:54","nodeType":"YulFunctionCall","src":"2164:38:54"},"variableNames":[{"name":"value1","nativeSrc":"2154:6:54","nodeType":"YulIdentifier","src":"2154:6:54"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"1954:254:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1999:9:54","nodeType":"YulTypedName","src":"1999:9:54","type":""},{"name":"dataEnd","nativeSrc":"2010:7:54","nodeType":"YulTypedName","src":"2010:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2022:6:54","nodeType":"YulTypedName","src":"2022:6:54","type":""},{"name":"value1","nativeSrc":"2030:6:54","nodeType":"YulTypedName","src":"2030:6:54","type":""}],"src":"1954:254:54"},{"body":{"nativeSrc":"2337:435:54","nodeType":"YulBlock","src":"2337:435:54","statements":[{"body":{"nativeSrc":"2383:16:54","nodeType":"YulBlock","src":"2383:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2392:1:54","nodeType":"YulLiteral","src":"2392:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2395:1:54","nodeType":"YulLiteral","src":"2395:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2385:6:54","nodeType":"YulIdentifier","src":"2385:6:54"},"nativeSrc":"2385:12:54","nodeType":"YulFunctionCall","src":"2385:12:54"},"nativeSrc":"2385:12:54","nodeType":"YulExpressionStatement","src":"2385:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2358:7:54","nodeType":"YulIdentifier","src":"2358:7:54"},{"name":"headStart","nativeSrc":"2367:9:54","nodeType":"YulIdentifier","src":"2367:9:54"}],"functionName":{"name":"sub","nativeSrc":"2354:3:54","nodeType":"YulIdentifier","src":"2354:3:54"},"nativeSrc":"2354:23:54","nodeType":"YulFunctionCall","src":"2354:23:54"},{"kind":"number","nativeSrc":"2379:2:54","nodeType":"YulLiteral","src":"2379:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2350:3:54","nodeType":"YulIdentifier","src":"2350:3:54"},"nativeSrc":"2350:32:54","nodeType":"YulFunctionCall","src":"2350:32:54"},"nativeSrc":"2347:52:54","nodeType":"YulIf","src":"2347:52:54"},{"nativeSrc":"2408:39:54","nodeType":"YulAssignment","src":"2408:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2437:9:54","nodeType":"YulIdentifier","src":"2437:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2418:18:54","nodeType":"YulIdentifier","src":"2418:18:54"},"nativeSrc":"2418:29:54","nodeType":"YulFunctionCall","src":"2418:29:54"},"variableNames":[{"name":"value0","nativeSrc":"2408:6:54","nodeType":"YulIdentifier","src":"2408:6:54"}]},{"nativeSrc":"2456:46:54","nodeType":"YulVariableDeclaration","src":"2456:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2487:9:54","nodeType":"YulIdentifier","src":"2487:9:54"},{"kind":"number","nativeSrc":"2498:2:54","nodeType":"YulLiteral","src":"2498:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2483:3:54","nodeType":"YulIdentifier","src":"2483:3:54"},"nativeSrc":"2483:18:54","nodeType":"YulFunctionCall","src":"2483:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"2470:12:54","nodeType":"YulIdentifier","src":"2470:12:54"},"nativeSrc":"2470:32:54","nodeType":"YulFunctionCall","src":"2470:32:54"},"variables":[{"name":"offset","nativeSrc":"2460:6:54","nodeType":"YulTypedName","src":"2460:6:54","type":""}]},{"body":{"nativeSrc":"2545:16:54","nodeType":"YulBlock","src":"2545:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2554:1:54","nodeType":"YulLiteral","src":"2554:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2557:1:54","nodeType":"YulLiteral","src":"2557:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2547:6:54","nodeType":"YulIdentifier","src":"2547:6:54"},"nativeSrc":"2547:12:54","nodeType":"YulFunctionCall","src":"2547:12:54"},"nativeSrc":"2547:12:54","nodeType":"YulExpressionStatement","src":"2547:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2517:6:54","nodeType":"YulIdentifier","src":"2517:6:54"},{"kind":"number","nativeSrc":"2525:18:54","nodeType":"YulLiteral","src":"2525:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2514:2:54","nodeType":"YulIdentifier","src":"2514:2:54"},"nativeSrc":"2514:30:54","nodeType":"YulFunctionCall","src":"2514:30:54"},"nativeSrc":"2511:50:54","nodeType":"YulIf","src":"2511:50:54"},{"nativeSrc":"2570:85:54","nodeType":"YulVariableDeclaration","src":"2570:85:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2627:9:54","nodeType":"YulIdentifier","src":"2627:9:54"},{"name":"offset","nativeSrc":"2638:6:54","nodeType":"YulIdentifier","src":"2638:6:54"}],"functionName":{"name":"add","nativeSrc":"2623:3:54","nodeType":"YulIdentifier","src":"2623:3:54"},"nativeSrc":"2623:22:54","nodeType":"YulFunctionCall","src":"2623:22:54"},{"name":"dataEnd","nativeSrc":"2647:7:54","nodeType":"YulIdentifier","src":"2647:7:54"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"2596:26:54","nodeType":"YulIdentifier","src":"2596:26:54"},"nativeSrc":"2596:59:54","nodeType":"YulFunctionCall","src":"2596:59:54"},"variables":[{"name":"value1_1","nativeSrc":"2574:8:54","nodeType":"YulTypedName","src":"2574:8:54","type":""},{"name":"value2_1","nativeSrc":"2584:8:54","nodeType":"YulTypedName","src":"2584:8:54","type":""}]},{"nativeSrc":"2664:18:54","nodeType":"YulAssignment","src":"2664:18:54","value":{"name":"value1_1","nativeSrc":"2674:8:54","nodeType":"YulIdentifier","src":"2674:8:54"},"variableNames":[{"name":"value1","nativeSrc":"2664:6:54","nodeType":"YulIdentifier","src":"2664:6:54"}]},{"nativeSrc":"2691:18:54","nodeType":"YulAssignment","src":"2691:18:54","value":{"name":"value2_1","nativeSrc":"2701:8:54","nodeType":"YulIdentifier","src":"2701:8:54"},"variableNames":[{"name":"value2","nativeSrc":"2691:6:54","nodeType":"YulIdentifier","src":"2691:6:54"}]},{"nativeSrc":"2718:48:54","nodeType":"YulAssignment","src":"2718:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2751:9:54","nodeType":"YulIdentifier","src":"2751:9:54"},{"kind":"number","nativeSrc":"2762:2:54","nodeType":"YulLiteral","src":"2762:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2747:3:54","nodeType":"YulIdentifier","src":"2747:3:54"},"nativeSrc":"2747:18:54","nodeType":"YulFunctionCall","src":"2747:18:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2728:18:54","nodeType":"YulIdentifier","src":"2728:18:54"},"nativeSrc":"2728:38:54","nodeType":"YulFunctionCall","src":"2728:38:54"},"variableNames":[{"name":"value3","nativeSrc":"2718:6:54","nodeType":"YulIdentifier","src":"2718:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_string_calldata_ptrt_address","nativeSrc":"2213:559:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2279:9:54","nodeType":"YulTypedName","src":"2279:9:54","type":""},{"name":"dataEnd","nativeSrc":"2290:7:54","nodeType":"YulTypedName","src":"2290:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2302:6:54","nodeType":"YulTypedName","src":"2302:6:54","type":""},{"name":"value1","nativeSrc":"2310:6:54","nodeType":"YulTypedName","src":"2310:6:54","type":""},{"name":"value2","nativeSrc":"2318:6:54","nodeType":"YulTypedName","src":"2318:6:54","type":""},{"name":"value3","nativeSrc":"2326:6:54","nodeType":"YulTypedName","src":"2326:6:54","type":""}],"src":"2213:559:54"},{"body":{"nativeSrc":"2901:435:54","nodeType":"YulBlock","src":"2901:435:54","statements":[{"body":{"nativeSrc":"2947:16:54","nodeType":"YulBlock","src":"2947:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2956:1:54","nodeType":"YulLiteral","src":"2956:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2959:1:54","nodeType":"YulLiteral","src":"2959:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2949:6:54","nodeType":"YulIdentifier","src":"2949:6:54"},"nativeSrc":"2949:12:54","nodeType":"YulFunctionCall","src":"2949:12:54"},"nativeSrc":"2949:12:54","nodeType":"YulExpressionStatement","src":"2949:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2922:7:54","nodeType":"YulIdentifier","src":"2922:7:54"},{"name":"headStart","nativeSrc":"2931:9:54","nodeType":"YulIdentifier","src":"2931:9:54"}],"functionName":{"name":"sub","nativeSrc":"2918:3:54","nodeType":"YulIdentifier","src":"2918:3:54"},"nativeSrc":"2918:23:54","nodeType":"YulFunctionCall","src":"2918:23:54"},{"kind":"number","nativeSrc":"2943:2:54","nodeType":"YulLiteral","src":"2943:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2914:3:54","nodeType":"YulIdentifier","src":"2914:3:54"},"nativeSrc":"2914:32:54","nodeType":"YulFunctionCall","src":"2914:32:54"},"nativeSrc":"2911:52:54","nodeType":"YulIf","src":"2911:52:54"},{"nativeSrc":"2972:39:54","nodeType":"YulAssignment","src":"2972:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3001:9:54","nodeType":"YulIdentifier","src":"3001:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2982:18:54","nodeType":"YulIdentifier","src":"2982:18:54"},"nativeSrc":"2982:29:54","nodeType":"YulFunctionCall","src":"2982:29:54"},"variableNames":[{"name":"value0","nativeSrc":"2972:6:54","nodeType":"YulIdentifier","src":"2972:6:54"}]},{"nativeSrc":"3020:48:54","nodeType":"YulAssignment","src":"3020:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3053:9:54","nodeType":"YulIdentifier","src":"3053:9:54"},{"kind":"number","nativeSrc":"3064:2:54","nodeType":"YulLiteral","src":"3064:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3049:3:54","nodeType":"YulIdentifier","src":"3049:3:54"},"nativeSrc":"3049:18:54","nodeType":"YulFunctionCall","src":"3049:18:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3030:18:54","nodeType":"YulIdentifier","src":"3030:18:54"},"nativeSrc":"3030:38:54","nodeType":"YulFunctionCall","src":"3030:38:54"},"variableNames":[{"name":"value1","nativeSrc":"3020:6:54","nodeType":"YulIdentifier","src":"3020:6:54"}]},{"nativeSrc":"3077:46:54","nodeType":"YulVariableDeclaration","src":"3077:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3108:9:54","nodeType":"YulIdentifier","src":"3108:9:54"},{"kind":"number","nativeSrc":"3119:2:54","nodeType":"YulLiteral","src":"3119:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3104:3:54","nodeType":"YulIdentifier","src":"3104:3:54"},"nativeSrc":"3104:18:54","nodeType":"YulFunctionCall","src":"3104:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"3091:12:54","nodeType":"YulIdentifier","src":"3091:12:54"},"nativeSrc":"3091:32:54","nodeType":"YulFunctionCall","src":"3091:32:54"},"variables":[{"name":"offset","nativeSrc":"3081:6:54","nodeType":"YulTypedName","src":"3081:6:54","type":""}]},{"body":{"nativeSrc":"3166:16:54","nodeType":"YulBlock","src":"3166:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3175:1:54","nodeType":"YulLiteral","src":"3175:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3178:1:54","nodeType":"YulLiteral","src":"3178:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3168:6:54","nodeType":"YulIdentifier","src":"3168:6:54"},"nativeSrc":"3168:12:54","nodeType":"YulFunctionCall","src":"3168:12:54"},"nativeSrc":"3168:12:54","nodeType":"YulExpressionStatement","src":"3168:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3138:6:54","nodeType":"YulIdentifier","src":"3138:6:54"},{"kind":"number","nativeSrc":"3146:18:54","nodeType":"YulLiteral","src":"3146:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3135:2:54","nodeType":"YulIdentifier","src":"3135:2:54"},"nativeSrc":"3135:30:54","nodeType":"YulFunctionCall","src":"3135:30:54"},"nativeSrc":"3132:50:54","nodeType":"YulIf","src":"3132:50:54"},{"nativeSrc":"3191:85:54","nodeType":"YulVariableDeclaration","src":"3191:85:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3248:9:54","nodeType":"YulIdentifier","src":"3248:9:54"},{"name":"offset","nativeSrc":"3259:6:54","nodeType":"YulIdentifier","src":"3259:6:54"}],"functionName":{"name":"add","nativeSrc":"3244:3:54","nodeType":"YulIdentifier","src":"3244:3:54"},"nativeSrc":"3244:22:54","nodeType":"YulFunctionCall","src":"3244:22:54"},{"name":"dataEnd","nativeSrc":"3268:7:54","nodeType":"YulIdentifier","src":"3268:7:54"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"3217:26:54","nodeType":"YulIdentifier","src":"3217:26:54"},"nativeSrc":"3217:59:54","nodeType":"YulFunctionCall","src":"3217:59:54"},"variables":[{"name":"value2_1","nativeSrc":"3195:8:54","nodeType":"YulTypedName","src":"3195:8:54","type":""},{"name":"value3_1","nativeSrc":"3205:8:54","nodeType":"YulTypedName","src":"3205:8:54","type":""}]},{"nativeSrc":"3285:18:54","nodeType":"YulAssignment","src":"3285:18:54","value":{"name":"value2_1","nativeSrc":"3295:8:54","nodeType":"YulIdentifier","src":"3295:8:54"},"variableNames":[{"name":"value2","nativeSrc":"3285:6:54","nodeType":"YulIdentifier","src":"3285:6:54"}]},{"nativeSrc":"3312:18:54","nodeType":"YulAssignment","src":"3312:18:54","value":{"name":"value3_1","nativeSrc":"3322:8:54","nodeType":"YulIdentifier","src":"3322:8:54"},"variableNames":[{"name":"value3","nativeSrc":"3312:6:54","nodeType":"YulIdentifier","src":"3312:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_string_calldata_ptr","nativeSrc":"2777:559:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2843:9:54","nodeType":"YulTypedName","src":"2843:9:54","type":""},{"name":"dataEnd","nativeSrc":"2854:7:54","nodeType":"YulTypedName","src":"2854:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2866:6:54","nodeType":"YulTypedName","src":"2866:6:54","type":""},{"name":"value1","nativeSrc":"2874:6:54","nodeType":"YulTypedName","src":"2874:6:54","type":""},{"name":"value2","nativeSrc":"2882:6:54","nodeType":"YulTypedName","src":"2882:6:54","type":""},{"name":"value3","nativeSrc":"2890:6:54","nodeType":"YulTypedName","src":"2890:6:54","type":""}],"src":"2777:559:54"},{"body":{"nativeSrc":"3518:252:54","nodeType":"YulBlock","src":"3518:252:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3535:3:54","nodeType":"YulIdentifier","src":"3535:3:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3548:2:54","nodeType":"YulLiteral","src":"3548:2:54","type":"","value":"96"},{"name":"value0","nativeSrc":"3552:6:54","nodeType":"YulIdentifier","src":"3552:6:54"}],"functionName":{"name":"shl","nativeSrc":"3544:3:54","nodeType":"YulIdentifier","src":"3544:3:54"},"nativeSrc":"3544:15:54","nodeType":"YulFunctionCall","src":"3544:15:54"},{"kind":"number","nativeSrc":"3561:66:54","nodeType":"YulLiteral","src":"3561:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"3540:3:54","nodeType":"YulIdentifier","src":"3540:3:54"},"nativeSrc":"3540:88:54","nodeType":"YulFunctionCall","src":"3540:88:54"}],"functionName":{"name":"mstore","nativeSrc":"3528:6:54","nodeType":"YulIdentifier","src":"3528:6:54"},"nativeSrc":"3528:101:54","nodeType":"YulFunctionCall","src":"3528:101:54"},"nativeSrc":"3528:101:54","nodeType":"YulExpressionStatement","src":"3528:101:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3655:3:54","nodeType":"YulIdentifier","src":"3655:3:54"},{"kind":"number","nativeSrc":"3660:2:54","nodeType":"YulLiteral","src":"3660:2:54","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"3651:3:54","nodeType":"YulIdentifier","src":"3651:3:54"},"nativeSrc":"3651:12:54","nodeType":"YulFunctionCall","src":"3651:12:54"},{"name":"value1","nativeSrc":"3665:6:54","nodeType":"YulIdentifier","src":"3665:6:54"},{"name":"value2","nativeSrc":"3673:6:54","nodeType":"YulIdentifier","src":"3673:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"3638:12:54","nodeType":"YulIdentifier","src":"3638:12:54"},"nativeSrc":"3638:42:54","nodeType":"YulFunctionCall","src":"3638:42:54"},"nativeSrc":"3638:42:54","nodeType":"YulExpressionStatement","src":"3638:42:54"},{"nativeSrc":"3689:35:54","nodeType":"YulVariableDeclaration","src":"3689:35:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"3707:3:54","nodeType":"YulIdentifier","src":"3707:3:54"},{"name":"value2","nativeSrc":"3712:6:54","nodeType":"YulIdentifier","src":"3712:6:54"}],"functionName":{"name":"add","nativeSrc":"3703:3:54","nodeType":"YulIdentifier","src":"3703:3:54"},"nativeSrc":"3703:16:54","nodeType":"YulFunctionCall","src":"3703:16:54"},{"kind":"number","nativeSrc":"3721:2:54","nodeType":"YulLiteral","src":"3721:2:54","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"3699:3:54","nodeType":"YulIdentifier","src":"3699:3:54"},"nativeSrc":"3699:25:54","nodeType":"YulFunctionCall","src":"3699:25:54"},"variables":[{"name":"_1","nativeSrc":"3693:2:54","nodeType":"YulTypedName","src":"3693:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"3740:2:54","nodeType":"YulIdentifier","src":"3740:2:54"},{"kind":"number","nativeSrc":"3744:1:54","nodeType":"YulLiteral","src":"3744:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3733:6:54","nodeType":"YulIdentifier","src":"3733:6:54"},"nativeSrc":"3733:13:54","nodeType":"YulFunctionCall","src":"3733:13:54"},"nativeSrc":"3733:13:54","nodeType":"YulExpressionStatement","src":"3733:13:54"},{"nativeSrc":"3755:9:54","nodeType":"YulAssignment","src":"3755:9:54","value":{"name":"_1","nativeSrc":"3762:2:54","nodeType":"YulIdentifier","src":"3762:2:54"},"variableNames":[{"name":"end","nativeSrc":"3755:3:54","nodeType":"YulIdentifier","src":"3755:3:54"}]}]},"name":"abi_encode_tuple_packed_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3341:429:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3478:3:54","nodeType":"YulTypedName","src":"3478:3:54","type":""},{"name":"value2","nativeSrc":"3483:6:54","nodeType":"YulTypedName","src":"3483:6:54","type":""},{"name":"value1","nativeSrc":"3491:6:54","nodeType":"YulTypedName","src":"3491:6:54","type":""},{"name":"value0","nativeSrc":"3499:6:54","nodeType":"YulTypedName","src":"3499:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3510:3:54","nodeType":"YulTypedName","src":"3510:3:54","type":""}],"src":"3341:429:54"},{"body":{"nativeSrc":"3949:237:54","nodeType":"YulBlock","src":"3949:237:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3966:9:54","nodeType":"YulIdentifier","src":"3966:9:54"},{"kind":"number","nativeSrc":"3977:2:54","nodeType":"YulLiteral","src":"3977:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3959:6:54","nodeType":"YulIdentifier","src":"3959:6:54"},"nativeSrc":"3959:21:54","nodeType":"YulFunctionCall","src":"3959:21:54"},"nativeSrc":"3959:21:54","nodeType":"YulExpressionStatement","src":"3959:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4000:9:54","nodeType":"YulIdentifier","src":"4000:9:54"},{"kind":"number","nativeSrc":"4011:2:54","nodeType":"YulLiteral","src":"4011:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3996:3:54","nodeType":"YulIdentifier","src":"3996:3:54"},"nativeSrc":"3996:18:54","nodeType":"YulFunctionCall","src":"3996:18:54"},{"kind":"number","nativeSrc":"4016:2:54","nodeType":"YulLiteral","src":"4016:2:54","type":"","value":"47"}],"functionName":{"name":"mstore","nativeSrc":"3989:6:54","nodeType":"YulIdentifier","src":"3989:6:54"},"nativeSrc":"3989:30:54","nodeType":"YulFunctionCall","src":"3989:30:54"},"nativeSrc":"3989:30:54","nodeType":"YulExpressionStatement","src":"3989:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4039:9:54","nodeType":"YulIdentifier","src":"4039:9:54"},{"kind":"number","nativeSrc":"4050:2:54","nodeType":"YulLiteral","src":"4050:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4035:3:54","nodeType":"YulIdentifier","src":"4035:3:54"},"nativeSrc":"4035:18:54","nodeType":"YulFunctionCall","src":"4035:18:54"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nativeSrc":"4055:34:54","nodeType":"YulLiteral","src":"4055:34:54","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nativeSrc":"4028:6:54","nodeType":"YulIdentifier","src":"4028:6:54"},"nativeSrc":"4028:62:54","nodeType":"YulFunctionCall","src":"4028:62:54"},"nativeSrc":"4028:62:54","nodeType":"YulExpressionStatement","src":"4028:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4110:9:54","nodeType":"YulIdentifier","src":"4110:9:54"},{"kind":"number","nativeSrc":"4121:2:54","nodeType":"YulLiteral","src":"4121:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4106:3:54","nodeType":"YulIdentifier","src":"4106:3:54"},"nativeSrc":"4106:18:54","nodeType":"YulFunctionCall","src":"4106:18:54"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nativeSrc":"4126:17:54","nodeType":"YulLiteral","src":"4126:17:54","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nativeSrc":"4099:6:54","nodeType":"YulIdentifier","src":"4099:6:54"},"nativeSrc":"4099:45:54","nodeType":"YulFunctionCall","src":"4099:45:54"},"nativeSrc":"4099:45:54","nodeType":"YulExpressionStatement","src":"4099:45:54"},{"nativeSrc":"4153:27:54","nodeType":"YulAssignment","src":"4153:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4165:9:54","nodeType":"YulIdentifier","src":"4165:9:54"},{"kind":"number","nativeSrc":"4176:3:54","nodeType":"YulLiteral","src":"4176:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4161:3:54","nodeType":"YulIdentifier","src":"4161:3:54"},"nativeSrc":"4161:19:54","nodeType":"YulFunctionCall","src":"4161:19:54"},"variableNames":[{"name":"tail","nativeSrc":"4153:4:54","nodeType":"YulIdentifier","src":"4153:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3775:411:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3926:9:54","nodeType":"YulTypedName","src":"3926:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3940:4:54","nodeType":"YulTypedName","src":"3940:4:54","type":""}],"src":"3775:411:54"},{"body":{"nativeSrc":"4378:486:54","nodeType":"YulBlock","src":"4378:486:54","statements":[{"nativeSrc":"4388:52:54","nodeType":"YulVariableDeclaration","src":"4388:52:54","value":{"kind":"number","nativeSrc":"4398:42:54","nodeType":"YulLiteral","src":"4398:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"4392:2:54","nodeType":"YulTypedName","src":"4392:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4456:9:54","nodeType":"YulIdentifier","src":"4456:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4471:6:54","nodeType":"YulIdentifier","src":"4471:6:54"},{"name":"_1","nativeSrc":"4479:2:54","nodeType":"YulIdentifier","src":"4479:2:54"}],"functionName":{"name":"and","nativeSrc":"4467:3:54","nodeType":"YulIdentifier","src":"4467:3:54"},"nativeSrc":"4467:15:54","nodeType":"YulFunctionCall","src":"4467:15:54"}],"functionName":{"name":"mstore","nativeSrc":"4449:6:54","nodeType":"YulIdentifier","src":"4449:6:54"},"nativeSrc":"4449:34:54","nodeType":"YulFunctionCall","src":"4449:34:54"},"nativeSrc":"4449:34:54","nodeType":"YulExpressionStatement","src":"4449:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4503:9:54","nodeType":"YulIdentifier","src":"4503:9:54"},{"kind":"number","nativeSrc":"4514:2:54","nodeType":"YulLiteral","src":"4514:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4499:3:54","nodeType":"YulIdentifier","src":"4499:3:54"},"nativeSrc":"4499:18:54","nodeType":"YulFunctionCall","src":"4499:18:54"},{"arguments":[{"name":"value1","nativeSrc":"4523:6:54","nodeType":"YulIdentifier","src":"4523:6:54"},{"name":"_1","nativeSrc":"4531:2:54","nodeType":"YulIdentifier","src":"4531:2:54"}],"functionName":{"name":"and","nativeSrc":"4519:3:54","nodeType":"YulIdentifier","src":"4519:3:54"},"nativeSrc":"4519:15:54","nodeType":"YulFunctionCall","src":"4519:15:54"}],"functionName":{"name":"mstore","nativeSrc":"4492:6:54","nodeType":"YulIdentifier","src":"4492:6:54"},"nativeSrc":"4492:43:54","nodeType":"YulFunctionCall","src":"4492:43:54"},"nativeSrc":"4492:43:54","nodeType":"YulExpressionStatement","src":"4492:43:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4555:9:54","nodeType":"YulIdentifier","src":"4555:9:54"},{"kind":"number","nativeSrc":"4566:2:54","nodeType":"YulLiteral","src":"4566:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4551:3:54","nodeType":"YulIdentifier","src":"4551:3:54"},"nativeSrc":"4551:18:54","nodeType":"YulFunctionCall","src":"4551:18:54"},{"kind":"number","nativeSrc":"4571:2:54","nodeType":"YulLiteral","src":"4571:2:54","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"4544:6:54","nodeType":"YulIdentifier","src":"4544:6:54"},"nativeSrc":"4544:30:54","nodeType":"YulFunctionCall","src":"4544:30:54"},"nativeSrc":"4544:30:54","nodeType":"YulExpressionStatement","src":"4544:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4594:9:54","nodeType":"YulIdentifier","src":"4594:9:54"},{"kind":"number","nativeSrc":"4605:2:54","nodeType":"YulLiteral","src":"4605:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4590:3:54","nodeType":"YulIdentifier","src":"4590:3:54"},"nativeSrc":"4590:18:54","nodeType":"YulFunctionCall","src":"4590:18:54"},{"name":"value3","nativeSrc":"4610:6:54","nodeType":"YulIdentifier","src":"4610:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4583:6:54","nodeType":"YulIdentifier","src":"4583:6:54"},"nativeSrc":"4583:34:54","nodeType":"YulFunctionCall","src":"4583:34:54"},"nativeSrc":"4583:34:54","nodeType":"YulExpressionStatement","src":"4583:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4643:9:54","nodeType":"YulIdentifier","src":"4643:9:54"},{"kind":"number","nativeSrc":"4654:3:54","nodeType":"YulLiteral","src":"4654:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4639:3:54","nodeType":"YulIdentifier","src":"4639:3:54"},"nativeSrc":"4639:19:54","nodeType":"YulFunctionCall","src":"4639:19:54"},{"name":"value2","nativeSrc":"4660:6:54","nodeType":"YulIdentifier","src":"4660:6:54"},{"name":"value3","nativeSrc":"4668:6:54","nodeType":"YulIdentifier","src":"4668:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"4626:12:54","nodeType":"YulIdentifier","src":"4626:12:54"},"nativeSrc":"4626:49:54","nodeType":"YulFunctionCall","src":"4626:49:54"},"nativeSrc":"4626:49:54","nodeType":"YulExpressionStatement","src":"4626:49:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4699:9:54","nodeType":"YulIdentifier","src":"4699:9:54"},{"name":"value3","nativeSrc":"4710:6:54","nodeType":"YulIdentifier","src":"4710:6:54"}],"functionName":{"name":"add","nativeSrc":"4695:3:54","nodeType":"YulIdentifier","src":"4695:3:54"},"nativeSrc":"4695:22:54","nodeType":"YulFunctionCall","src":"4695:22:54"},{"kind":"number","nativeSrc":"4719:3:54","nodeType":"YulLiteral","src":"4719:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4691:3:54","nodeType":"YulIdentifier","src":"4691:3:54"},"nativeSrc":"4691:32:54","nodeType":"YulFunctionCall","src":"4691:32:54"},{"kind":"number","nativeSrc":"4725:1:54","nodeType":"YulLiteral","src":"4725:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4684:6:54","nodeType":"YulIdentifier","src":"4684:6:54"},"nativeSrc":"4684:43:54","nodeType":"YulFunctionCall","src":"4684:43:54"},"nativeSrc":"4684:43:54","nodeType":"YulExpressionStatement","src":"4684:43:54"},{"nativeSrc":"4736:122:54","nodeType":"YulAssignment","src":"4736:122:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4752:9:54","nodeType":"YulIdentifier","src":"4752:9:54"},{"arguments":[{"arguments":[{"name":"value3","nativeSrc":"4771:6:54","nodeType":"YulIdentifier","src":"4771:6:54"},{"kind":"number","nativeSrc":"4779:2:54","nodeType":"YulLiteral","src":"4779:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4767:3:54","nodeType":"YulIdentifier","src":"4767:3:54"},"nativeSrc":"4767:15:54","nodeType":"YulFunctionCall","src":"4767:15:54"},{"kind":"number","nativeSrc":"4784:66:54","nodeType":"YulLiteral","src":"4784:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4763:3:54","nodeType":"YulIdentifier","src":"4763:3:54"},"nativeSrc":"4763:88:54","nodeType":"YulFunctionCall","src":"4763:88:54"}],"functionName":{"name":"add","nativeSrc":"4748:3:54","nodeType":"YulIdentifier","src":"4748:3:54"},"nativeSrc":"4748:104:54","nodeType":"YulFunctionCall","src":"4748:104:54"},{"kind":"number","nativeSrc":"4854:3:54","nodeType":"YulLiteral","src":"4854:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4744:3:54","nodeType":"YulIdentifier","src":"4744:3:54"},"nativeSrc":"4744:114:54","nodeType":"YulFunctionCall","src":"4744:114:54"},"variableNames":[{"name":"tail","nativeSrc":"4736:4:54","nodeType":"YulIdentifier","src":"4736:4:54"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4191:673:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4323:9:54","nodeType":"YulTypedName","src":"4323:9:54","type":""},{"name":"value3","nativeSrc":"4334:6:54","nodeType":"YulTypedName","src":"4334:6:54","type":""},{"name":"value2","nativeSrc":"4342:6:54","nodeType":"YulTypedName","src":"4342:6:54","type":""},{"name":"value1","nativeSrc":"4350:6:54","nodeType":"YulTypedName","src":"4350:6:54","type":""},{"name":"value0","nativeSrc":"4358:6:54","nodeType":"YulTypedName","src":"4358:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4369:4:54","nodeType":"YulTypedName","src":"4369:4:54","type":""}],"src":"4191:673:54"},{"body":{"nativeSrc":"4935:184:54","nodeType":"YulBlock","src":"4935:184:54","statements":[{"nativeSrc":"4945:10:54","nodeType":"YulVariableDeclaration","src":"4945:10:54","value":{"kind":"number","nativeSrc":"4954:1:54","nodeType":"YulLiteral","src":"4954:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4949:1:54","nodeType":"YulTypedName","src":"4949:1:54","type":""}]},{"body":{"nativeSrc":"5014:63:54","nodeType":"YulBlock","src":"5014:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5039:3:54","nodeType":"YulIdentifier","src":"5039:3:54"},{"name":"i","nativeSrc":"5044:1:54","nodeType":"YulIdentifier","src":"5044:1:54"}],"functionName":{"name":"add","nativeSrc":"5035:3:54","nodeType":"YulIdentifier","src":"5035:3:54"},"nativeSrc":"5035:11:54","nodeType":"YulFunctionCall","src":"5035:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5058:3:54","nodeType":"YulIdentifier","src":"5058:3:54"},{"name":"i","nativeSrc":"5063:1:54","nodeType":"YulIdentifier","src":"5063:1:54"}],"functionName":{"name":"add","nativeSrc":"5054:3:54","nodeType":"YulIdentifier","src":"5054:3:54"},"nativeSrc":"5054:11:54","nodeType":"YulFunctionCall","src":"5054:11:54"}],"functionName":{"name":"mload","nativeSrc":"5048:5:54","nodeType":"YulIdentifier","src":"5048:5:54"},"nativeSrc":"5048:18:54","nodeType":"YulFunctionCall","src":"5048:18:54"}],"functionName":{"name":"mstore","nativeSrc":"5028:6:54","nodeType":"YulIdentifier","src":"5028:6:54"},"nativeSrc":"5028:39:54","nodeType":"YulFunctionCall","src":"5028:39:54"},"nativeSrc":"5028:39:54","nodeType":"YulExpressionStatement","src":"5028:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4975:1:54","nodeType":"YulIdentifier","src":"4975:1:54"},{"name":"length","nativeSrc":"4978:6:54","nodeType":"YulIdentifier","src":"4978:6:54"}],"functionName":{"name":"lt","nativeSrc":"4972:2:54","nodeType":"YulIdentifier","src":"4972:2:54"},"nativeSrc":"4972:13:54","nodeType":"YulFunctionCall","src":"4972:13:54"},"nativeSrc":"4964:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"4986:19:54","nodeType":"YulBlock","src":"4986:19:54","statements":[{"nativeSrc":"4988:15:54","nodeType":"YulAssignment","src":"4988:15:54","value":{"arguments":[{"name":"i","nativeSrc":"4997:1:54","nodeType":"YulIdentifier","src":"4997:1:54"},{"kind":"number","nativeSrc":"5000:2:54","nodeType":"YulLiteral","src":"5000:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4993:3:54","nodeType":"YulIdentifier","src":"4993:3:54"},"nativeSrc":"4993:10:54","nodeType":"YulFunctionCall","src":"4993:10:54"},"variableNames":[{"name":"i","nativeSrc":"4988:1:54","nodeType":"YulIdentifier","src":"4988:1:54"}]}]},"pre":{"nativeSrc":"4968:3:54","nodeType":"YulBlock","src":"4968:3:54","statements":[]},"src":"4964:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5097:3:54","nodeType":"YulIdentifier","src":"5097:3:54"},{"name":"length","nativeSrc":"5102:6:54","nodeType":"YulIdentifier","src":"5102:6:54"}],"functionName":{"name":"add","nativeSrc":"5093:3:54","nodeType":"YulIdentifier","src":"5093:3:54"},"nativeSrc":"5093:16:54","nodeType":"YulFunctionCall","src":"5093:16:54"},{"kind":"number","nativeSrc":"5111:1:54","nodeType":"YulLiteral","src":"5111:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5086:6:54","nodeType":"YulIdentifier","src":"5086:6:54"},"nativeSrc":"5086:27:54","nodeType":"YulFunctionCall","src":"5086:27:54"},"nativeSrc":"5086:27:54","nodeType":"YulExpressionStatement","src":"5086:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4869:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4913:3:54","nodeType":"YulTypedName","src":"4913:3:54","type":""},{"name":"dst","nativeSrc":"4918:3:54","nodeType":"YulTypedName","src":"4918:3:54","type":""},{"name":"length","nativeSrc":"4923:6:54","nodeType":"YulTypedName","src":"4923:6:54","type":""}],"src":"4869:250:54"},{"body":{"nativeSrc":"5513:423:54","nodeType":"YulBlock","src":"5513:423:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5530:3:54","nodeType":"YulIdentifier","src":"5530:3:54"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nativeSrc":"5535:25:54","nodeType":"YulLiteral","src":"5535:25:54","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nativeSrc":"5523:6:54","nodeType":"YulIdentifier","src":"5523:6:54"},"nativeSrc":"5523:38:54","nodeType":"YulFunctionCall","src":"5523:38:54"},"nativeSrc":"5523:38:54","nodeType":"YulExpressionStatement","src":"5523:38:54"},{"nativeSrc":"5570:27:54","nodeType":"YulVariableDeclaration","src":"5570:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"5590:6:54","nodeType":"YulIdentifier","src":"5590:6:54"}],"functionName":{"name":"mload","nativeSrc":"5584:5:54","nodeType":"YulIdentifier","src":"5584:5:54"},"nativeSrc":"5584:13:54","nodeType":"YulFunctionCall","src":"5584:13:54"},"variables":[{"name":"length","nativeSrc":"5574:6:54","nodeType":"YulTypedName","src":"5574:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5645:6:54","nodeType":"YulIdentifier","src":"5645:6:54"},{"kind":"number","nativeSrc":"5653:4:54","nodeType":"YulLiteral","src":"5653:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5641:3:54","nodeType":"YulIdentifier","src":"5641:3:54"},"nativeSrc":"5641:17:54","nodeType":"YulFunctionCall","src":"5641:17:54"},{"arguments":[{"name":"pos","nativeSrc":"5664:3:54","nodeType":"YulIdentifier","src":"5664:3:54"},{"kind":"number","nativeSrc":"5669:2:54","nodeType":"YulLiteral","src":"5669:2:54","type":"","value":"23"}],"functionName":{"name":"add","nativeSrc":"5660:3:54","nodeType":"YulIdentifier","src":"5660:3:54"},"nativeSrc":"5660:12:54","nodeType":"YulFunctionCall","src":"5660:12:54"},{"name":"length","nativeSrc":"5674:6:54","nodeType":"YulIdentifier","src":"5674:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5606:34:54","nodeType":"YulIdentifier","src":"5606:34:54"},"nativeSrc":"5606:75:54","nodeType":"YulFunctionCall","src":"5606:75:54"},"nativeSrc":"5606:75:54","nodeType":"YulExpressionStatement","src":"5606:75:54"},{"nativeSrc":"5690:26:54","nodeType":"YulVariableDeclaration","src":"5690:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"5704:3:54","nodeType":"YulIdentifier","src":"5704:3:54"},{"name":"length","nativeSrc":"5709:6:54","nodeType":"YulIdentifier","src":"5709:6:54"}],"functionName":{"name":"add","nativeSrc":"5700:3:54","nodeType":"YulIdentifier","src":"5700:3:54"},"nativeSrc":"5700:16:54","nodeType":"YulFunctionCall","src":"5700:16:54"},"variables":[{"name":"_1","nativeSrc":"5694:2:54","nodeType":"YulTypedName","src":"5694:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5736:2:54","nodeType":"YulIdentifier","src":"5736:2:54"},{"kind":"number","nativeSrc":"5740:2:54","nodeType":"YulLiteral","src":"5740:2:54","type":"","value":"23"}],"functionName":{"name":"add","nativeSrc":"5732:3:54","nodeType":"YulIdentifier","src":"5732:3:54"},"nativeSrc":"5732:11:54","nodeType":"YulFunctionCall","src":"5732:11:54"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nativeSrc":"5745:19:54","nodeType":"YulLiteral","src":"5745:19:54","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nativeSrc":"5725:6:54","nodeType":"YulIdentifier","src":"5725:6:54"},"nativeSrc":"5725:40:54","nodeType":"YulFunctionCall","src":"5725:40:54"},"nativeSrc":"5725:40:54","nodeType":"YulExpressionStatement","src":"5725:40:54"},{"nativeSrc":"5774:29:54","nodeType":"YulVariableDeclaration","src":"5774:29:54","value":{"arguments":[{"name":"value1","nativeSrc":"5796:6:54","nodeType":"YulIdentifier","src":"5796:6:54"}],"functionName":{"name":"mload","nativeSrc":"5790:5:54","nodeType":"YulIdentifier","src":"5790:5:54"},"nativeSrc":"5790:13:54","nodeType":"YulFunctionCall","src":"5790:13:54"},"variables":[{"name":"length_1","nativeSrc":"5778:8:54","nodeType":"YulTypedName","src":"5778:8:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"5851:6:54","nodeType":"YulIdentifier","src":"5851:6:54"},{"kind":"number","nativeSrc":"5859:4:54","nodeType":"YulLiteral","src":"5859:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5847:3:54","nodeType":"YulIdentifier","src":"5847:3:54"},"nativeSrc":"5847:17:54","nodeType":"YulFunctionCall","src":"5847:17:54"},{"arguments":[{"name":"_1","nativeSrc":"5870:2:54","nodeType":"YulIdentifier","src":"5870:2:54"},{"kind":"number","nativeSrc":"5874:2:54","nodeType":"YulLiteral","src":"5874:2:54","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"5866:3:54","nodeType":"YulIdentifier","src":"5866:3:54"},"nativeSrc":"5866:11:54","nodeType":"YulFunctionCall","src":"5866:11:54"},{"name":"length_1","nativeSrc":"5879:8:54","nodeType":"YulIdentifier","src":"5879:8:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5812:34:54","nodeType":"YulIdentifier","src":"5812:34:54"},"nativeSrc":"5812:76:54","nodeType":"YulFunctionCall","src":"5812:76:54"},"nativeSrc":"5812:76:54","nodeType":"YulExpressionStatement","src":"5812:76:54"},{"nativeSrc":"5897:33:54","nodeType":"YulAssignment","src":"5897:33:54","value":{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"5912:2:54","nodeType":"YulIdentifier","src":"5912:2:54"},{"name":"length_1","nativeSrc":"5916:8:54","nodeType":"YulIdentifier","src":"5916:8:54"}],"functionName":{"name":"add","nativeSrc":"5908:3:54","nodeType":"YulIdentifier","src":"5908:3:54"},"nativeSrc":"5908:17:54","nodeType":"YulFunctionCall","src":"5908:17:54"},{"kind":"number","nativeSrc":"5927:2:54","nodeType":"YulLiteral","src":"5927:2:54","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"5904:3:54","nodeType":"YulIdentifier","src":"5904:3:54"},"nativeSrc":"5904:26:54","nodeType":"YulFunctionCall","src":"5904:26:54"},"variableNames":[{"name":"end","nativeSrc":"5897:3:54","nodeType":"YulIdentifier","src":"5897:3:54"}]}]},"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":"5124:812:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5481:3:54","nodeType":"YulTypedName","src":"5481:3:54","type":""},{"name":"value1","nativeSrc":"5486:6:54","nodeType":"YulTypedName","src":"5486:6:54","type":""},{"name":"value0","nativeSrc":"5494:6:54","nodeType":"YulTypedName","src":"5494:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5505:3:54","nodeType":"YulTypedName","src":"5505:3:54","type":""}],"src":"5124:812:54"},{"body":{"nativeSrc":"6062:334:54","nodeType":"YulBlock","src":"6062:334:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6079:9:54","nodeType":"YulIdentifier","src":"6079:9:54"},{"kind":"number","nativeSrc":"6090:2:54","nodeType":"YulLiteral","src":"6090:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6072:6:54","nodeType":"YulIdentifier","src":"6072:6:54"},"nativeSrc":"6072:21:54","nodeType":"YulFunctionCall","src":"6072:21:54"},"nativeSrc":"6072:21:54","nodeType":"YulExpressionStatement","src":"6072:21:54"},{"nativeSrc":"6102:27:54","nodeType":"YulVariableDeclaration","src":"6102:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"6122:6:54","nodeType":"YulIdentifier","src":"6122:6:54"}],"functionName":{"name":"mload","nativeSrc":"6116:5:54","nodeType":"YulIdentifier","src":"6116:5:54"},"nativeSrc":"6116:13:54","nodeType":"YulFunctionCall","src":"6116:13:54"},"variables":[{"name":"length","nativeSrc":"6106:6:54","nodeType":"YulTypedName","src":"6106:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6149:9:54","nodeType":"YulIdentifier","src":"6149:9:54"},{"kind":"number","nativeSrc":"6160:2:54","nodeType":"YulLiteral","src":"6160:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6145:3:54","nodeType":"YulIdentifier","src":"6145:3:54"},"nativeSrc":"6145:18:54","nodeType":"YulFunctionCall","src":"6145:18:54"},{"name":"length","nativeSrc":"6165:6:54","nodeType":"YulIdentifier","src":"6165:6:54"}],"functionName":{"name":"mstore","nativeSrc":"6138:6:54","nodeType":"YulIdentifier","src":"6138:6:54"},"nativeSrc":"6138:34:54","nodeType":"YulFunctionCall","src":"6138:34:54"},"nativeSrc":"6138:34:54","nodeType":"YulExpressionStatement","src":"6138:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"6220:6:54","nodeType":"YulIdentifier","src":"6220:6:54"},{"kind":"number","nativeSrc":"6228:2:54","nodeType":"YulLiteral","src":"6228:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6216:3:54","nodeType":"YulIdentifier","src":"6216:3:54"},"nativeSrc":"6216:15:54","nodeType":"YulFunctionCall","src":"6216:15:54"},{"arguments":[{"name":"headStart","nativeSrc":"6237:9:54","nodeType":"YulIdentifier","src":"6237:9:54"},{"kind":"number","nativeSrc":"6248:2:54","nodeType":"YulLiteral","src":"6248:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6233:3:54","nodeType":"YulIdentifier","src":"6233:3:54"},"nativeSrc":"6233:18:54","nodeType":"YulFunctionCall","src":"6233:18:54"},{"name":"length","nativeSrc":"6253:6:54","nodeType":"YulIdentifier","src":"6253:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6181:34:54","nodeType":"YulIdentifier","src":"6181:34:54"},"nativeSrc":"6181:79:54","nodeType":"YulFunctionCall","src":"6181:79:54"},"nativeSrc":"6181:79:54","nodeType":"YulExpressionStatement","src":"6181:79:54"},{"nativeSrc":"6269:121:54","nodeType":"YulAssignment","src":"6269:121:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6285:9:54","nodeType":"YulIdentifier","src":"6285:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6304:6:54","nodeType":"YulIdentifier","src":"6304:6:54"},{"kind":"number","nativeSrc":"6312:2:54","nodeType":"YulLiteral","src":"6312:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6300:3:54","nodeType":"YulIdentifier","src":"6300:3:54"},"nativeSrc":"6300:15:54","nodeType":"YulFunctionCall","src":"6300:15:54"},{"kind":"number","nativeSrc":"6317:66:54","nodeType":"YulLiteral","src":"6317:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"6296:3:54","nodeType":"YulIdentifier","src":"6296:3:54"},"nativeSrc":"6296:88:54","nodeType":"YulFunctionCall","src":"6296:88:54"}],"functionName":{"name":"add","nativeSrc":"6281:3:54","nodeType":"YulIdentifier","src":"6281:3:54"},"nativeSrc":"6281:104:54","nodeType":"YulFunctionCall","src":"6281:104:54"},{"kind":"number","nativeSrc":"6387:2:54","nodeType":"YulLiteral","src":"6387:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6277:3:54","nodeType":"YulIdentifier","src":"6277:3:54"},"nativeSrc":"6277:113:54","nodeType":"YulFunctionCall","src":"6277:113:54"},"variableNames":[{"name":"tail","nativeSrc":"6269:4:54","nodeType":"YulIdentifier","src":"6269:4:54"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5941:455:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6031:9:54","nodeType":"YulTypedName","src":"6031:9:54","type":""},{"name":"value0","nativeSrc":"6042:6:54","nodeType":"YulTypedName","src":"6042:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6053:4:54","nodeType":"YulTypedName","src":"6053:4:54","type":""}],"src":"5941:455:54"},{"body":{"nativeSrc":"6433:152:54","nodeType":"YulBlock","src":"6433:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6450:1:54","nodeType":"YulLiteral","src":"6450:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6453:77:54","nodeType":"YulLiteral","src":"6453:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6443:6:54","nodeType":"YulIdentifier","src":"6443:6:54"},"nativeSrc":"6443:88:54","nodeType":"YulFunctionCall","src":"6443:88:54"},"nativeSrc":"6443:88:54","nodeType":"YulExpressionStatement","src":"6443:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6547:1:54","nodeType":"YulLiteral","src":"6547:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"6550:4:54","nodeType":"YulLiteral","src":"6550:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6540:6:54","nodeType":"YulIdentifier","src":"6540:6:54"},"nativeSrc":"6540:15:54","nodeType":"YulFunctionCall","src":"6540:15:54"},"nativeSrc":"6540:15:54","nodeType":"YulExpressionStatement","src":"6540:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6571:1:54","nodeType":"YulLiteral","src":"6571:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6574:4:54","nodeType":"YulLiteral","src":"6574:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6564:6:54","nodeType":"YulIdentifier","src":"6564:6:54"},"nativeSrc":"6564:15:54","nodeType":"YulFunctionCall","src":"6564:15:54"},"nativeSrc":"6564:15:54","nodeType":"YulExpressionStatement","src":"6564:15:54"}]},"name":"panic_error_0x11","nativeSrc":"6401:184:54","nodeType":"YulFunctionDefinition","src":"6401:184:54"},{"body":{"nativeSrc":"6642:116:54","nodeType":"YulBlock","src":"6642:116:54","statements":[{"nativeSrc":"6652:20:54","nodeType":"YulAssignment","src":"6652:20:54","value":{"arguments":[{"name":"x","nativeSrc":"6667:1:54","nodeType":"YulIdentifier","src":"6667:1:54"},{"name":"y","nativeSrc":"6670:1:54","nodeType":"YulIdentifier","src":"6670:1:54"}],"functionName":{"name":"mul","nativeSrc":"6663:3:54","nodeType":"YulIdentifier","src":"6663:3:54"},"nativeSrc":"6663:9:54","nodeType":"YulFunctionCall","src":"6663:9:54"},"variableNames":[{"name":"product","nativeSrc":"6652:7:54","nodeType":"YulIdentifier","src":"6652:7:54"}]},{"body":{"nativeSrc":"6730:22:54","nodeType":"YulBlock","src":"6730:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6732:16:54","nodeType":"YulIdentifier","src":"6732:16:54"},"nativeSrc":"6732:18:54","nodeType":"YulFunctionCall","src":"6732:18:54"},"nativeSrc":"6732:18:54","nodeType":"YulExpressionStatement","src":"6732:18:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"6701:1:54","nodeType":"YulIdentifier","src":"6701:1:54"}],"functionName":{"name":"iszero","nativeSrc":"6694:6:54","nodeType":"YulIdentifier","src":"6694:6:54"},"nativeSrc":"6694:9:54","nodeType":"YulFunctionCall","src":"6694:9:54"},{"arguments":[{"name":"y","nativeSrc":"6708:1:54","nodeType":"YulIdentifier","src":"6708:1:54"},{"arguments":[{"name":"product","nativeSrc":"6715:7:54","nodeType":"YulIdentifier","src":"6715:7:54"},{"name":"x","nativeSrc":"6724:1:54","nodeType":"YulIdentifier","src":"6724:1:54"}],"functionName":{"name":"div","nativeSrc":"6711:3:54","nodeType":"YulIdentifier","src":"6711:3:54"},"nativeSrc":"6711:15:54","nodeType":"YulFunctionCall","src":"6711:15:54"}],"functionName":{"name":"eq","nativeSrc":"6705:2:54","nodeType":"YulIdentifier","src":"6705:2:54"},"nativeSrc":"6705:22:54","nodeType":"YulFunctionCall","src":"6705:22:54"}],"functionName":{"name":"or","nativeSrc":"6691:2:54","nodeType":"YulIdentifier","src":"6691:2:54"},"nativeSrc":"6691:37:54","nodeType":"YulFunctionCall","src":"6691:37:54"}],"functionName":{"name":"iszero","nativeSrc":"6684:6:54","nodeType":"YulIdentifier","src":"6684:6:54"},"nativeSrc":"6684:45:54","nodeType":"YulFunctionCall","src":"6684:45:54"},"nativeSrc":"6681:71:54","nodeType":"YulIf","src":"6681:71:54"}]},"name":"checked_mul_t_uint256","nativeSrc":"6590:168:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6621:1:54","nodeType":"YulTypedName","src":"6621:1:54","type":""},{"name":"y","nativeSrc":"6624:1:54","nodeType":"YulTypedName","src":"6624:1:54","type":""}],"returnVariables":[{"name":"product","nativeSrc":"6630:7:54","nodeType":"YulTypedName","src":"6630:7:54","type":""}],"src":"6590:168:54"},{"body":{"nativeSrc":"6811:77:54","nodeType":"YulBlock","src":"6811:77:54","statements":[{"nativeSrc":"6821:16:54","nodeType":"YulAssignment","src":"6821:16:54","value":{"arguments":[{"name":"x","nativeSrc":"6832:1:54","nodeType":"YulIdentifier","src":"6832:1:54"},{"name":"y","nativeSrc":"6835:1:54","nodeType":"YulIdentifier","src":"6835:1:54"}],"functionName":{"name":"add","nativeSrc":"6828:3:54","nodeType":"YulIdentifier","src":"6828:3:54"},"nativeSrc":"6828:9:54","nodeType":"YulFunctionCall","src":"6828:9:54"},"variableNames":[{"name":"sum","nativeSrc":"6821:3:54","nodeType":"YulIdentifier","src":"6821:3:54"}]},{"body":{"nativeSrc":"6860:22:54","nodeType":"YulBlock","src":"6860:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6862:16:54","nodeType":"YulIdentifier","src":"6862:16:54"},"nativeSrc":"6862:18:54","nodeType":"YulFunctionCall","src":"6862:18:54"},"nativeSrc":"6862:18:54","nodeType":"YulExpressionStatement","src":"6862:18:54"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6852:1:54","nodeType":"YulIdentifier","src":"6852:1:54"},{"name":"sum","nativeSrc":"6855:3:54","nodeType":"YulIdentifier","src":"6855:3:54"}],"functionName":{"name":"gt","nativeSrc":"6849:2:54","nodeType":"YulIdentifier","src":"6849:2:54"},"nativeSrc":"6849:10:54","nodeType":"YulFunctionCall","src":"6849:10:54"},"nativeSrc":"6846:36:54","nodeType":"YulIf","src":"6846:36:54"}]},"name":"checked_add_t_uint256","nativeSrc":"6763:125:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6794:1:54","nodeType":"YulTypedName","src":"6794:1:54","type":""},{"name":"y","nativeSrc":"6797:1:54","nodeType":"YulTypedName","src":"6797:1:54","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6803:3:54","nodeType":"YulTypedName","src":"6803:3:54","type":""}],"src":"6763:125:54"},{"body":{"nativeSrc":"6925:152:54","nodeType":"YulBlock","src":"6925:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6942:1:54","nodeType":"YulLiteral","src":"6942:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6945:77:54","nodeType":"YulLiteral","src":"6945:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6935:6:54","nodeType":"YulIdentifier","src":"6935:6:54"},"nativeSrc":"6935:88:54","nodeType":"YulFunctionCall","src":"6935:88:54"},"nativeSrc":"6935:88:54","nodeType":"YulExpressionStatement","src":"6935:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7039:1:54","nodeType":"YulLiteral","src":"7039:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"7042:4:54","nodeType":"YulLiteral","src":"7042:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"7032:6:54","nodeType":"YulIdentifier","src":"7032:6:54"},"nativeSrc":"7032:15:54","nodeType":"YulFunctionCall","src":"7032:15:54"},"nativeSrc":"7032:15:54","nodeType":"YulExpressionStatement","src":"7032:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7063:1:54","nodeType":"YulLiteral","src":"7063:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7066:4:54","nodeType":"YulLiteral","src":"7066:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7056:6:54","nodeType":"YulIdentifier","src":"7056:6:54"},"nativeSrc":"7056:15:54","nodeType":"YulFunctionCall","src":"7056:15:54"},"nativeSrc":"7056:15:54","nodeType":"YulExpressionStatement","src":"7056:15:54"}]},"name":"panic_error_0x41","nativeSrc":"6893:184:54","nodeType":"YulFunctionDefinition","src":"6893:184:54"},{"body":{"nativeSrc":"7114:152:54","nodeType":"YulBlock","src":"7114:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7131:1:54","nodeType":"YulLiteral","src":"7131:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7134:77:54","nodeType":"YulLiteral","src":"7134:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7124:6:54","nodeType":"YulIdentifier","src":"7124:6:54"},"nativeSrc":"7124:88:54","nodeType":"YulFunctionCall","src":"7124:88:54"},"nativeSrc":"7124:88:54","nodeType":"YulExpressionStatement","src":"7124:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7228:1:54","nodeType":"YulLiteral","src":"7228:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"7231:4:54","nodeType":"YulLiteral","src":"7231:4:54","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7221:6:54","nodeType":"YulIdentifier","src":"7221:6:54"},"nativeSrc":"7221:15:54","nodeType":"YulFunctionCall","src":"7221:15:54"},"nativeSrc":"7221:15:54","nodeType":"YulExpressionStatement","src":"7221:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7252:1:54","nodeType":"YulLiteral","src":"7252:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"7255:4:54","nodeType":"YulLiteral","src":"7255:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7245:6:54","nodeType":"YulIdentifier","src":"7245:6:54"},"nativeSrc":"7245:15:54","nodeType":"YulFunctionCall","src":"7245:15:54"},"nativeSrc":"7245:15:54","nodeType":"YulExpressionStatement","src":"7245:15:54"}]},"name":"panic_error_0x32","nativeSrc":"7082:184:54","nodeType":"YulFunctionDefinition","src":"7082:184:54"},{"body":{"nativeSrc":"7318:149:54","nodeType":"YulBlock","src":"7318:149:54","statements":[{"body":{"nativeSrc":"7345:22:54","nodeType":"YulBlock","src":"7345:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7347:16:54","nodeType":"YulIdentifier","src":"7347:16:54"},"nativeSrc":"7347:18:54","nodeType":"YulFunctionCall","src":"7347:18:54"},"nativeSrc":"7347:18:54","nodeType":"YulExpressionStatement","src":"7347:18:54"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"7338:5:54","nodeType":"YulIdentifier","src":"7338:5:54"}],"functionName":{"name":"iszero","nativeSrc":"7331:6:54","nodeType":"YulIdentifier","src":"7331:6:54"},"nativeSrc":"7331:13:54","nodeType":"YulFunctionCall","src":"7331:13:54"},"nativeSrc":"7328:39:54","nodeType":"YulIf","src":"7328:39:54"},{"nativeSrc":"7376:85:54","nodeType":"YulAssignment","src":"7376:85:54","value":{"arguments":[{"name":"value","nativeSrc":"7387:5:54","nodeType":"YulIdentifier","src":"7387:5:54"},{"kind":"number","nativeSrc":"7394:66:54","nodeType":"YulLiteral","src":"7394:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nativeSrc":"7383:3:54","nodeType":"YulIdentifier","src":"7383:3:54"},"nativeSrc":"7383:78:54","nodeType":"YulFunctionCall","src":"7383:78:54"},"variableNames":[{"name":"ret","nativeSrc":"7376:3:54","nodeType":"YulIdentifier","src":"7376:3:54"}]}]},"name":"decrement_t_uint256","nativeSrc":"7271:196:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7300:5:54","nodeType":"YulTypedName","src":"7300:5:54","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"7310:3:54","nodeType":"YulTypedName","src":"7310:3:54","type":""}],"src":"7271:196:54"},{"body":{"nativeSrc":"7646:182:54","nodeType":"YulBlock","src":"7646:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7663:9:54","nodeType":"YulIdentifier","src":"7663:9:54"},{"kind":"number","nativeSrc":"7674:2:54","nodeType":"YulLiteral","src":"7674:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7656:6:54","nodeType":"YulIdentifier","src":"7656:6:54"},"nativeSrc":"7656:21:54","nodeType":"YulFunctionCall","src":"7656:21:54"},"nativeSrc":"7656:21:54","nodeType":"YulExpressionStatement","src":"7656:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7697:9:54","nodeType":"YulIdentifier","src":"7697:9:54"},{"kind":"number","nativeSrc":"7708:2:54","nodeType":"YulLiteral","src":"7708:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7693:3:54","nodeType":"YulIdentifier","src":"7693:3:54"},"nativeSrc":"7693:18:54","nodeType":"YulFunctionCall","src":"7693:18:54"},{"kind":"number","nativeSrc":"7713:2:54","nodeType":"YulLiteral","src":"7713:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7686:6:54","nodeType":"YulIdentifier","src":"7686:6:54"},"nativeSrc":"7686:30:54","nodeType":"YulFunctionCall","src":"7686:30:54"},"nativeSrc":"7686:30:54","nodeType":"YulExpressionStatement","src":"7686:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7736:9:54","nodeType":"YulIdentifier","src":"7736:9:54"},{"kind":"number","nativeSrc":"7747:2:54","nodeType":"YulLiteral","src":"7747:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7732:3:54","nodeType":"YulIdentifier","src":"7732:3:54"},"nativeSrc":"7732:18:54","nodeType":"YulFunctionCall","src":"7732:18:54"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nativeSrc":"7752:34:54","nodeType":"YulLiteral","src":"7752:34:54","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nativeSrc":"7725:6:54","nodeType":"YulIdentifier","src":"7725:6:54"},"nativeSrc":"7725:62:54","nodeType":"YulFunctionCall","src":"7725:62:54"},"nativeSrc":"7725:62:54","nodeType":"YulExpressionStatement","src":"7725:62:54"},{"nativeSrc":"7796:26:54","nodeType":"YulAssignment","src":"7796:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"7808:9:54","nodeType":"YulIdentifier","src":"7808:9:54"},{"kind":"number","nativeSrc":"7819:2:54","nodeType":"YulLiteral","src":"7819:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7804:3:54","nodeType":"YulIdentifier","src":"7804:3:54"},"nativeSrc":"7804:18:54","nodeType":"YulFunctionCall","src":"7804:18:54"},"variableNames":[{"name":"tail","nativeSrc":"7796:4:54","nodeType":"YulIdentifier","src":"7796:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7472:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7623:9:54","nodeType":"YulTypedName","src":"7623:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7637:4:54","nodeType":"YulTypedName","src":"7637:4:54","type":""}],"src":"7472:356:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        value3 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_addresst_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\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        mstore(pos, and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        calldatacopy(add(pos, 20), value1, value2)\n        let _1 := add(add(pos, value2), 20)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\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    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 96)\n        mstore(add(headStart, 96), value3)\n        calldatacopy(add(headStart, 128), value2, value3)\n        mstore(add(add(headStart, value3), 128), 0)\n        tail := add(add(headStart, and(add(value3, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 128)\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    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        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100c95760003560e01c8063545f7a321161008157806391d148541161005b57806391d148541461019b578063a217fddf146101df578063d547741f146101e757600080fd5b8063545f7a3214610162578063584f6b601461017557806382bfd0f01461018857600080fd5b8063248a9ca3116100b2578063248a9ca3146101095780632f2ff15d1461013a57806336568abe1461014f57600080fd5b806301ffc9a7146100ce57806318c5e8ab146100f6575b600080fd5b6100e16100dc366004610a74565b6101fa565b60405190151581526020015b60405180910390f35b6100e1610104366004610b28565b610293565b61012c610117366004610b7b565b60009081526020819052604090206001015490565b6040519081526020016100ed565b61014d610148366004610b94565b610368565b005b61014d61015d366004610b94565b610392565b61014d610170366004610bc0565b61044a565b61014d610183366004610bc0565b6104c7565b6100e1610196366004610c25565b610535565b6100e16101a9366004610b94565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61012c600081565b61014d6101f5366004610b94565b61059f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061028d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000803384846040516020016102ab93929190610c86565b60408051601f198184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff8a16825290935291205490915060ff1615610302576001915050610361565b6000848460405160200161031893929190610c86565b60408051808303601f190181529181528151602092830120600090815280835281812073ffffffffffffffffffffffffffffffffffffffff8916825290925290205460ff169150505b9392505050565b600082815260208190526040902060010154610383816105c4565b61038d83836105d1565b505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461043c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61044682826106c1565b5050565b600084848460405160200161046193929190610c86565b604051602081830303815290604052805190602001209050610483818361059f565b7f55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2828686866040516104b89493929190610cc5565b60405180910390a15050505050565b60008484846040516020016104de93929190610c86565b6040516020818303038152906040528051906020012090506105008183610368565b7f69c5ce2d658fea352a2464f87ffbe1f09746c918a91da0994044c3767d641b3f828686866040516104b89493929190610cc5565b60008084848460405160200161054d93929190610c86565b60408051601f198184030181529181528151602092830120600081815280845282812073ffffffffffffffffffffffffffffffffffffffff8b16825290935291205490915060ff169695505050505050565b6000828152602081905260409020600101546105ba816105c4565b61038d83836106c1565b6105ce8133610778565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166104465760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556106633390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156104465760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610446576107b681610812565b6107c1836020610831565b6040516020016107d2929190610d43565b60408051601f19818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261043391600401610dc4565b606061028d73ffffffffffffffffffffffffffffffffffffffff831660145b60606000610840836002610e26565b61084b906002610e3d565b67ffffffffffffffff81111561086357610863610e50565b6040519080825280601f01601f19166020018201604052801561088d576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106108c4576108c4610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061092757610927610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610963846002610e26565b61096e906001610e3d565b90505b6001811115610a0b577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106109af576109af610e7f565b1a60f81b8282815181106109c5576109c5610e7f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610a0481610eae565b9050610971565b508315610361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610433565b600060208284031215610a8657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461036157600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610ada57600080fd5b919050565b60008083601f840112610af157600080fd5b50813567ffffffffffffffff811115610b0957600080fd5b602083019150836020828501011115610b2157600080fd5b9250929050565b600080600060408486031215610b3d57600080fd5b610b4684610ab6565b9250602084013567ffffffffffffffff811115610b6257600080fd5b610b6e86828701610adf565b9497909650939450505050565b600060208284031215610b8d57600080fd5b5035919050565b60008060408385031215610ba757600080fd5b82359150610bb760208401610ab6565b90509250929050565b60008060008060608587031215610bd657600080fd5b610bdf85610ab6565b9350602085013567ffffffffffffffff811115610bfb57600080fd5b610c0787828801610adf565b9094509250610c1a905060408601610ab6565b905092959194509250565b60008060008060608587031215610c3b57600080fd5b610c4485610ab6565b9350610c5260208601610ab6565b9250604085013567ffffffffffffffff811115610c6e57600080fd5b610c7a87828801610adf565b95989497509550505050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b168152818360148301376000910160140190815292915050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060606040830152826060830152828460808401376000608084840101526080601f19601f850116830101905095945050505050565b60005b83811015610d3a578181015183820152602001610d22565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610d7b816017850160208801610d1f565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351610db8816028840160208801610d1f565b01602801949350505050565b6020815260008251806020840152610de3816040850160208701610d1f565b601f01601f19169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761028d5761028d610df7565b8082018082111561028d5761028d610df7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081610ebd57610ebd610df7565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220a6052000a243f1fa66363f0f0a0d702386084ba1cb5d78f17dbc24f77d046bfb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x545F7A32 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0x91D14854 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x1E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x545F7A32 EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x584F6B60 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x82BFD0F0 EQ PUSH2 0x188 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x14F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x18C5E8AB EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0xA74 JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE1 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0xB28 JUMP JUMPDEST PUSH2 0x293 JUMP JUMPDEST PUSH2 0x12C PUSH2 0x117 CALLDATASIZE PUSH1 0x4 PUSH2 0xB7B 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 SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xED JUMP JUMPDEST PUSH2 0x14D PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14D PUSH2 0x15D CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x170 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC0 JUMP JUMPDEST PUSH2 0x44A JUMP JUMPDEST PUSH2 0x14D PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0xBC0 JUMP JUMPDEST PUSH2 0x4C7 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0xC25 JUMP JUMPDEST PUSH2 0x535 JUMP JUMPDEST PUSH2 0xE1 PUSH2 0x1A9 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x12C PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x1F5 CALLDATASIZE PUSH1 0x4 PUSH2 0xB94 JUMP JUMPDEST PUSH2 0x59F JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x28D JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE DUP1 DUP5 MSTORE DUP3 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x302 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x318 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 SWAP1 DUP2 MSTORE DUP1 DUP4 MSTORE DUP2 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND DUP3 MSTORE SWAP1 SWAP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND 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 0x383 DUP2 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x38D DUP4 DUP4 PUSH2 0x5D1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND CALLER EQ PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x446 DUP3 DUP3 PUSH2 0x6C1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x461 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 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 0x483 DUP2 DUP4 PUSH2 0x59F JUMP JUMPDEST PUSH32 0x55426A61E90AC7D7D1FC886B67B420ADE8C8B535E68D655394BC271E3A12B8E2 DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x4B8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC5 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 0x4DE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 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 0x500 DUP2 DUP4 PUSH2 0x368 JUMP JUMPDEST PUSH32 0x69C5CE2D658FEA352A2464F87FFBE1F09746C918A91DA0994044C3767D641B3F DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x4B8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xCC5 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x54D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xC86 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE DUP1 DUP5 MSTORE DUP3 DUP2 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP3 MSTORE SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x5BA DUP2 PUSH2 0x5C4 JUMP JUMPDEST PUSH2 0x38D DUP4 DUP4 PUSH2 0x6C1 JUMP JUMPDEST PUSH2 0x5CE DUP2 CALLER PUSH2 0x778 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x446 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x663 CALLER SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x446 JUMPI PUSH2 0x7B6 DUP2 PUSH2 0x812 JUMP JUMPDEST PUSH2 0x7C1 DUP4 PUSH1 0x20 PUSH2 0x831 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7D2 SWAP3 SWAP2 SWAP1 PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP3 MSTORE PUSH2 0x433 SWAP2 PUSH1 0x4 ADD PUSH2 0xDC4 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x28D PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x840 DUP4 PUSH1 0x2 PUSH2 0xE26 JUMP JUMPDEST PUSH2 0x84B SWAP1 PUSH1 0x2 PUSH2 0xE3D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0xE50 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 0x88D JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x8C4 JUMPI PUSH2 0x8C4 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x927 JUMPI PUSH2 0x927 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x963 DUP5 PUSH1 0x2 PUSH2 0xE26 JUMP JUMPDEST PUSH2 0x96E SWAP1 PUSH1 0x1 PUSH2 0xE3D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xA0B JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x9AF JUMPI PUSH2 0x9AF PUSH2 0xE7F JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x9C5 JUMPI PUSH2 0x9C5 PUSH2 0xE7F JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0xA04 DUP2 PUSH2 0xEAE JUMP JUMPDEST SWAP1 POP PUSH2 0x971 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x361 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x433 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xADA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xAF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xB21 JUMPI 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 0xB3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB46 DUP5 PUSH2 0xAB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6E DUP7 DUP3 DUP8 ADD PUSH2 0xADF JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xBA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0xBB7 PUSH1 0x20 DUP5 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xBD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBDF DUP6 PUSH2 0xAB6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC07 DUP8 DUP3 DUP9 ADD PUSH2 0xADF JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP PUSH2 0xC1A SWAP1 POP PUSH1 0x40 DUP7 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC44 DUP6 PUSH2 0xAB6 JUMP JUMPDEST SWAP4 POP PUSH2 0xC52 PUSH1 0x20 DUP7 ADD PUSH2 0xAB6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC7A DUP8 DUP3 DUP9 ADD PUSH2 0xADF JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 DUP5 PUSH1 0x60 SHL AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x14 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x14 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 PUSH1 0x60 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x80 DUP5 DUP5 ADD ADD MSTORE PUSH1 0x80 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP4 ADD ADD SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD3A JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD22 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xD7B DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD1F JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0xDB8 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xD1F JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xDE3 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xD1F JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x28D JUMPI PUSH2 0x28D PUSH2 0xDF7 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28D JUMPI PUSH2 0x28D PUSH2 0xDF7 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xEBD JUMPI PUSH2 0xEBD PUSH2 0xDF7 JUMP JUMPDEST POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 SDIV KECCAK256 STOP LOG2 NUMBER CALL STATICCALL PUSH7 0x363F0F0A0D7023 DUP7 ADDMOD 0x4B LOG1 0xCB TSTORE PUSH25 0xF17DBC24F77D046BFB64736F6C634300081900330000000000 ","sourceMap":"2815:4310:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:14;;;;;;:::i;:::-;;:::i;:::-;;;516:14:54;;509:22;491:41;;479:2;464:18;2606:202:14;;;;;;;;5898:389:32;;;;;;:::i;:::-;;:::i;4378:129:14:-;;;;;;:::i;:::-;4452:7;4478:12;;;;;;;;;;:22;;;;4378:129;;;;1918:25:54;;;1906:2;1891:18;4378:129:14;1772:177:54;4803:145:14;;;;;;:::i;:::-;;:::i;:::-;;5912:214;;;;;;:::i;:::-;;:::i;5061:357:32:-;;;;;;:::i;:::-;;:::i;4278:324::-;;;;;;:::i;:::-;;:::i;6844:279::-;;;;;;:::i;:::-;;:::i;2895:145:14:-;;;;;;:::i;:::-;2981:4;3004:12;;;;;;;;;;;:29;;;;;;;;;;;;;;;;2895:145;2027:49;;2072:4;2027:49;;5228:147;;;;;;:::i;:::-;;:::i;2606:202::-;2691:4;2714:47;;;2729:32;2714:47;;:87;;-1:-1:-1;952:25:21;937:40;;;;2765:36:14;2707:94;2606:202;-1:-1:-1;;2606:202:14:o;5898:389:32:-;5990:4;6006:12;6048:10;6060:11;;6031:41;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6031:41:32;;;;;;;;;6021:52;;6031:41;6021:52;;;;2981:4:14;3004:12;;;;;;;;;:29;;;;;;;;;;;6021:52:32;;-1:-1:-1;3004:29:14;;6084:197:32;;;6133:4;6126:11;;;;;6084:197;6210:1;6214:11;;6185:41;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;6185:41:32;;;;;;6175:52;;6185:41;6175:52;;;;2981:4:14;3004:12;;;;;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;;5898:389:32;;;;;;:::o;4803:145:14:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4916:25:::1;4927:4;4933:7;4916:10;:25::i;:::-;4803:145:::0;;;:::o;5912:214::-;6007:23;;;719:10:19;6007:23:14;5999:83;;;;;;;3977:2:54;5999:83:14;;;3959:21:54;4016:2;3996:18;;;3989:30;4055:34;4035:18;;;4028:62;4126:17;4106:18;;;4099:45;4161:19;;5999:83:14;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;5061:357:32:-;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;:::-;;;;-1:-1:-1;;7030:46:32;;;;;;;;;7020:57;;7030:46;7020:57;;;;2981:4:14;3004:12;;;;;;;;;:29;;;;;;;;;;;7020:57:32;;-1:-1:-1;3004:29:14;;7087::32;6844:279;-1:-1:-1;;;;;;6844:279:32:o;5228:147:14:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;3334:103::-:0;3400:30;3411:4;719:10:19;3400::14;:30::i;:::-;3334:103;:::o;7461:233::-;2981:4;3004:12;;;;;;;;;;;:29;;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;:29;;;;;;;;;;:36;;;;7614:4;7582:36;;;7664:12;719:10:19;;640:96;7664:12:14;7637:40;;7655:7;7637:40;;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;7865:234::-;2981:4;3004:12;;;;;;;;;;;:29;;;;;;;;;;;;;7944:149;;;8018:5;7986:12;;;;;;;;;;;:29;;;;;;;;;;;:37;;;;;;8042:40;719:10:19;;7986:12:14;;8042:40;;8018:5;8042:40;7865:234;;:::o;3718:479::-;2981:4;3004:12;;;;;;;;;;;:29;;;;;;;;;;;;;3801:390;;3989:28;4009:7;3989:19;:28::i;:::-;4088:38;4116:4;4123:2;4088:19;:38::i;:::-;3896:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:252:14;;;;;;;;;;3844:336;;;;;;;;:::i;2102:149:20:-;2160:13;2192:52;2204:22;;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;1635:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:20;;1613:47;;1670:15;:6;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;1695;:6;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;1725:9:20;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;1791:8;1800:5;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;;;;;;;;;;-1:-1:-1;1836:1:20;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:20;;1857:55;;;;;;;7674:2:54;1857:55:20;;;7656:21:54;;;7693:18;;;7686:30;7752:34;7732:18;;;7725:62;7804:18;;1857:55:20;7472:356:54;14:332;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:196;611:20;;671:42;660:54;;650:65;;640:93;;729:1;726;719:12;640:93;543:196;;;:::o;744:348::-;796:8;806:6;860:3;853:4;845:6;841:17;837:27;827:55;;878:1;875;868:12;827:55;-1:-1:-1;901:20:54;;944:18;933:30;;930:50;;;976:1;973;966:12;930:50;1013:4;1005:6;1001:17;989:29;;1065:3;1058:4;1049:6;1041;1037:19;1033:30;1030:39;1027:59;;;1082:1;1079;1072:12;1027:59;744:348;;;;;:::o;1097:485::-;1177:6;1185;1193;1246:2;1234:9;1225:7;1221:23;1217:32;1214:52;;;1262:1;1259;1252:12;1214:52;1285:29;1304:9;1285:29;:::i;:::-;1275:39;;1365:2;1354:9;1350:18;1337:32;1392:18;1384:6;1381:30;1378:50;;;1424:1;1421;1414:12;1378:50;1463:59;1514:7;1505:6;1494:9;1490:22;1463:59;:::i;:::-;1097:485;;1541:8;;-1:-1:-1;1437:85:54;;-1:-1:-1;;;;1097:485:54:o;1587:180::-;1646:6;1699:2;1687:9;1678:7;1674:23;1670:32;1667:52;;;1715:1;1712;1705:12;1667:52;-1:-1:-1;1738:23:54;;1587:180;-1:-1:-1;1587:180:54:o;1954:254::-;2022:6;2030;2083:2;2071:9;2062:7;2058:23;2054:32;2051:52;;;2099:1;2096;2089:12;2051:52;2135:9;2122:23;2112:33;;2164:38;2198:2;2187:9;2183:18;2164:38;:::i;:::-;2154:48;;1954:254;;;;;:::o;2213:559::-;2302:6;2310;2318;2326;2379:2;2367:9;2358:7;2354:23;2350:32;2347:52;;;2395:1;2392;2385:12;2347:52;2418:29;2437:9;2418:29;:::i;:::-;2408:39;;2498:2;2487:9;2483:18;2470:32;2525:18;2517:6;2514:30;2511:50;;;2557:1;2554;2547:12;2511:50;2596:59;2647:7;2638:6;2627:9;2623:22;2596:59;:::i;:::-;2674:8;;-1:-1:-1;2570:85:54;-1:-1:-1;2728:38:54;;-1:-1:-1;2762:2:54;2747:18;;2728:38;:::i;:::-;2718:48;;2213:559;;;;;;;:::o;2777:::-;2866:6;2874;2882;2890;2943:2;2931:9;2922:7;2918:23;2914:32;2911:52;;;2959:1;2956;2949:12;2911:52;2982:29;3001:9;2982:29;:::i;:::-;2972:39;;3030:38;3064:2;3053:9;3049:18;3030:38;:::i;:::-;3020:48;;3119:2;3108:9;3104:18;3091:32;3146:18;3138:6;3135:30;3132:50;;;3178:1;3175;3168:12;3132:50;3217:59;3268:7;3259:6;3248:9;3244:22;3217:59;:::i;:::-;2777:559;;;;-1:-1:-1;3295:8:54;-1:-1:-1;;;;2777:559:54:o;3341:429::-;3561:66;3552:6;3548:2;3544:15;3540:88;3535:3;3528:101;3673:6;3665;3660:2;3655:3;3651:12;3638:42;3510:3;3703:16;;3721:2;3699:25;3733:13;;;3699:25;3341:429;-1:-1:-1;;3341:429:54:o;4191:673::-;4369:4;4398:42;4479:2;4471:6;4467:15;4456:9;4449:34;4531:2;4523:6;4519:15;4514:2;4503:9;4499:18;4492:43;;4571:2;4566;4555:9;4551:18;4544:30;4610:6;4605:2;4594:9;4590:18;4583:34;4668:6;4660;4654:3;4643:9;4639:19;4626:49;4725:1;4719:3;4710:6;4699:9;4695:22;4691:32;4684:43;4854:3;-1:-1:-1;;4779:2:54;4771:6;4767:15;4763:88;4752:9;4748:104;4744:114;4736:122;;4191:673;;;;;;;:::o;4869:250::-;4954:1;4964:113;4978:6;4975:1;4972:13;4964:113;;;5054:11;;;5048:18;5035:11;;;5028:39;5000:2;4993:10;4964:113;;;-1:-1:-1;;5111:1:54;5093:16;;5086:27;4869:250::o;5124:812::-;5535:25;5530:3;5523:38;5505:3;5590:6;5584:13;5606:75;5674:6;5669:2;5664:3;5660:12;5653:4;5645:6;5641:17;5606:75;:::i;:::-;5745:19;5740:2;5700:16;;;5732:11;;;5725:40;5790:13;;5812:76;5790:13;5874:2;5866:11;;5859:4;5847:17;;5812:76;:::i;:::-;5908:17;5927:2;5904:26;;5124:812;-1:-1:-1;;;;5124:812:54:o;5941:455::-;6090:2;6079:9;6072:21;6053:4;6122:6;6116:13;6165:6;6160:2;6149:9;6145:18;6138:34;6181:79;6253:6;6248:2;6237:9;6233:18;6228:2;6220:6;6216:15;6181:79;:::i;:::-;6312:2;6300:15;-1:-1:-1;;6296:88:54;6281:104;;;;6387:2;6277:113;;5941:455;-1:-1:-1;;5941:455:54:o;6401:184::-;6453:77;6450:1;6443:88;6550:4;6547:1;6540:15;6574:4;6571:1;6564:15;6590:168;6663:9;;;6694;;6711:15;;;6705:22;;6691:37;6681:71;;6732:18;;:::i;6763:125::-;6828:9;;;6849:10;;;6846:36;;;6862:18;;:::i;6893:184::-;6945:77;6942:1;6935:88;7042:4;7039:1;7032:15;7066:4;7063:1;7056:15;7082:184;7134:77;7131:1;7124:88;7231:4;7228:1;7221:15;7255:4;7252:1;7245:15;7271:196;7310:3;7338:5;7328:39;;7347:18;;:::i;:::-;-1:-1:-1;7394:66:54;7383:78;;7271:196::o"},"gasEstimates":{"creation":{"codeDepositCost":"773000","executionCost":"29497","totalCost":"802497"},"external":{"DEFAULT_ADMIN_ROLE()":"239","getRoleAdmin(bytes32)":"2470","giveCallPermission(address,string,address)":"infinite","grantRole(bytes32,address)":"infinite","hasPermission(address,address,string)":"infinite","hasRole(bytes32,address)":"2637","isAllowedToCall(address,string)":"infinite","renounceRole(bytes32,address)":"28972","revokeCallPermission(address,string,address)":"infinite","revokeRole(bytes32,address)":"infinite","supportsInterface(bytes4)":"393"}},"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\":{\"contracts/Governance/AccessControlManager.sol\":\"AccessControlManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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 * ```\\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 * ```\\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.\\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\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"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.8.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.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 `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\",\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"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.8.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(\\n        uint256 x,\\n        uint256 y,\\n        uint256 denominator\\n    ) 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                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1);\\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(\\n        uint256 x,\\n        uint256 y,\\n        uint256 denominator,\\n        Rounding rounding\\n    ) 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 10, 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 * 8) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\"},\"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\"},\"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":3703,"contract":"contracts/Governance/AccessControlManager.sol:AccessControlManager","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)3698_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)3698_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)3698_storage"},"t_struct(RoleData)3698_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":3695,"contract":"contracts/Governance/AccessControlManager.sol:AccessControlManager","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":3697,"contract":"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}}},"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 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."},"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 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.\"},\"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\":{\"contracts/Governance/AccessControlledV8.sol\":\"AccessControlledV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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() external {\\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\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.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 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    /**\\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\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (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 * ```\\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 *\\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\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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     *\\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 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(\\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        (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 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\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"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\"},\"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\"},\"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":3190,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":3193,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":3677,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":3062,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":3182,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":2971,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":3050,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":8204,"contract":"contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)8389"},{"astId":8209,"contract":"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)8389":{"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}}},"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\":{\"contracts/Governance/IAccessControlManagerV8.sol\":\"IAccessControlManagerV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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\"},\"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}}},"contracts/Governance/TimelockV8.sol":{"TimelockV8":{"abi":[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"CancelTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldDelay","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"NewDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"QueueTransaction","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{"GRACE_PERIOD()":{"returns":{"_0":"The duration of the grace period, specified as a uint256 value."}},"MAXIMUM_DELAY()":{"returns":{"_0":"Maximum delay"}},"MINIMUM_DELAY()":{"returns":{"_0":"Minimum delay"}},"acceptAdmin()":{"custom:access":"Sender must be pending admin","custom:event":"Emit NewAdmin with old and new admin"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit CancelTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"}},"executeTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit ExecuteTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Result of function call"}},"queueTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit QueueTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Hash of the queued transaction"}},"setDelay(uint256)":{"custom:access":"Sender must be Timelock itself","custom:event":"Emit NewDelay with old and new delay","params":{"delay_":"The new delay period for the transaction queue"}},"setPendingAdmin(address)":{"custom:access":"Sender must be Timelock contract itself or admin","custom:event":"Emit NewPendingAdmin with new pending admin","params":{"pendingAdmin_":"Address of the proposed admin"}}},"title":"TimelockV8","version":1},"evm":{"bytecode":{"functionDebugData":{"@MAXIMUM_DELAY_8594":{"entryPoint":null,"id":8594,"parameterSlots":0,"returnSlots":1},"@MINIMUM_DELAY_8585":{"entryPoint":null,"id":8585,"parameterSlots":0,"returnSlots":1},"@_8520":{"entryPoint":null,"id":8520,"parameterSlots":2,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":343,"id":5466,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_uint256_fromMemory":{"entryPoint":385,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1216:54","nodeType":"YulBlock","src":"0:1216:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"112:253:54","nodeType":"YulBlock","src":"112:253:54","statements":[{"body":{"nativeSrc":"158:16:54","nodeType":"YulBlock","src":"158:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"167:1:54","nodeType":"YulLiteral","src":"167:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"170:1:54","nodeType":"YulLiteral","src":"170:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"160:6:54","nodeType":"YulIdentifier","src":"160:6:54"},"nativeSrc":"160:12:54","nodeType":"YulFunctionCall","src":"160:12:54"},"nativeSrc":"160:12:54","nodeType":"YulExpressionStatement","src":"160:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"133:7:54","nodeType":"YulIdentifier","src":"133:7:54"},{"name":"headStart","nativeSrc":"142:9:54","nodeType":"YulIdentifier","src":"142:9:54"}],"functionName":{"name":"sub","nativeSrc":"129:3:54","nodeType":"YulIdentifier","src":"129:3:54"},"nativeSrc":"129:23:54","nodeType":"YulFunctionCall","src":"129:23:54"},{"kind":"number","nativeSrc":"154:2:54","nodeType":"YulLiteral","src":"154:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"125:3:54","nodeType":"YulIdentifier","src":"125:3:54"},"nativeSrc":"125:32:54","nodeType":"YulFunctionCall","src":"125:32:54"},"nativeSrc":"122:52:54","nodeType":"YulIf","src":"122:52:54"},{"nativeSrc":"183:29:54","nodeType":"YulVariableDeclaration","src":"183:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"202:9:54","nodeType":"YulIdentifier","src":"202:9:54"}],"functionName":{"name":"mload","nativeSrc":"196:5:54","nodeType":"YulIdentifier","src":"196:5:54"},"nativeSrc":"196:16:54","nodeType":"YulFunctionCall","src":"196:16:54"},"variables":[{"name":"value","nativeSrc":"187:5:54","nodeType":"YulTypedName","src":"187:5:54","type":""}]},{"body":{"nativeSrc":"275:16:54","nodeType":"YulBlock","src":"275:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"284:1:54","nodeType":"YulLiteral","src":"284:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"287:1:54","nodeType":"YulLiteral","src":"287:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"277:6:54","nodeType":"YulIdentifier","src":"277:6:54"},"nativeSrc":"277:12:54","nodeType":"YulFunctionCall","src":"277:12:54"},"nativeSrc":"277:12:54","nodeType":"YulExpressionStatement","src":"277:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"234:5:54","nodeType":"YulIdentifier","src":"234:5:54"},{"arguments":[{"name":"value","nativeSrc":"245:5:54","nodeType":"YulIdentifier","src":"245:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"260:3:54","nodeType":"YulLiteral","src":"260:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"265:1:54","nodeType":"YulLiteral","src":"265:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"256:3:54","nodeType":"YulIdentifier","src":"256:3:54"},"nativeSrc":"256:11:54","nodeType":"YulFunctionCall","src":"256:11:54"},{"kind":"number","nativeSrc":"269:1:54","nodeType":"YulLiteral","src":"269:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"252:3:54","nodeType":"YulIdentifier","src":"252:3:54"},"nativeSrc":"252:19:54","nodeType":"YulFunctionCall","src":"252:19:54"}],"functionName":{"name":"and","nativeSrc":"241:3:54","nodeType":"YulIdentifier","src":"241:3:54"},"nativeSrc":"241:31:54","nodeType":"YulFunctionCall","src":"241:31:54"}],"functionName":{"name":"eq","nativeSrc":"231:2:54","nodeType":"YulIdentifier","src":"231:2:54"},"nativeSrc":"231:42:54","nodeType":"YulFunctionCall","src":"231:42:54"}],"functionName":{"name":"iszero","nativeSrc":"224:6:54","nodeType":"YulIdentifier","src":"224:6:54"},"nativeSrc":"224:50:54","nodeType":"YulFunctionCall","src":"224:50:54"},"nativeSrc":"221:70:54","nodeType":"YulIf","src":"221:70:54"},{"nativeSrc":"300:15:54","nodeType":"YulAssignment","src":"300:15:54","value":{"name":"value","nativeSrc":"310:5:54","nodeType":"YulIdentifier","src":"310:5:54"},"variableNames":[{"name":"value0","nativeSrc":"300:6:54","nodeType":"YulIdentifier","src":"300:6:54"}]},{"nativeSrc":"324:35:54","nodeType":"YulAssignment","src":"324:35:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"344:9:54","nodeType":"YulIdentifier","src":"344:9:54"},{"kind":"number","nativeSrc":"355:2:54","nodeType":"YulLiteral","src":"355:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"340:3:54","nodeType":"YulIdentifier","src":"340:3:54"},"nativeSrc":"340:18:54","nodeType":"YulFunctionCall","src":"340:18:54"}],"functionName":{"name":"mload","nativeSrc":"334:5:54","nodeType":"YulIdentifier","src":"334:5:54"},"nativeSrc":"334:25:54","nodeType":"YulFunctionCall","src":"334:25:54"},"variableNames":[{"name":"value1","nativeSrc":"324:6:54","nodeType":"YulIdentifier","src":"324:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nativeSrc":"14:351:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70:9:54","nodeType":"YulTypedName","src":"70:9:54","type":""},{"name":"dataEnd","nativeSrc":"81:7:54","nodeType":"YulTypedName","src":"81:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"93:6:54","nodeType":"YulTypedName","src":"93:6:54","type":""},{"name":"value1","nativeSrc":"101:6:54","nodeType":"YulTypedName","src":"101:6:54","type":""}],"src":"14:351:54"},{"body":{"nativeSrc":"544:245:54","nodeType":"YulBlock","src":"544:245:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"561:9:54","nodeType":"YulIdentifier","src":"561:9:54"},{"kind":"number","nativeSrc":"572:2:54","nodeType":"YulLiteral","src":"572:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"554:6:54","nodeType":"YulIdentifier","src":"554:6:54"},"nativeSrc":"554:21:54","nodeType":"YulFunctionCall","src":"554:21:54"},"nativeSrc":"554:21:54","nodeType":"YulExpressionStatement","src":"554:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"595:9:54","nodeType":"YulIdentifier","src":"595:9:54"},{"kind":"number","nativeSrc":"606:2:54","nodeType":"YulLiteral","src":"606:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"591:3:54","nodeType":"YulIdentifier","src":"591:3:54"},"nativeSrc":"591:18:54","nodeType":"YulFunctionCall","src":"591:18:54"},{"kind":"number","nativeSrc":"611:2:54","nodeType":"YulLiteral","src":"611:2:54","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"584:6:54","nodeType":"YulIdentifier","src":"584:6:54"},"nativeSrc":"584:30:54","nodeType":"YulFunctionCall","src":"584:30:54"},"nativeSrc":"584:30:54","nodeType":"YulExpressionStatement","src":"584:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"634:9:54","nodeType":"YulIdentifier","src":"634:9:54"},{"kind":"number","nativeSrc":"645:2:54","nodeType":"YulLiteral","src":"645:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"630:3:54","nodeType":"YulIdentifier","src":"630:3:54"},"nativeSrc":"630:18:54","nodeType":"YulFunctionCall","src":"630:18:54"},{"hexValue":"54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d7573","kind":"string","nativeSrc":"650:34:54","nodeType":"YulLiteral","src":"650:34:54","type":"","value":"Timelock::constructor: Delay mus"}],"functionName":{"name":"mstore","nativeSrc":"623:6:54","nodeType":"YulIdentifier","src":"623:6:54"},"nativeSrc":"623:62:54","nodeType":"YulFunctionCall","src":"623:62:54"},"nativeSrc":"623:62:54","nodeType":"YulExpressionStatement","src":"623:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"705:9:54","nodeType":"YulIdentifier","src":"705:9:54"},{"kind":"number","nativeSrc":"716:2:54","nodeType":"YulLiteral","src":"716:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"701:3:54","nodeType":"YulIdentifier","src":"701:3:54"},"nativeSrc":"701:18:54","nodeType":"YulFunctionCall","src":"701:18:54"},{"hexValue":"7420657863656564206d696e696d756d2064656c61792e","kind":"string","nativeSrc":"721:25:54","nodeType":"YulLiteral","src":"721:25:54","type":"","value":"t exceed minimum delay."}],"functionName":{"name":"mstore","nativeSrc":"694:6:54","nodeType":"YulIdentifier","src":"694:6:54"},"nativeSrc":"694:53:54","nodeType":"YulFunctionCall","src":"694:53:54"},"nativeSrc":"694:53:54","nodeType":"YulExpressionStatement","src":"694:53:54"},{"nativeSrc":"756:27:54","nodeType":"YulAssignment","src":"756:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"768:9:54","nodeType":"YulIdentifier","src":"768:9:54"},{"kind":"number","nativeSrc":"779:3:54","nodeType":"YulLiteral","src":"779:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"764:3:54","nodeType":"YulIdentifier","src":"764:3:54"},"nativeSrc":"764:19:54","nodeType":"YulFunctionCall","src":"764:19:54"},"variableNames":[{"name":"tail","nativeSrc":"756:4:54","nodeType":"YulIdentifier","src":"756:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"370:419:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"521:9:54","nodeType":"YulTypedName","src":"521:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"535:4:54","nodeType":"YulTypedName","src":"535:4:54","type":""}],"src":"370:419:54"},{"body":{"nativeSrc":"968:246:54","nodeType":"YulBlock","src":"968:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"985:9:54","nodeType":"YulIdentifier","src":"985:9:54"},{"kind":"number","nativeSrc":"996:2:54","nodeType":"YulLiteral","src":"996:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"978:6:54","nodeType":"YulIdentifier","src":"978:6:54"},"nativeSrc":"978:21:54","nodeType":"YulFunctionCall","src":"978:21:54"},"nativeSrc":"978:21:54","nodeType":"YulExpressionStatement","src":"978:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1019:9:54","nodeType":"YulIdentifier","src":"1019:9:54"},{"kind":"number","nativeSrc":"1030:2:54","nodeType":"YulLiteral","src":"1030:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1015:3:54","nodeType":"YulIdentifier","src":"1015:3:54"},"nativeSrc":"1015:18:54","nodeType":"YulFunctionCall","src":"1015:18:54"},{"kind":"number","nativeSrc":"1035:2:54","nodeType":"YulLiteral","src":"1035:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"1008:6:54","nodeType":"YulIdentifier","src":"1008:6:54"},"nativeSrc":"1008:30:54","nodeType":"YulFunctionCall","src":"1008:30:54"},"nativeSrc":"1008:30:54","nodeType":"YulExpressionStatement","src":"1008:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1058:9:54","nodeType":"YulIdentifier","src":"1058:9:54"},{"kind":"number","nativeSrc":"1069:2:54","nodeType":"YulLiteral","src":"1069:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1054:3:54","nodeType":"YulIdentifier","src":"1054:3:54"},"nativeSrc":"1054:18:54","nodeType":"YulFunctionCall","src":"1054:18:54"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e","kind":"string","nativeSrc":"1074:34:54","nodeType":"YulLiteral","src":"1074:34:54","type":"","value":"Timelock::setDelay: Delay must n"}],"functionName":{"name":"mstore","nativeSrc":"1047:6:54","nodeType":"YulIdentifier","src":"1047:6:54"},"nativeSrc":"1047:62:54","nodeType":"YulFunctionCall","src":"1047:62:54"},"nativeSrc":"1047:62:54","nodeType":"YulExpressionStatement","src":"1047:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1129:9:54","nodeType":"YulIdentifier","src":"1129:9:54"},{"kind":"number","nativeSrc":"1140:2:54","nodeType":"YulLiteral","src":"1140:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1125:3:54","nodeType":"YulIdentifier","src":"1125:3:54"},"nativeSrc":"1125:18:54","nodeType":"YulFunctionCall","src":"1125:18:54"},{"hexValue":"6f7420657863656564206d6178696d756d2064656c61792e","kind":"string","nativeSrc":"1145:26:54","nodeType":"YulLiteral","src":"1145:26:54","type":"","value":"ot exceed maximum delay."}],"functionName":{"name":"mstore","nativeSrc":"1118:6:54","nodeType":"YulIdentifier","src":"1118:6:54"},"nativeSrc":"1118:54:54","nodeType":"YulFunctionCall","src":"1118:54:54"},"nativeSrc":"1118:54:54","nodeType":"YulExpressionStatement","src":"1118:54:54"},{"nativeSrc":"1181:27:54","nodeType":"YulAssignment","src":"1181:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1193:9:54","nodeType":"YulIdentifier","src":"1193:9:54"},{"kind":"number","nativeSrc":"1204:3:54","nodeType":"YulLiteral","src":"1204:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1189:3:54","nodeType":"YulIdentifier","src":"1189:3:54"},"nativeSrc":"1189:19:54","nodeType":"YulFunctionCall","src":"1189:19:54"},"variableNames":[{"name":"tail","nativeSrc":"1181:4:54","nodeType":"YulIdentifier","src":"1181:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"794:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"945:9:54","nodeType":"YulTypedName","src":"945:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"959:4:54","nodeType":"YulTypedName","src":"959:4:54","type":""}],"src":"794:420:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::constructor: Delay mus\")\n        mstore(add(headStart, 96), \"t exceed minimum delay.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must n\")\n        mstore(add(headStart, 96), \"ot exceed maximum delay.\")\n        tail := add(headStart, 128)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161154338038061154383398101604081905261002f91610181565b610e108110156100ac5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d757360448201527f7420657863656564206d696e696d756d2064656c61792e00000000000000000060648201526084015b60405180910390fd5b62278d008111156101255760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e000000000000000060648201526084016100a3565b61012e82610157565b600080546001600160a01b0319166001600160a01b0393909316929092179091556002556101bb565b6001600160a01b03811661017e576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6000806040838503121561019457600080fd5b82516001600160a01b03811681146101ab57600080fd5b6020939093015192949293505050565b611379806101ca6000396000f3fe6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e214610217578063e177246e1461022d578063f2b065371461024d578063f851a4401461028d57005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020257005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611070565b6102ba565b6040516100f89190611127565b60405180910390f35b34801561010d57600080fd5b506100c961074a565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611070565b610854565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b1366004611178565b610b04565b3480156101c257600080fd5b506100c96101d1366004611070565b610c13565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b5062278d00610188565b34801561020e57600080fd5b50610e10610188565b34801561022357600080fd5b5062127500610188565b34801561023957600080fd5b506100c961024836600461119a565b610e14565b34801561025957600080fd5b5061027d61026836600461119a565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561029957600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461034f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161036e97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104295760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e0000006064820152608401610346565b824210156104c55760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a401610346565b6104d2621275008461125a565b4211156105475760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e000000000000000000000000006064820152608401610346565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105c45785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105ff92505050565b87876040516105d492919061129a565b6040519081900381206105ed91889088906020016112aa565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161062891906112e6565b60006040518083038185875af1925050503d8060008114610665576040519150601f19603f3d011682016040523d82523d6000602084013e61066a565b606091505b5091509150816106e25760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e0000006064820152608401610346565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161073396959493929190611302565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107d75760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e00000000000000006064820152608401610346565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108e25760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e000000000000000000006064820152608401610346565b6002546108ef904261125a565b82101561098a5760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a401610346565b6000888888888888886040516020016109a997969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a655760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e0000000000000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610af0908c908c908c908c908c908c90611302565b60405180910390a398975050505050505050565b33301480610b29575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b9b5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e00000000000000006064820152608401610346565b610ba481610fae565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ca05760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e0000000000000000006064820152608401610346565b600087878787878787604051602001610cbf97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d7a5760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e00000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610e02908b908b908b908b908b908b90611302565b60405180910390a35050505050505050565b333014610e895760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e0000000000000000000000000000006064820152608401610346565b610e10811015610f015760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e0000000000000000000000006064820152608401610346565b62278d00811115610f7a5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e00000000000000006064820152608401610346565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610ffb576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461102257600080fd5b919050565b60008083601f84011261103957600080fd5b50813567ffffffffffffffff81111561105157600080fd5b60208301915083602082850101111561106957600080fd5b9250929050565b600080600080600080600060a0888a03121561108b57600080fd5b61109488610ffe565b965060208801359550604088013567ffffffffffffffff808211156110b857600080fd5b6110c48b838c01611027565b909750955060608a01359150808211156110dd57600080fd5b506110ea8a828b01611027565b989b979a50959894979596608090950135949350505050565b60005b8381101561111e578181015183820152602001611106565b50506000910152565b6020815260008251806020840152611146816040850160208701611103565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561118a57600080fd5b61119382610ffe565b9392505050565b6000602082840312156111ac57600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061123260a0830187896111b3565b82810360608401526112458186886111b3565b91505082608083015298975050505050505050565b80820180821115611294577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112f8818460208701611103565b9190910192915050565b86815260806020820152600061131c6080830187896111b3565b828103604084015261132f8186886111b3565b91505082606083015297965050505050505056fea2646970667358221220c07d87e3cfbbfd2d102119c1681bbf90ee223afc956a756bab7d170887b6fcbd64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1543 CODESIZE SUB DUP1 PUSH2 0x1543 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x181 JUMP JUMPDEST PUSH2 0xE10 DUP2 LT ISZERO PUSH2 0xAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A636F6E7374727563746F723A2044656C6179206D7573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7420657863656564206D696E696D756D2064656C61792E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0x125 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA3 JUMP JUMPDEST PUSH2 0x12E DUP3 PUSH2 0x157 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 SSTORE PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x17E 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 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH2 0x1379 DUP1 PUSH2 0x1CA PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x56 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x28D JUMPI STOP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x202 JUMPI STOP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x1B6 JUMPI STOP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x116 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0x2BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x1127 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x74A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1178 JUMP JUMPDEST PUSH2 0xB04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x278D00 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE10 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x127500 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH2 0xE14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x268 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x34F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A204361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6C206D75737420636F6D652066726F6D2061646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x36E SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774206265656E207175657565642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST DUP3 TIMESTAMP LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774207375727061737365642074696D6520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6C6F636B2E000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0x4D2 PUSH3 0x127500 DUP5 PUSH2 0x125A JUMP JUMPDEST TIMESTAMP GT ISZERO PUSH2 0x547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206973207374616C652E00000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE PUSH1 0x60 SWAP1 DUP8 SWAP1 SUB PUSH2 0x5C4 JUMPI DUP6 DUP6 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 SWAP3 SWAP4 POP PUSH2 0x5FF SWAP3 POP POP POP JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5D4 SWAP3 SWAP2 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x5ED SWAP2 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x12AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x628 SWAP2 SWAP1 PUSH2 0x12E6 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 0x665 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 0x66A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E20657865637574696F6E2072657665727465642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x733 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x7D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A61636365707441646D696E3A2043616C6C206D757374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6D652066726F6D2070656E64696E6741646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2043616C6C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D75737420636F6D652066726F6D2061646D696E2E00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x8EF SWAP1 TIMESTAMP PUSH2 0x125A JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x98A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2045737469 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D6174656420657865637574696F6E20626C6F636B206D757374207361746973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x66792064656C61792E0000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9A9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0xA65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A207472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x73616374696F6E20616C7265616479207175657565642E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP1 DUP3 SWAP1 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F SWAP1 PUSH2 0xAF0 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ DUP1 PUSH2 0xB29 JUMPI POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0xB9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657450656E64696E6741646D696E3A2043616C6C20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D75737420636F6D652066726F6D2054696D656C6F636B2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0xFAE JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xCA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A2043616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C206D75737420636F6D652066726F6D2061646D696E2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCBF SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xD7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A20747261 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E73616374696F6E206973206E6F7420717565756564207965742E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP1 DUP3 SWAP1 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 SWAP1 PUSH2 0xE02 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xE89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2043616C6C206D75737420636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D652066726F6D2054696D656C6F636B2E000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0xE10 DUP2 LT ISZERO PUSH2 0xF01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D7573742065 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7863656564206D696E696D756D2064656C61792E000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0xF7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xED0229422AF39D4D7D33F7A27D31D6F5CB20EC628293DA58DD6E8A528ED466BE SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1022 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1039 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1051 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1069 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x108B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1094 DUP9 PUSH2 0xFFE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x10B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C4 DUP12 DUP4 DUP13 ADD PUSH2 0x1027 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10EA DUP11 DUP3 DUP12 ADD PUSH2 0x1027 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 SWAP5 SWAP8 SWAP6 SWAP7 PUSH1 0x80 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x111E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1106 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1146 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x118A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1193 DUP3 PUSH2 0xFFE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1232 PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x11B3 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x1245 DUP2 DUP7 DUP9 PUSH2 0x11B3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1294 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x4 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x12F8 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1103 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x131C PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x11B3 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x132F DUP2 DUP7 DUP9 PUSH2 0x11B3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 PUSH30 0x87E3CFBBFD2D102119C1681BBF90EE223AFC956A756BAB7D170887B6FCBD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"429:9438:35:-:0;;;2426:345;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;709:7;2488:6;:25;;2480:93;;;;-1:-1:-1;;;2480:93:35;;572:2:54;2480:93:35;;;554:21:54;611:2;591:18;;;584:30;650:34;630:18;;;623:62;721:25;701:18;;;694:53;764:19;;2480:93:35;;;;;;;;;849:7;2591:6;:25;;2583:94;;;;-1:-1:-1;;;2583:94:35;;996:2:54;2583:94:35;;;978:21:54;1035:2;1015:18;;;1008:30;1074:34;1054:18;;;1047:62;1145:26;1125:18;;;1118:54;1189:19;;2583:94:35;794:420:54;2583:94:35;2687:28;2708:6;2687:20;:28::i;:::-;2726:5;:14;;-1:-1:-1;;;;;;2726:14:35;-1:-1:-1;;;;;2726:14:35;;;;;;;;;;;2750:5;:14;429:9438;;485:136:24;-1:-1:-1;;;;;548:22:24;;544:75;;589:23;;-1:-1:-1;;;589:23:24;;;;;;;;;;;544:75;485:136;:::o;14:351:54:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:54;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:54:o;794:420::-;429:9438:35;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GRACE_PERIOD_8576":{"entryPoint":null,"id":8576,"parameterSlots":0,"returnSlots":1},"@MAXIMUM_DELAY_8594":{"entryPoint":null,"id":8594,"parameterSlots":0,"returnSlots":1},"@MINIMUM_DELAY_8585":{"entryPoint":null,"id":8585,"parameterSlots":0,"returnSlots":1},"@_8524":{"entryPoint":null,"id":8524,"parameterSlots":0,"returnSlots":0},"@acceptAdmin_8625":{"entryPoint":1866,"id":8625,"parameterSlots":0,"returnSlots":0},"@admin_8409":{"entryPoint":null,"id":8409,"parameterSlots":0,"returnSlots":0},"@cancelTransaction_8791":{"entryPoint":3091,"id":8791,"parameterSlots":7,"returnSlots":0},"@delay_8415":{"entryPoint":null,"id":8415,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":4014,"id":5466,"parameterSlots":1,"returnSlots":0},"@executeTransaction_8921":{"entryPoint":698,"id":8921,"parameterSlots":7,"returnSlots":1},"@getBlockTimestamp_8931":{"entryPoint":null,"id":8931,"parameterSlots":0,"returnSlots":1},"@pendingAdmin_8412":{"entryPoint":null,"id":8412,"parameterSlots":0,"returnSlots":0},"@queueTransaction_8733":{"entryPoint":2132,"id":8733,"parameterSlots":7,"returnSlots":1},"@queuedTransactions_8420":{"entryPoint":null,"id":8420,"parameterSlots":0,"returnSlots":0},"@setDelay_8567":{"entryPoint":3604,"id":8567,"parameterSlots":1,"returnSlots":0},"@setPendingAdmin_8660":{"entryPoint":2820,"id":8660,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":4094,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":4135,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256":{"entryPoint":4208,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4506,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":4531,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4778,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4762,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4838,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":4604,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"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":4391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":4866,"id":null,"parameterSlots":7,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":4698,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4355,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12932:54","nodeType":"YulBlock","src":"0:12932:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"63:147:54","nodeType":"YulBlock","src":"63:147:54","statements":[{"nativeSrc":"73:29:54","nodeType":"YulAssignment","src":"73:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:54","nodeType":"YulIdentifier","src":"95:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:54","nodeType":"YulIdentifier","src":"82:12:54"},"nativeSrc":"82:20:54","nodeType":"YulFunctionCall","src":"82:20:54"},"variableNames":[{"name":"value","nativeSrc":"73:5:54","nodeType":"YulIdentifier","src":"73:5:54"}]},{"body":{"nativeSrc":"188:16:54","nodeType":"YulBlock","src":"188:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:54","nodeType":"YulLiteral","src":"197:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:54","nodeType":"YulLiteral","src":"200:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:54","nodeType":"YulIdentifier","src":"190:6:54"},"nativeSrc":"190:12:54","nodeType":"YulFunctionCall","src":"190:12:54"},"nativeSrc":"190:12:54","nodeType":"YulExpressionStatement","src":"190:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:54","nodeType":"YulIdentifier","src":"124:5:54"},{"arguments":[{"name":"value","nativeSrc":"135:5:54","nodeType":"YulIdentifier","src":"135:5:54"},{"kind":"number","nativeSrc":"142:42:54","nodeType":"YulLiteral","src":"142:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:54","nodeType":"YulIdentifier","src":"131:3:54"},"nativeSrc":"131:54:54","nodeType":"YulFunctionCall","src":"131:54:54"}],"functionName":{"name":"eq","nativeSrc":"121:2:54","nodeType":"YulIdentifier","src":"121:2:54"},"nativeSrc":"121:65:54","nodeType":"YulFunctionCall","src":"121:65:54"}],"functionName":{"name":"iszero","nativeSrc":"114:6:54","nodeType":"YulIdentifier","src":"114:6:54"},"nativeSrc":"114:73:54","nodeType":"YulFunctionCall","src":"114:73:54"},"nativeSrc":"111:93:54","nodeType":"YulIf","src":"111:93:54"}]},"name":"abi_decode_address","nativeSrc":"14:196:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:54","nodeType":"YulTypedName","src":"42:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:54","nodeType":"YulTypedName","src":"53:5:54","type":""}],"src":"14:196:54"},{"body":{"nativeSrc":"288:275:54","nodeType":"YulBlock","src":"288:275:54","statements":[{"body":{"nativeSrc":"337:16:54","nodeType":"YulBlock","src":"337:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"346:1:54","nodeType":"YulLiteral","src":"346:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"349:1:54","nodeType":"YulLiteral","src":"349:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"339:6:54","nodeType":"YulIdentifier","src":"339:6:54"},"nativeSrc":"339:12:54","nodeType":"YulFunctionCall","src":"339:12:54"},"nativeSrc":"339:12:54","nodeType":"YulExpressionStatement","src":"339:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"316:6:54","nodeType":"YulIdentifier","src":"316:6:54"},{"kind":"number","nativeSrc":"324:4:54","nodeType":"YulLiteral","src":"324:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"312:3:54","nodeType":"YulIdentifier","src":"312:3:54"},"nativeSrc":"312:17:54","nodeType":"YulFunctionCall","src":"312:17:54"},{"name":"end","nativeSrc":"331:3:54","nodeType":"YulIdentifier","src":"331:3:54"}],"functionName":{"name":"slt","nativeSrc":"308:3:54","nodeType":"YulIdentifier","src":"308:3:54"},"nativeSrc":"308:27:54","nodeType":"YulFunctionCall","src":"308:27:54"}],"functionName":{"name":"iszero","nativeSrc":"301:6:54","nodeType":"YulIdentifier","src":"301:6:54"},"nativeSrc":"301:35:54","nodeType":"YulFunctionCall","src":"301:35:54"},"nativeSrc":"298:55:54","nodeType":"YulIf","src":"298:55:54"},{"nativeSrc":"362:30:54","nodeType":"YulAssignment","src":"362:30:54","value":{"arguments":[{"name":"offset","nativeSrc":"385:6:54","nodeType":"YulIdentifier","src":"385:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"372:12:54","nodeType":"YulIdentifier","src":"372:12:54"},"nativeSrc":"372:20:54","nodeType":"YulFunctionCall","src":"372:20:54"},"variableNames":[{"name":"length","nativeSrc":"362:6:54","nodeType":"YulIdentifier","src":"362:6:54"}]},{"body":{"nativeSrc":"435:16:54","nodeType":"YulBlock","src":"435:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"444:1:54","nodeType":"YulLiteral","src":"444:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"447:1:54","nodeType":"YulLiteral","src":"447:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"437:6:54","nodeType":"YulIdentifier","src":"437:6:54"},"nativeSrc":"437:12:54","nodeType":"YulFunctionCall","src":"437:12:54"},"nativeSrc":"437:12:54","nodeType":"YulExpressionStatement","src":"437:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"407:6:54","nodeType":"YulIdentifier","src":"407:6:54"},{"kind":"number","nativeSrc":"415:18:54","nodeType":"YulLiteral","src":"415:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"404:2:54","nodeType":"YulIdentifier","src":"404:2:54"},"nativeSrc":"404:30:54","nodeType":"YulFunctionCall","src":"404:30:54"},"nativeSrc":"401:50:54","nodeType":"YulIf","src":"401:50:54"},{"nativeSrc":"460:29:54","nodeType":"YulAssignment","src":"460:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"476:6:54","nodeType":"YulIdentifier","src":"476:6:54"},{"kind":"number","nativeSrc":"484:4:54","nodeType":"YulLiteral","src":"484:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"472:3:54","nodeType":"YulIdentifier","src":"472:3:54"},"nativeSrc":"472:17:54","nodeType":"YulFunctionCall","src":"472:17:54"},"variableNames":[{"name":"arrayPos","nativeSrc":"460:8:54","nodeType":"YulIdentifier","src":"460:8:54"}]},{"body":{"nativeSrc":"541:16:54","nodeType":"YulBlock","src":"541:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"550:1:54","nodeType":"YulLiteral","src":"550:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"553:1:54","nodeType":"YulLiteral","src":"553:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"543:6:54","nodeType":"YulIdentifier","src":"543:6:54"},"nativeSrc":"543:12:54","nodeType":"YulFunctionCall","src":"543:12:54"},"nativeSrc":"543:12:54","nodeType":"YulExpressionStatement","src":"543:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"512:6:54","nodeType":"YulIdentifier","src":"512:6:54"},{"name":"length","nativeSrc":"520:6:54","nodeType":"YulIdentifier","src":"520:6:54"}],"functionName":{"name":"add","nativeSrc":"508:3:54","nodeType":"YulIdentifier","src":"508:3:54"},"nativeSrc":"508:19:54","nodeType":"YulFunctionCall","src":"508:19:54"},{"kind":"number","nativeSrc":"529:4:54","nodeType":"YulLiteral","src":"529:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"504:3:54","nodeType":"YulIdentifier","src":"504:3:54"},"nativeSrc":"504:30:54","nodeType":"YulFunctionCall","src":"504:30:54"},{"name":"end","nativeSrc":"536:3:54","nodeType":"YulIdentifier","src":"536:3:54"}],"functionName":{"name":"gt","nativeSrc":"501:2:54","nodeType":"YulIdentifier","src":"501:2:54"},"nativeSrc":"501:39:54","nodeType":"YulFunctionCall","src":"501:39:54"},"nativeSrc":"498:59:54","nodeType":"YulIf","src":"498:59:54"}]},"name":"abi_decode_string_calldata","nativeSrc":"215:348:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"251:6:54","nodeType":"YulTypedName","src":"251:6:54","type":""},{"name":"end","nativeSrc":"259:3:54","nodeType":"YulTypedName","src":"259:3:54","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"267:8:54","nodeType":"YulTypedName","src":"267:8:54","type":""},{"name":"length","nativeSrc":"277:6:54","nodeType":"YulTypedName","src":"277:6:54","type":""}],"src":"215:348:54"},{"body":{"nativeSrc":"745:755:54","nodeType":"YulBlock","src":"745:755:54","statements":[{"body":{"nativeSrc":"792:16:54","nodeType":"YulBlock","src":"792:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"801:1:54","nodeType":"YulLiteral","src":"801:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"804:1:54","nodeType":"YulLiteral","src":"804:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"794:6:54","nodeType":"YulIdentifier","src":"794:6:54"},"nativeSrc":"794:12:54","nodeType":"YulFunctionCall","src":"794:12:54"},"nativeSrc":"794:12:54","nodeType":"YulExpressionStatement","src":"794:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"766:7:54","nodeType":"YulIdentifier","src":"766:7:54"},{"name":"headStart","nativeSrc":"775:9:54","nodeType":"YulIdentifier","src":"775:9:54"}],"functionName":{"name":"sub","nativeSrc":"762:3:54","nodeType":"YulIdentifier","src":"762:3:54"},"nativeSrc":"762:23:54","nodeType":"YulFunctionCall","src":"762:23:54"},{"kind":"number","nativeSrc":"787:3:54","nodeType":"YulLiteral","src":"787:3:54","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"758:3:54","nodeType":"YulIdentifier","src":"758:3:54"},"nativeSrc":"758:33:54","nodeType":"YulFunctionCall","src":"758:33:54"},"nativeSrc":"755:53:54","nodeType":"YulIf","src":"755:53:54"},{"nativeSrc":"817:39:54","nodeType":"YulAssignment","src":"817:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"846:9:54","nodeType":"YulIdentifier","src":"846:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"827:18:54","nodeType":"YulIdentifier","src":"827:18:54"},"nativeSrc":"827:29:54","nodeType":"YulFunctionCall","src":"827:29:54"},"variableNames":[{"name":"value0","nativeSrc":"817:6:54","nodeType":"YulIdentifier","src":"817:6:54"}]},{"nativeSrc":"865:42:54","nodeType":"YulAssignment","src":"865:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"892:9:54","nodeType":"YulIdentifier","src":"892:9:54"},{"kind":"number","nativeSrc":"903:2:54","nodeType":"YulLiteral","src":"903:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"888:3:54","nodeType":"YulIdentifier","src":"888:3:54"},"nativeSrc":"888:18:54","nodeType":"YulFunctionCall","src":"888:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"875:12:54","nodeType":"YulIdentifier","src":"875:12:54"},"nativeSrc":"875:32:54","nodeType":"YulFunctionCall","src":"875:32:54"},"variableNames":[{"name":"value1","nativeSrc":"865:6:54","nodeType":"YulIdentifier","src":"865:6:54"}]},{"nativeSrc":"916:46:54","nodeType":"YulVariableDeclaration","src":"916:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"947:9:54","nodeType":"YulIdentifier","src":"947:9:54"},{"kind":"number","nativeSrc":"958:2:54","nodeType":"YulLiteral","src":"958:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"943:3:54","nodeType":"YulIdentifier","src":"943:3:54"},"nativeSrc":"943:18:54","nodeType":"YulFunctionCall","src":"943:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"930:12:54","nodeType":"YulIdentifier","src":"930:12:54"},"nativeSrc":"930:32:54","nodeType":"YulFunctionCall","src":"930:32:54"},"variables":[{"name":"offset","nativeSrc":"920:6:54","nodeType":"YulTypedName","src":"920:6:54","type":""}]},{"nativeSrc":"971:28:54","nodeType":"YulVariableDeclaration","src":"971:28:54","value":{"kind":"number","nativeSrc":"981:18:54","nodeType":"YulLiteral","src":"981:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"975:2:54","nodeType":"YulTypedName","src":"975:2:54","type":""}]},{"body":{"nativeSrc":"1026:16:54","nodeType":"YulBlock","src":"1026:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1035:1:54","nodeType":"YulLiteral","src":"1035:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1038:1:54","nodeType":"YulLiteral","src":"1038:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1028:6:54","nodeType":"YulIdentifier","src":"1028:6:54"},"nativeSrc":"1028:12:54","nodeType":"YulFunctionCall","src":"1028:12:54"},"nativeSrc":"1028:12:54","nodeType":"YulExpressionStatement","src":"1028:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1014:6:54","nodeType":"YulIdentifier","src":"1014:6:54"},{"name":"_1","nativeSrc":"1022:2:54","nodeType":"YulIdentifier","src":"1022:2:54"}],"functionName":{"name":"gt","nativeSrc":"1011:2:54","nodeType":"YulIdentifier","src":"1011:2:54"},"nativeSrc":"1011:14:54","nodeType":"YulFunctionCall","src":"1011:14:54"},"nativeSrc":"1008:34:54","nodeType":"YulIf","src":"1008:34:54"},{"nativeSrc":"1051:85:54","nodeType":"YulVariableDeclaration","src":"1051:85:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1108:9:54","nodeType":"YulIdentifier","src":"1108:9:54"},{"name":"offset","nativeSrc":"1119:6:54","nodeType":"YulIdentifier","src":"1119:6:54"}],"functionName":{"name":"add","nativeSrc":"1104:3:54","nodeType":"YulIdentifier","src":"1104:3:54"},"nativeSrc":"1104:22:54","nodeType":"YulFunctionCall","src":"1104:22:54"},{"name":"dataEnd","nativeSrc":"1128:7:54","nodeType":"YulIdentifier","src":"1128:7:54"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1077:26:54","nodeType":"YulIdentifier","src":"1077:26:54"},"nativeSrc":"1077:59:54","nodeType":"YulFunctionCall","src":"1077:59:54"},"variables":[{"name":"value2_1","nativeSrc":"1055:8:54","nodeType":"YulTypedName","src":"1055:8:54","type":""},{"name":"value3_1","nativeSrc":"1065:8:54","nodeType":"YulTypedName","src":"1065:8:54","type":""}]},{"nativeSrc":"1145:18:54","nodeType":"YulAssignment","src":"1145:18:54","value":{"name":"value2_1","nativeSrc":"1155:8:54","nodeType":"YulIdentifier","src":"1155:8:54"},"variableNames":[{"name":"value2","nativeSrc":"1145:6:54","nodeType":"YulIdentifier","src":"1145:6:54"}]},{"nativeSrc":"1172:18:54","nodeType":"YulAssignment","src":"1172:18:54","value":{"name":"value3_1","nativeSrc":"1182:8:54","nodeType":"YulIdentifier","src":"1182:8:54"},"variableNames":[{"name":"value3","nativeSrc":"1172:6:54","nodeType":"YulIdentifier","src":"1172:6:54"}]},{"nativeSrc":"1199:48:54","nodeType":"YulVariableDeclaration","src":"1199:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1232:9:54","nodeType":"YulIdentifier","src":"1232:9:54"},{"kind":"number","nativeSrc":"1243:2:54","nodeType":"YulLiteral","src":"1243:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1228:3:54","nodeType":"YulIdentifier","src":"1228:3:54"},"nativeSrc":"1228:18:54","nodeType":"YulFunctionCall","src":"1228:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1215:12:54","nodeType":"YulIdentifier","src":"1215:12:54"},"nativeSrc":"1215:32:54","nodeType":"YulFunctionCall","src":"1215:32:54"},"variables":[{"name":"offset_1","nativeSrc":"1203:8:54","nodeType":"YulTypedName","src":"1203:8:54","type":""}]},{"body":{"nativeSrc":"1276:16:54","nodeType":"YulBlock","src":"1276:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:54","nodeType":"YulLiteral","src":"1285:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:54","nodeType":"YulLiteral","src":"1288:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1278:6:54","nodeType":"YulIdentifier","src":"1278:6:54"},"nativeSrc":"1278:12:54","nodeType":"YulFunctionCall","src":"1278:12:54"},"nativeSrc":"1278:12:54","nodeType":"YulExpressionStatement","src":"1278:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1262:8:54","nodeType":"YulIdentifier","src":"1262:8:54"},{"name":"_1","nativeSrc":"1272:2:54","nodeType":"YulIdentifier","src":"1272:2:54"}],"functionName":{"name":"gt","nativeSrc":"1259:2:54","nodeType":"YulIdentifier","src":"1259:2:54"},"nativeSrc":"1259:16:54","nodeType":"YulFunctionCall","src":"1259:16:54"},"nativeSrc":"1256:36:54","nodeType":"YulIf","src":"1256:36:54"},{"nativeSrc":"1301:87:54","nodeType":"YulVariableDeclaration","src":"1301:87:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1358:9:54","nodeType":"YulIdentifier","src":"1358:9:54"},{"name":"offset_1","nativeSrc":"1369:8:54","nodeType":"YulIdentifier","src":"1369:8:54"}],"functionName":{"name":"add","nativeSrc":"1354:3:54","nodeType":"YulIdentifier","src":"1354:3:54"},"nativeSrc":"1354:24:54","nodeType":"YulFunctionCall","src":"1354:24:54"},{"name":"dataEnd","nativeSrc":"1380:7:54","nodeType":"YulIdentifier","src":"1380:7:54"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1327:26:54","nodeType":"YulIdentifier","src":"1327:26:54"},"nativeSrc":"1327:61:54","nodeType":"YulFunctionCall","src":"1327:61:54"},"variables":[{"name":"value4_1","nativeSrc":"1305:8:54","nodeType":"YulTypedName","src":"1305:8:54","type":""},{"name":"value5_1","nativeSrc":"1315:8:54","nodeType":"YulTypedName","src":"1315:8:54","type":""}]},{"nativeSrc":"1397:18:54","nodeType":"YulAssignment","src":"1397:18:54","value":{"name":"value4_1","nativeSrc":"1407:8:54","nodeType":"YulIdentifier","src":"1407:8:54"},"variableNames":[{"name":"value4","nativeSrc":"1397:6:54","nodeType":"YulIdentifier","src":"1397:6:54"}]},{"nativeSrc":"1424:18:54","nodeType":"YulAssignment","src":"1424:18:54","value":{"name":"value5_1","nativeSrc":"1434:8:54","nodeType":"YulIdentifier","src":"1434:8:54"},"variableNames":[{"name":"value5","nativeSrc":"1424:6:54","nodeType":"YulIdentifier","src":"1424:6:54"}]},{"nativeSrc":"1451:43:54","nodeType":"YulAssignment","src":"1451:43:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1478:9:54","nodeType":"YulIdentifier","src":"1478:9:54"},{"kind":"number","nativeSrc":"1489:3:54","nodeType":"YulLiteral","src":"1489:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1474:3:54","nodeType":"YulIdentifier","src":"1474:3:54"},"nativeSrc":"1474:19:54","nodeType":"YulFunctionCall","src":"1474:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"1461:12:54","nodeType":"YulIdentifier","src":"1461:12:54"},"nativeSrc":"1461:33:54","nodeType":"YulFunctionCall","src":"1461:33:54"},"variableNames":[{"name":"value6","nativeSrc":"1451:6:54","nodeType":"YulIdentifier","src":"1451:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256","nativeSrc":"568:932:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"663:9:54","nodeType":"YulTypedName","src":"663:9:54","type":""},{"name":"dataEnd","nativeSrc":"674:7:54","nodeType":"YulTypedName","src":"674:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"686:6:54","nodeType":"YulTypedName","src":"686:6:54","type":""},{"name":"value1","nativeSrc":"694:6:54","nodeType":"YulTypedName","src":"694:6:54","type":""},{"name":"value2","nativeSrc":"702:6:54","nodeType":"YulTypedName","src":"702:6:54","type":""},{"name":"value3","nativeSrc":"710:6:54","nodeType":"YulTypedName","src":"710:6:54","type":""},{"name":"value4","nativeSrc":"718:6:54","nodeType":"YulTypedName","src":"718:6:54","type":""},{"name":"value5","nativeSrc":"726:6:54","nodeType":"YulTypedName","src":"726:6:54","type":""},{"name":"value6","nativeSrc":"734:6:54","nodeType":"YulTypedName","src":"734:6:54","type":""}],"src":"568:932:54"},{"body":{"nativeSrc":"1571:184:54","nodeType":"YulBlock","src":"1571:184:54","statements":[{"nativeSrc":"1581:10:54","nodeType":"YulVariableDeclaration","src":"1581:10:54","value":{"kind":"number","nativeSrc":"1590:1:54","nodeType":"YulLiteral","src":"1590:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1585:1:54","nodeType":"YulTypedName","src":"1585:1:54","type":""}]},{"body":{"nativeSrc":"1650:63:54","nodeType":"YulBlock","src":"1650:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1675:3:54","nodeType":"YulIdentifier","src":"1675:3:54"},{"name":"i","nativeSrc":"1680:1:54","nodeType":"YulIdentifier","src":"1680:1:54"}],"functionName":{"name":"add","nativeSrc":"1671:3:54","nodeType":"YulIdentifier","src":"1671:3:54"},"nativeSrc":"1671:11:54","nodeType":"YulFunctionCall","src":"1671:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1694:3:54","nodeType":"YulIdentifier","src":"1694:3:54"},{"name":"i","nativeSrc":"1699:1:54","nodeType":"YulIdentifier","src":"1699:1:54"}],"functionName":{"name":"add","nativeSrc":"1690:3:54","nodeType":"YulIdentifier","src":"1690:3:54"},"nativeSrc":"1690:11:54","nodeType":"YulFunctionCall","src":"1690:11:54"}],"functionName":{"name":"mload","nativeSrc":"1684:5:54","nodeType":"YulIdentifier","src":"1684:5:54"},"nativeSrc":"1684:18:54","nodeType":"YulFunctionCall","src":"1684:18:54"}],"functionName":{"name":"mstore","nativeSrc":"1664:6:54","nodeType":"YulIdentifier","src":"1664:6:54"},"nativeSrc":"1664:39:54","nodeType":"YulFunctionCall","src":"1664:39:54"},"nativeSrc":"1664:39:54","nodeType":"YulExpressionStatement","src":"1664:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1611:1:54","nodeType":"YulIdentifier","src":"1611:1:54"},{"name":"length","nativeSrc":"1614:6:54","nodeType":"YulIdentifier","src":"1614:6:54"}],"functionName":{"name":"lt","nativeSrc":"1608:2:54","nodeType":"YulIdentifier","src":"1608:2:54"},"nativeSrc":"1608:13:54","nodeType":"YulFunctionCall","src":"1608:13:54"},"nativeSrc":"1600:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"1622:19:54","nodeType":"YulBlock","src":"1622:19:54","statements":[{"nativeSrc":"1624:15:54","nodeType":"YulAssignment","src":"1624:15:54","value":{"arguments":[{"name":"i","nativeSrc":"1633:1:54","nodeType":"YulIdentifier","src":"1633:1:54"},{"kind":"number","nativeSrc":"1636:2:54","nodeType":"YulLiteral","src":"1636:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1629:3:54","nodeType":"YulIdentifier","src":"1629:3:54"},"nativeSrc":"1629:10:54","nodeType":"YulFunctionCall","src":"1629:10:54"},"variableNames":[{"name":"i","nativeSrc":"1624:1:54","nodeType":"YulIdentifier","src":"1624:1:54"}]}]},"pre":{"nativeSrc":"1604:3:54","nodeType":"YulBlock","src":"1604:3:54","statements":[]},"src":"1600:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1733:3:54","nodeType":"YulIdentifier","src":"1733:3:54"},{"name":"length","nativeSrc":"1738:6:54","nodeType":"YulIdentifier","src":"1738:6:54"}],"functionName":{"name":"add","nativeSrc":"1729:3:54","nodeType":"YulIdentifier","src":"1729:3:54"},"nativeSrc":"1729:16:54","nodeType":"YulFunctionCall","src":"1729:16:54"},{"kind":"number","nativeSrc":"1747:1:54","nodeType":"YulLiteral","src":"1747:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1722:6:54","nodeType":"YulIdentifier","src":"1722:6:54"},"nativeSrc":"1722:27:54","nodeType":"YulFunctionCall","src":"1722:27:54"},"nativeSrc":"1722:27:54","nodeType":"YulExpressionStatement","src":"1722:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1505:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1549:3:54","nodeType":"YulTypedName","src":"1549:3:54","type":""},{"name":"dst","nativeSrc":"1554:3:54","nodeType":"YulTypedName","src":"1554:3:54","type":""},{"name":"length","nativeSrc":"1559:6:54","nodeType":"YulTypedName","src":"1559:6:54","type":""}],"src":"1505:250:54"},{"body":{"nativeSrc":"1879:334:54","nodeType":"YulBlock","src":"1879:334:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1896:9:54","nodeType":"YulIdentifier","src":"1896:9:54"},{"kind":"number","nativeSrc":"1907:2:54","nodeType":"YulLiteral","src":"1907:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1889:6:54","nodeType":"YulIdentifier","src":"1889:6:54"},"nativeSrc":"1889:21:54","nodeType":"YulFunctionCall","src":"1889:21:54"},"nativeSrc":"1889:21:54","nodeType":"YulExpressionStatement","src":"1889:21:54"},{"nativeSrc":"1919:27:54","nodeType":"YulVariableDeclaration","src":"1919:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"1939:6:54","nodeType":"YulIdentifier","src":"1939:6:54"}],"functionName":{"name":"mload","nativeSrc":"1933:5:54","nodeType":"YulIdentifier","src":"1933:5:54"},"nativeSrc":"1933:13:54","nodeType":"YulFunctionCall","src":"1933:13:54"},"variables":[{"name":"length","nativeSrc":"1923:6:54","nodeType":"YulTypedName","src":"1923:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1966:9:54","nodeType":"YulIdentifier","src":"1966:9:54"},{"kind":"number","nativeSrc":"1977:2:54","nodeType":"YulLiteral","src":"1977:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1962:3:54","nodeType":"YulIdentifier","src":"1962:3:54"},"nativeSrc":"1962:18:54","nodeType":"YulFunctionCall","src":"1962:18:54"},{"name":"length","nativeSrc":"1982:6:54","nodeType":"YulIdentifier","src":"1982:6:54"}],"functionName":{"name":"mstore","nativeSrc":"1955:6:54","nodeType":"YulIdentifier","src":"1955:6:54"},"nativeSrc":"1955:34:54","nodeType":"YulFunctionCall","src":"1955:34:54"},"nativeSrc":"1955:34:54","nodeType":"YulExpressionStatement","src":"1955:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2037:6:54","nodeType":"YulIdentifier","src":"2037:6:54"},{"kind":"number","nativeSrc":"2045:2:54","nodeType":"YulLiteral","src":"2045:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2033:3:54","nodeType":"YulIdentifier","src":"2033:3:54"},"nativeSrc":"2033:15:54","nodeType":"YulFunctionCall","src":"2033:15:54"},{"arguments":[{"name":"headStart","nativeSrc":"2054:9:54","nodeType":"YulIdentifier","src":"2054:9:54"},{"kind":"number","nativeSrc":"2065:2:54","nodeType":"YulLiteral","src":"2065:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2050:3:54","nodeType":"YulIdentifier","src":"2050:3:54"},"nativeSrc":"2050:18:54","nodeType":"YulFunctionCall","src":"2050:18:54"},{"name":"length","nativeSrc":"2070:6:54","nodeType":"YulIdentifier","src":"2070:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1998:34:54","nodeType":"YulIdentifier","src":"1998:34:54"},"nativeSrc":"1998:79:54","nodeType":"YulFunctionCall","src":"1998:79:54"},"nativeSrc":"1998:79:54","nodeType":"YulExpressionStatement","src":"1998:79:54"},{"nativeSrc":"2086:121:54","nodeType":"YulAssignment","src":"2086:121:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2102:9:54","nodeType":"YulIdentifier","src":"2102:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2121:6:54","nodeType":"YulIdentifier","src":"2121:6:54"},{"kind":"number","nativeSrc":"2129:2:54","nodeType":"YulLiteral","src":"2129:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2117:3:54","nodeType":"YulIdentifier","src":"2117:3:54"},"nativeSrc":"2117:15:54","nodeType":"YulFunctionCall","src":"2117:15:54"},{"kind":"number","nativeSrc":"2134:66:54","nodeType":"YulLiteral","src":"2134:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"2113:3:54","nodeType":"YulIdentifier","src":"2113:3:54"},"nativeSrc":"2113:88:54","nodeType":"YulFunctionCall","src":"2113:88:54"}],"functionName":{"name":"add","nativeSrc":"2098:3:54","nodeType":"YulIdentifier","src":"2098:3:54"},"nativeSrc":"2098:104:54","nodeType":"YulFunctionCall","src":"2098:104:54"},{"kind":"number","nativeSrc":"2204:2:54","nodeType":"YulLiteral","src":"2204:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2094:3:54","nodeType":"YulIdentifier","src":"2094:3:54"},"nativeSrc":"2094:113:54","nodeType":"YulFunctionCall","src":"2094:113:54"},"variableNames":[{"name":"tail","nativeSrc":"2086:4:54","nodeType":"YulIdentifier","src":"2086:4:54"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"1760:453:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1848:9:54","nodeType":"YulTypedName","src":"1848:9:54","type":""},{"name":"value0","nativeSrc":"1859:6:54","nodeType":"YulTypedName","src":"1859:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1870:4:54","nodeType":"YulTypedName","src":"1870:4:54","type":""}],"src":"1760:453:54"},{"body":{"nativeSrc":"2319:125:54","nodeType":"YulBlock","src":"2319:125:54","statements":[{"nativeSrc":"2329:26:54","nodeType":"YulAssignment","src":"2329:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2341:9:54","nodeType":"YulIdentifier","src":"2341:9:54"},{"kind":"number","nativeSrc":"2352:2:54","nodeType":"YulLiteral","src":"2352:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2337:3:54","nodeType":"YulIdentifier","src":"2337:3:54"},"nativeSrc":"2337:18:54","nodeType":"YulFunctionCall","src":"2337:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2329:4:54","nodeType":"YulIdentifier","src":"2329:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2371:9:54","nodeType":"YulIdentifier","src":"2371:9:54"},{"arguments":[{"name":"value0","nativeSrc":"2386:6:54","nodeType":"YulIdentifier","src":"2386:6:54"},{"kind":"number","nativeSrc":"2394:42:54","nodeType":"YulLiteral","src":"2394:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2382:3:54","nodeType":"YulIdentifier","src":"2382:3:54"},"nativeSrc":"2382:55:54","nodeType":"YulFunctionCall","src":"2382:55:54"}],"functionName":{"name":"mstore","nativeSrc":"2364:6:54","nodeType":"YulIdentifier","src":"2364:6:54"},"nativeSrc":"2364:74:54","nodeType":"YulFunctionCall","src":"2364:74:54"},"nativeSrc":"2364:74:54","nodeType":"YulExpressionStatement","src":"2364:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2218:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2288:9:54","nodeType":"YulTypedName","src":"2288:9:54","type":""},{"name":"value0","nativeSrc":"2299:6:54","nodeType":"YulTypedName","src":"2299:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2310:4:54","nodeType":"YulTypedName","src":"2310:4:54","type":""}],"src":"2218:226:54"},{"body":{"nativeSrc":"2550:76:54","nodeType":"YulBlock","src":"2550:76:54","statements":[{"nativeSrc":"2560:26:54","nodeType":"YulAssignment","src":"2560:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2572:9:54","nodeType":"YulIdentifier","src":"2572:9:54"},{"kind":"number","nativeSrc":"2583:2:54","nodeType":"YulLiteral","src":"2583:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2568:3:54","nodeType":"YulIdentifier","src":"2568:3:54"},"nativeSrc":"2568:18:54","nodeType":"YulFunctionCall","src":"2568:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2560:4:54","nodeType":"YulIdentifier","src":"2560:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2602:9:54","nodeType":"YulIdentifier","src":"2602:9:54"},{"name":"value0","nativeSrc":"2613:6:54","nodeType":"YulIdentifier","src":"2613:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2595:6:54","nodeType":"YulIdentifier","src":"2595:6:54"},"nativeSrc":"2595:25:54","nodeType":"YulFunctionCall","src":"2595:25:54"},"nativeSrc":"2595:25:54","nodeType":"YulExpressionStatement","src":"2595:25:54"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2449:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2519:9:54","nodeType":"YulTypedName","src":"2519:9:54","type":""},{"name":"value0","nativeSrc":"2530:6:54","nodeType":"YulTypedName","src":"2530:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2541:4:54","nodeType":"YulTypedName","src":"2541:4:54","type":""}],"src":"2449:177:54"},{"body":{"nativeSrc":"2701:116:54","nodeType":"YulBlock","src":"2701:116:54","statements":[{"body":{"nativeSrc":"2747:16:54","nodeType":"YulBlock","src":"2747:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2756:1:54","nodeType":"YulLiteral","src":"2756:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2759:1:54","nodeType":"YulLiteral","src":"2759:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2749:6:54","nodeType":"YulIdentifier","src":"2749:6:54"},"nativeSrc":"2749:12:54","nodeType":"YulFunctionCall","src":"2749:12:54"},"nativeSrc":"2749:12:54","nodeType":"YulExpressionStatement","src":"2749:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2722:7:54","nodeType":"YulIdentifier","src":"2722:7:54"},{"name":"headStart","nativeSrc":"2731:9:54","nodeType":"YulIdentifier","src":"2731:9:54"}],"functionName":{"name":"sub","nativeSrc":"2718:3:54","nodeType":"YulIdentifier","src":"2718:3:54"},"nativeSrc":"2718:23:54","nodeType":"YulFunctionCall","src":"2718:23:54"},{"kind":"number","nativeSrc":"2743:2:54","nodeType":"YulLiteral","src":"2743:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2714:3:54","nodeType":"YulIdentifier","src":"2714:3:54"},"nativeSrc":"2714:32:54","nodeType":"YulFunctionCall","src":"2714:32:54"},"nativeSrc":"2711:52:54","nodeType":"YulIf","src":"2711:52:54"},{"nativeSrc":"2772:39:54","nodeType":"YulAssignment","src":"2772:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2801:9:54","nodeType":"YulIdentifier","src":"2801:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2782:18:54","nodeType":"YulIdentifier","src":"2782:18:54"},"nativeSrc":"2782:29:54","nodeType":"YulFunctionCall","src":"2782:29:54"},"variableNames":[{"name":"value0","nativeSrc":"2772:6:54","nodeType":"YulIdentifier","src":"2772:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2631:186:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2667:9:54","nodeType":"YulTypedName","src":"2667:9:54","type":""},{"name":"dataEnd","nativeSrc":"2678:7:54","nodeType":"YulTypedName","src":"2678:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2690:6:54","nodeType":"YulTypedName","src":"2690:6:54","type":""}],"src":"2631:186:54"},{"body":{"nativeSrc":"2923:76:54","nodeType":"YulBlock","src":"2923:76:54","statements":[{"nativeSrc":"2933:26:54","nodeType":"YulAssignment","src":"2933:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2945:9:54","nodeType":"YulIdentifier","src":"2945:9:54"},{"kind":"number","nativeSrc":"2956:2:54","nodeType":"YulLiteral","src":"2956:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2941:3:54","nodeType":"YulIdentifier","src":"2941:3:54"},"nativeSrc":"2941:18:54","nodeType":"YulFunctionCall","src":"2941:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2933:4:54","nodeType":"YulIdentifier","src":"2933:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2975:9:54","nodeType":"YulIdentifier","src":"2975:9:54"},{"name":"value0","nativeSrc":"2986:6:54","nodeType":"YulIdentifier","src":"2986:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2968:6:54","nodeType":"YulIdentifier","src":"2968:6:54"},"nativeSrc":"2968:25:54","nodeType":"YulFunctionCall","src":"2968:25:54"},"nativeSrc":"2968:25:54","nodeType":"YulExpressionStatement","src":"2968:25:54"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2822:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2892:9:54","nodeType":"YulTypedName","src":"2892:9:54","type":""},{"name":"value0","nativeSrc":"2903:6:54","nodeType":"YulTypedName","src":"2903:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2914:4:54","nodeType":"YulTypedName","src":"2914:4:54","type":""}],"src":"2822:177:54"},{"body":{"nativeSrc":"3074:110:54","nodeType":"YulBlock","src":"3074:110:54","statements":[{"body":{"nativeSrc":"3120:16:54","nodeType":"YulBlock","src":"3120:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3129:1:54","nodeType":"YulLiteral","src":"3129:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3132:1:54","nodeType":"YulLiteral","src":"3132:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3122:6:54","nodeType":"YulIdentifier","src":"3122:6:54"},"nativeSrc":"3122:12:54","nodeType":"YulFunctionCall","src":"3122:12:54"},"nativeSrc":"3122:12:54","nodeType":"YulExpressionStatement","src":"3122:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3095:7:54","nodeType":"YulIdentifier","src":"3095:7:54"},{"name":"headStart","nativeSrc":"3104:9:54","nodeType":"YulIdentifier","src":"3104:9:54"}],"functionName":{"name":"sub","nativeSrc":"3091:3:54","nodeType":"YulIdentifier","src":"3091:3:54"},"nativeSrc":"3091:23:54","nodeType":"YulFunctionCall","src":"3091:23:54"},{"kind":"number","nativeSrc":"3116:2:54","nodeType":"YulLiteral","src":"3116:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3087:3:54","nodeType":"YulIdentifier","src":"3087:3:54"},"nativeSrc":"3087:32:54","nodeType":"YulFunctionCall","src":"3087:32:54"},"nativeSrc":"3084:52:54","nodeType":"YulIf","src":"3084:52:54"},{"nativeSrc":"3145:33:54","nodeType":"YulAssignment","src":"3145:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3168:9:54","nodeType":"YulIdentifier","src":"3168:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"3155:12:54","nodeType":"YulIdentifier","src":"3155:12:54"},"nativeSrc":"3155:23:54","nodeType":"YulFunctionCall","src":"3155:23:54"},"variableNames":[{"name":"value0","nativeSrc":"3145:6:54","nodeType":"YulIdentifier","src":"3145:6:54"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3004:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3040:9:54","nodeType":"YulTypedName","src":"3040:9:54","type":""},{"name":"dataEnd","nativeSrc":"3051:7:54","nodeType":"YulTypedName","src":"3051:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3063:6:54","nodeType":"YulTypedName","src":"3063:6:54","type":""}],"src":"3004:180:54"},{"body":{"nativeSrc":"3259:110:54","nodeType":"YulBlock","src":"3259:110:54","statements":[{"body":{"nativeSrc":"3305:16:54","nodeType":"YulBlock","src":"3305:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3314:1:54","nodeType":"YulLiteral","src":"3314:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3317:1:54","nodeType":"YulLiteral","src":"3317:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3307:6:54","nodeType":"YulIdentifier","src":"3307:6:54"},"nativeSrc":"3307:12:54","nodeType":"YulFunctionCall","src":"3307:12:54"},"nativeSrc":"3307:12:54","nodeType":"YulExpressionStatement","src":"3307:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3280:7:54","nodeType":"YulIdentifier","src":"3280:7:54"},{"name":"headStart","nativeSrc":"3289:9:54","nodeType":"YulIdentifier","src":"3289:9:54"}],"functionName":{"name":"sub","nativeSrc":"3276:3:54","nodeType":"YulIdentifier","src":"3276:3:54"},"nativeSrc":"3276:23:54","nodeType":"YulFunctionCall","src":"3276:23:54"},{"kind":"number","nativeSrc":"3301:2:54","nodeType":"YulLiteral","src":"3301:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3272:3:54","nodeType":"YulIdentifier","src":"3272:3:54"},"nativeSrc":"3272:32:54","nodeType":"YulFunctionCall","src":"3272:32:54"},"nativeSrc":"3269:52:54","nodeType":"YulIf","src":"3269:52:54"},{"nativeSrc":"3330:33:54","nodeType":"YulAssignment","src":"3330:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3353:9:54","nodeType":"YulIdentifier","src":"3353:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"3340:12:54","nodeType":"YulIdentifier","src":"3340:12:54"},"nativeSrc":"3340:23:54","nodeType":"YulFunctionCall","src":"3340:23:54"},"variableNames":[{"name":"value0","nativeSrc":"3330:6:54","nodeType":"YulIdentifier","src":"3330:6:54"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"3189:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3225:9:54","nodeType":"YulTypedName","src":"3225:9:54","type":""},{"name":"dataEnd","nativeSrc":"3236:7:54","nodeType":"YulTypedName","src":"3236:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3248:6:54","nodeType":"YulTypedName","src":"3248:6:54","type":""}],"src":"3189:180:54"},{"body":{"nativeSrc":"3469:92:54","nodeType":"YulBlock","src":"3469:92:54","statements":[{"nativeSrc":"3479:26:54","nodeType":"YulAssignment","src":"3479:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3491:9:54","nodeType":"YulIdentifier","src":"3491:9:54"},{"kind":"number","nativeSrc":"3502:2:54","nodeType":"YulLiteral","src":"3502:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3487:3:54","nodeType":"YulIdentifier","src":"3487:3:54"},"nativeSrc":"3487:18:54","nodeType":"YulFunctionCall","src":"3487:18:54"},"variableNames":[{"name":"tail","nativeSrc":"3479:4:54","nodeType":"YulIdentifier","src":"3479:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3521:9:54","nodeType":"YulIdentifier","src":"3521:9:54"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3546:6:54","nodeType":"YulIdentifier","src":"3546:6:54"}],"functionName":{"name":"iszero","nativeSrc":"3539:6:54","nodeType":"YulIdentifier","src":"3539:6:54"},"nativeSrc":"3539:14:54","nodeType":"YulFunctionCall","src":"3539:14:54"}],"functionName":{"name":"iszero","nativeSrc":"3532:6:54","nodeType":"YulIdentifier","src":"3532:6:54"},"nativeSrc":"3532:22:54","nodeType":"YulFunctionCall","src":"3532:22:54"}],"functionName":{"name":"mstore","nativeSrc":"3514:6:54","nodeType":"YulIdentifier","src":"3514:6:54"},"nativeSrc":"3514:41:54","nodeType":"YulFunctionCall","src":"3514:41:54"},"nativeSrc":"3514:41:54","nodeType":"YulExpressionStatement","src":"3514:41:54"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3374:187:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3438:9:54","nodeType":"YulTypedName","src":"3438:9:54","type":""},{"name":"value0","nativeSrc":"3449:6:54","nodeType":"YulTypedName","src":"3449:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3460:4:54","nodeType":"YulTypedName","src":"3460:4:54","type":""}],"src":"3374:187:54"},{"body":{"nativeSrc":"3740:246:54","nodeType":"YulBlock","src":"3740:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3757:9:54","nodeType":"YulIdentifier","src":"3757:9:54"},{"kind":"number","nativeSrc":"3768:2:54","nodeType":"YulLiteral","src":"3768:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3750:6:54","nodeType":"YulIdentifier","src":"3750:6:54"},"nativeSrc":"3750:21:54","nodeType":"YulFunctionCall","src":"3750:21:54"},"nativeSrc":"3750:21:54","nodeType":"YulExpressionStatement","src":"3750:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3791:9:54","nodeType":"YulIdentifier","src":"3791:9:54"},{"kind":"number","nativeSrc":"3802:2:54","nodeType":"YulLiteral","src":"3802:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3787:3:54","nodeType":"YulIdentifier","src":"3787:3:54"},"nativeSrc":"3787:18:54","nodeType":"YulFunctionCall","src":"3787:18:54"},{"kind":"number","nativeSrc":"3807:2:54","nodeType":"YulLiteral","src":"3807:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"3780:6:54","nodeType":"YulIdentifier","src":"3780:6:54"},"nativeSrc":"3780:30:54","nodeType":"YulFunctionCall","src":"3780:30:54"},"nativeSrc":"3780:30:54","nodeType":"YulExpressionStatement","src":"3780:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3830:9:54","nodeType":"YulIdentifier","src":"3830:9:54"},{"kind":"number","nativeSrc":"3841:2:54","nodeType":"YulLiteral","src":"3841:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3826:3:54","nodeType":"YulIdentifier","src":"3826:3:54"},"nativeSrc":"3826:18:54","nodeType":"YulFunctionCall","src":"3826:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a204361","kind":"string","nativeSrc":"3846:34:54","nodeType":"YulLiteral","src":"3846:34:54","type":"","value":"Timelock::executeTransaction: Ca"}],"functionName":{"name":"mstore","nativeSrc":"3819:6:54","nodeType":"YulIdentifier","src":"3819:6:54"},"nativeSrc":"3819:62:54","nodeType":"YulFunctionCall","src":"3819:62:54"},"nativeSrc":"3819:62:54","nodeType":"YulExpressionStatement","src":"3819:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3901:9:54","nodeType":"YulIdentifier","src":"3901:9:54"},{"kind":"number","nativeSrc":"3912:2:54","nodeType":"YulLiteral","src":"3912:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3897:3:54","nodeType":"YulIdentifier","src":"3897:3:54"},"nativeSrc":"3897:18:54","nodeType":"YulFunctionCall","src":"3897:18:54"},{"hexValue":"6c6c206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"3917:26:54","nodeType":"YulLiteral","src":"3917:26:54","type":"","value":"ll must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"3890:6:54","nodeType":"YulIdentifier","src":"3890:6:54"},"nativeSrc":"3890:54:54","nodeType":"YulFunctionCall","src":"3890:54:54"},"nativeSrc":"3890:54:54","nodeType":"YulExpressionStatement","src":"3890:54:54"},{"nativeSrc":"3953:27:54","nodeType":"YulAssignment","src":"3953:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3965:9:54","nodeType":"YulIdentifier","src":"3965:9:54"},{"kind":"number","nativeSrc":"3976:3:54","nodeType":"YulLiteral","src":"3976:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3961:3:54","nodeType":"YulIdentifier","src":"3961:3:54"},"nativeSrc":"3961:19:54","nodeType":"YulFunctionCall","src":"3961:19:54"},"variableNames":[{"name":"tail","nativeSrc":"3953:4:54","nodeType":"YulIdentifier","src":"3953:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3566:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3717:9:54","nodeType":"YulTypedName","src":"3717:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3731:4:54","nodeType":"YulTypedName","src":"3731:4:54","type":""}],"src":"3566:420:54"},{"body":{"nativeSrc":"4058:259:54","nodeType":"YulBlock","src":"4058:259:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4075:3:54","nodeType":"YulIdentifier","src":"4075:3:54"},{"name":"length","nativeSrc":"4080:6:54","nodeType":"YulIdentifier","src":"4080:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4068:6:54","nodeType":"YulIdentifier","src":"4068:6:54"},"nativeSrc":"4068:19:54","nodeType":"YulFunctionCall","src":"4068:19:54"},"nativeSrc":"4068:19:54","nodeType":"YulExpressionStatement","src":"4068:19:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4113:3:54","nodeType":"YulIdentifier","src":"4113:3:54"},{"kind":"number","nativeSrc":"4118:4:54","nodeType":"YulLiteral","src":"4118:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4109:3:54","nodeType":"YulIdentifier","src":"4109:3:54"},"nativeSrc":"4109:14:54","nodeType":"YulFunctionCall","src":"4109:14:54"},{"name":"start","nativeSrc":"4125:5:54","nodeType":"YulIdentifier","src":"4125:5:54"},{"name":"length","nativeSrc":"4132:6:54","nodeType":"YulIdentifier","src":"4132:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"4096:12:54","nodeType":"YulIdentifier","src":"4096:12:54"},"nativeSrc":"4096:43:54","nodeType":"YulFunctionCall","src":"4096:43:54"},"nativeSrc":"4096:43:54","nodeType":"YulExpressionStatement","src":"4096:43:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4163:3:54","nodeType":"YulIdentifier","src":"4163:3:54"},{"name":"length","nativeSrc":"4168:6:54","nodeType":"YulIdentifier","src":"4168:6:54"}],"functionName":{"name":"add","nativeSrc":"4159:3:54","nodeType":"YulIdentifier","src":"4159:3:54"},"nativeSrc":"4159:16:54","nodeType":"YulFunctionCall","src":"4159:16:54"},{"kind":"number","nativeSrc":"4177:4:54","nodeType":"YulLiteral","src":"4177:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4155:3:54","nodeType":"YulIdentifier","src":"4155:3:54"},"nativeSrc":"4155:27:54","nodeType":"YulFunctionCall","src":"4155:27:54"},{"kind":"number","nativeSrc":"4184:1:54","nodeType":"YulLiteral","src":"4184:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4148:6:54","nodeType":"YulIdentifier","src":"4148:6:54"},"nativeSrc":"4148:38:54","nodeType":"YulFunctionCall","src":"4148:38:54"},"nativeSrc":"4148:38:54","nodeType":"YulExpressionStatement","src":"4148:38:54"},{"nativeSrc":"4195:116:54","nodeType":"YulAssignment","src":"4195:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4210:3:54","nodeType":"YulIdentifier","src":"4210:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4223:6:54","nodeType":"YulIdentifier","src":"4223:6:54"},{"kind":"number","nativeSrc":"4231:2:54","nodeType":"YulLiteral","src":"4231:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4219:3:54","nodeType":"YulIdentifier","src":"4219:3:54"},"nativeSrc":"4219:15:54","nodeType":"YulFunctionCall","src":"4219:15:54"},{"kind":"number","nativeSrc":"4236:66:54","nodeType":"YulLiteral","src":"4236:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4215:3:54","nodeType":"YulIdentifier","src":"4215:3:54"},"nativeSrc":"4215:88:54","nodeType":"YulFunctionCall","src":"4215:88:54"}],"functionName":{"name":"add","nativeSrc":"4206:3:54","nodeType":"YulIdentifier","src":"4206:3:54"},"nativeSrc":"4206:98:54","nodeType":"YulFunctionCall","src":"4206:98:54"},{"kind":"number","nativeSrc":"4306:4:54","nodeType":"YulLiteral","src":"4306:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4202:3:54","nodeType":"YulIdentifier","src":"4202:3:54"},"nativeSrc":"4202:109:54","nodeType":"YulFunctionCall","src":"4202:109:54"},"variableNames":[{"name":"end","nativeSrc":"4195:3:54","nodeType":"YulIdentifier","src":"4195:3:54"}]}]},"name":"abi_encode_string_calldata","nativeSrc":"3991:326:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"4027:5:54","nodeType":"YulTypedName","src":"4027:5:54","type":""},{"name":"length","nativeSrc":"4034:6:54","nodeType":"YulTypedName","src":"4034:6:54","type":""},{"name":"pos","nativeSrc":"4042:3:54","nodeType":"YulTypedName","src":"4042:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4050:3:54","nodeType":"YulTypedName","src":"4050:3:54","type":""}],"src":"3991:326:54"},{"body":{"nativeSrc":"4593:429:54","nodeType":"YulBlock","src":"4593:429:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4610:9:54","nodeType":"YulIdentifier","src":"4610:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4625:6:54","nodeType":"YulIdentifier","src":"4625:6:54"},{"kind":"number","nativeSrc":"4633:42:54","nodeType":"YulLiteral","src":"4633:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4621:3:54","nodeType":"YulIdentifier","src":"4621:3:54"},"nativeSrc":"4621:55:54","nodeType":"YulFunctionCall","src":"4621:55:54"}],"functionName":{"name":"mstore","nativeSrc":"4603:6:54","nodeType":"YulIdentifier","src":"4603:6:54"},"nativeSrc":"4603:74:54","nodeType":"YulFunctionCall","src":"4603:74:54"},"nativeSrc":"4603:74:54","nodeType":"YulExpressionStatement","src":"4603:74:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4697:9:54","nodeType":"YulIdentifier","src":"4697:9:54"},{"kind":"number","nativeSrc":"4708:2:54","nodeType":"YulLiteral","src":"4708:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4693:3:54","nodeType":"YulIdentifier","src":"4693:3:54"},"nativeSrc":"4693:18:54","nodeType":"YulFunctionCall","src":"4693:18:54"},{"name":"value1","nativeSrc":"4713:6:54","nodeType":"YulIdentifier","src":"4713:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4686:6:54","nodeType":"YulIdentifier","src":"4686:6:54"},"nativeSrc":"4686:34:54","nodeType":"YulFunctionCall","src":"4686:34:54"},"nativeSrc":"4686:34:54","nodeType":"YulExpressionStatement","src":"4686:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4740:9:54","nodeType":"YulIdentifier","src":"4740:9:54"},{"kind":"number","nativeSrc":"4751:2:54","nodeType":"YulLiteral","src":"4751:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4736:3:54","nodeType":"YulIdentifier","src":"4736:3:54"},"nativeSrc":"4736:18:54","nodeType":"YulFunctionCall","src":"4736:18:54"},{"kind":"number","nativeSrc":"4756:3:54","nodeType":"YulLiteral","src":"4756:3:54","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"4729:6:54","nodeType":"YulIdentifier","src":"4729:6:54"},"nativeSrc":"4729:31:54","nodeType":"YulFunctionCall","src":"4729:31:54"},"nativeSrc":"4729:31:54","nodeType":"YulExpressionStatement","src":"4729:31:54"},{"nativeSrc":"4769:77:54","nodeType":"YulVariableDeclaration","src":"4769:77:54","value":{"arguments":[{"name":"value2","nativeSrc":"4810:6:54","nodeType":"YulIdentifier","src":"4810:6:54"},{"name":"value3","nativeSrc":"4818:6:54","nodeType":"YulIdentifier","src":"4818:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"4830:9:54","nodeType":"YulIdentifier","src":"4830:9:54"},{"kind":"number","nativeSrc":"4841:3:54","nodeType":"YulLiteral","src":"4841:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"4826:3:54","nodeType":"YulIdentifier","src":"4826:3:54"},"nativeSrc":"4826:19:54","nodeType":"YulFunctionCall","src":"4826:19:54"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"4783:26:54","nodeType":"YulIdentifier","src":"4783:26:54"},"nativeSrc":"4783:63:54","nodeType":"YulFunctionCall","src":"4783:63:54"},"variables":[{"name":"tail_1","nativeSrc":"4773:6:54","nodeType":"YulTypedName","src":"4773:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4866:9:54","nodeType":"YulIdentifier","src":"4866:9:54"},{"kind":"number","nativeSrc":"4877:2:54","nodeType":"YulLiteral","src":"4877:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4862:3:54","nodeType":"YulIdentifier","src":"4862:3:54"},"nativeSrc":"4862:18:54","nodeType":"YulFunctionCall","src":"4862:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"4886:6:54","nodeType":"YulIdentifier","src":"4886:6:54"},{"name":"headStart","nativeSrc":"4894:9:54","nodeType":"YulIdentifier","src":"4894:9:54"}],"functionName":{"name":"sub","nativeSrc":"4882:3:54","nodeType":"YulIdentifier","src":"4882:3:54"},"nativeSrc":"4882:22:54","nodeType":"YulFunctionCall","src":"4882:22:54"}],"functionName":{"name":"mstore","nativeSrc":"4855:6:54","nodeType":"YulIdentifier","src":"4855:6:54"},"nativeSrc":"4855:50:54","nodeType":"YulFunctionCall","src":"4855:50:54"},"nativeSrc":"4855:50:54","nodeType":"YulExpressionStatement","src":"4855:50:54"},{"nativeSrc":"4914:58:54","nodeType":"YulAssignment","src":"4914:58:54","value":{"arguments":[{"name":"value4","nativeSrc":"4949:6:54","nodeType":"YulIdentifier","src":"4949:6:54"},{"name":"value5","nativeSrc":"4957:6:54","nodeType":"YulIdentifier","src":"4957:6:54"},{"name":"tail_1","nativeSrc":"4965:6:54","nodeType":"YulIdentifier","src":"4965:6:54"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"4922:26:54","nodeType":"YulIdentifier","src":"4922:26:54"},"nativeSrc":"4922:50:54","nodeType":"YulFunctionCall","src":"4922:50:54"},"variableNames":[{"name":"tail","nativeSrc":"4914:4:54","nodeType":"YulIdentifier","src":"4914:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4992:9:54","nodeType":"YulIdentifier","src":"4992:9:54"},{"kind":"number","nativeSrc":"5003:3:54","nodeType":"YulLiteral","src":"5003:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4988:3:54","nodeType":"YulIdentifier","src":"4988:3:54"},"nativeSrc":"4988:19:54","nodeType":"YulFunctionCall","src":"4988:19:54"},{"name":"value6","nativeSrc":"5009:6:54","nodeType":"YulIdentifier","src":"5009:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4981:6:54","nodeType":"YulIdentifier","src":"4981:6:54"},"nativeSrc":"4981:35:54","nodeType":"YulFunctionCall","src":"4981:35:54"},"nativeSrc":"4981:35:54","nodeType":"YulExpressionStatement","src":"4981:35:54"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"4322:700:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4514:9:54","nodeType":"YulTypedName","src":"4514:9:54","type":""},{"name":"value6","nativeSrc":"4525:6:54","nodeType":"YulTypedName","src":"4525:6:54","type":""},{"name":"value5","nativeSrc":"4533:6:54","nodeType":"YulTypedName","src":"4533:6:54","type":""},{"name":"value4","nativeSrc":"4541:6:54","nodeType":"YulTypedName","src":"4541:6:54","type":""},{"name":"value3","nativeSrc":"4549:6:54","nodeType":"YulTypedName","src":"4549:6:54","type":""},{"name":"value2","nativeSrc":"4557:6:54","nodeType":"YulTypedName","src":"4557:6:54","type":""},{"name":"value1","nativeSrc":"4565:6:54","nodeType":"YulTypedName","src":"4565:6:54","type":""},{"name":"value0","nativeSrc":"4573:6:54","nodeType":"YulTypedName","src":"4573:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4584:4:54","nodeType":"YulTypedName","src":"4584:4:54","type":""}],"src":"4322:700:54"},{"body":{"nativeSrc":"5201:251:54","nodeType":"YulBlock","src":"5201:251:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5218:9:54","nodeType":"YulIdentifier","src":"5218:9:54"},{"kind":"number","nativeSrc":"5229:2:54","nodeType":"YulLiteral","src":"5229:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5211:6:54","nodeType":"YulIdentifier","src":"5211:6:54"},"nativeSrc":"5211:21:54","nodeType":"YulFunctionCall","src":"5211:21:54"},"nativeSrc":"5211:21:54","nodeType":"YulExpressionStatement","src":"5211:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5252:9:54","nodeType":"YulIdentifier","src":"5252:9:54"},{"kind":"number","nativeSrc":"5263:2:54","nodeType":"YulLiteral","src":"5263:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5248:3:54","nodeType":"YulIdentifier","src":"5248:3:54"},"nativeSrc":"5248:18:54","nodeType":"YulFunctionCall","src":"5248:18:54"},{"kind":"number","nativeSrc":"5268:2:54","nodeType":"YulLiteral","src":"5268:2:54","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"5241:6:54","nodeType":"YulIdentifier","src":"5241:6:54"},"nativeSrc":"5241:30:54","nodeType":"YulFunctionCall","src":"5241:30:54"},"nativeSrc":"5241:30:54","nodeType":"YulExpressionStatement","src":"5241:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5291:9:54","nodeType":"YulIdentifier","src":"5291:9:54"},{"kind":"number","nativeSrc":"5302:2:54","nodeType":"YulLiteral","src":"5302:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5287:3:54","nodeType":"YulIdentifier","src":"5287:3:54"},"nativeSrc":"5287:18:54","nodeType":"YulFunctionCall","src":"5287:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"5307:34:54","nodeType":"YulLiteral","src":"5307:34:54","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"5280:6:54","nodeType":"YulIdentifier","src":"5280:6:54"},"nativeSrc":"5280:62:54","nodeType":"YulFunctionCall","src":"5280:62:54"},"nativeSrc":"5280:62:54","nodeType":"YulExpressionStatement","src":"5280:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5362:9:54","nodeType":"YulIdentifier","src":"5362:9:54"},{"kind":"number","nativeSrc":"5373:2:54","nodeType":"YulLiteral","src":"5373:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5358:3:54","nodeType":"YulIdentifier","src":"5358:3:54"},"nativeSrc":"5358:18:54","nodeType":"YulFunctionCall","src":"5358:18:54"},{"hexValue":"616e73616374696f6e206861736e2774206265656e207175657565642e","kind":"string","nativeSrc":"5378:31:54","nodeType":"YulLiteral","src":"5378:31:54","type":"","value":"ansaction hasn't been queued."}],"functionName":{"name":"mstore","nativeSrc":"5351:6:54","nodeType":"YulIdentifier","src":"5351:6:54"},"nativeSrc":"5351:59:54","nodeType":"YulFunctionCall","src":"5351:59:54"},"nativeSrc":"5351:59:54","nodeType":"YulExpressionStatement","src":"5351:59:54"},{"nativeSrc":"5419:27:54","nodeType":"YulAssignment","src":"5419:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5431:9:54","nodeType":"YulIdentifier","src":"5431:9:54"},{"kind":"number","nativeSrc":"5442:3:54","nodeType":"YulLiteral","src":"5442:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5427:3:54","nodeType":"YulIdentifier","src":"5427:3:54"},"nativeSrc":"5427:19:54","nodeType":"YulFunctionCall","src":"5427:19:54"},"variableNames":[{"name":"tail","nativeSrc":"5419:4:54","nodeType":"YulIdentifier","src":"5419:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5027:425:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5178:9:54","nodeType":"YulTypedName","src":"5178:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5192:4:54","nodeType":"YulTypedName","src":"5192:4:54","type":""}],"src":"5027:425:54"},{"body":{"nativeSrc":"5631:299:54","nodeType":"YulBlock","src":"5631:299:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5648:9:54","nodeType":"YulIdentifier","src":"5648:9:54"},{"kind":"number","nativeSrc":"5659:2:54","nodeType":"YulLiteral","src":"5659:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5641:6:54","nodeType":"YulIdentifier","src":"5641:6:54"},"nativeSrc":"5641:21:54","nodeType":"YulFunctionCall","src":"5641:21:54"},"nativeSrc":"5641:21:54","nodeType":"YulExpressionStatement","src":"5641:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5682:9:54","nodeType":"YulIdentifier","src":"5682:9:54"},{"kind":"number","nativeSrc":"5693:2:54","nodeType":"YulLiteral","src":"5693:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5678:3:54","nodeType":"YulIdentifier","src":"5678:3:54"},"nativeSrc":"5678:18:54","nodeType":"YulFunctionCall","src":"5678:18:54"},{"kind":"number","nativeSrc":"5698:2:54","nodeType":"YulLiteral","src":"5698:2:54","type":"","value":"69"}],"functionName":{"name":"mstore","nativeSrc":"5671:6:54","nodeType":"YulIdentifier","src":"5671:6:54"},"nativeSrc":"5671:30:54","nodeType":"YulFunctionCall","src":"5671:30:54"},"nativeSrc":"5671:30:54","nodeType":"YulExpressionStatement","src":"5671:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5721:9:54","nodeType":"YulIdentifier","src":"5721:9:54"},{"kind":"number","nativeSrc":"5732:2:54","nodeType":"YulLiteral","src":"5732:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5717:3:54","nodeType":"YulIdentifier","src":"5717:3:54"},"nativeSrc":"5717:18:54","nodeType":"YulFunctionCall","src":"5717:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"5737:34:54","nodeType":"YulLiteral","src":"5737:34:54","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"5710:6:54","nodeType":"YulIdentifier","src":"5710:6:54"},"nativeSrc":"5710:62:54","nodeType":"YulFunctionCall","src":"5710:62:54"},"nativeSrc":"5710:62:54","nodeType":"YulExpressionStatement","src":"5710:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5792:9:54","nodeType":"YulIdentifier","src":"5792:9:54"},{"kind":"number","nativeSrc":"5803:2:54","nodeType":"YulLiteral","src":"5803:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5788:3:54","nodeType":"YulIdentifier","src":"5788:3:54"},"nativeSrc":"5788:18:54","nodeType":"YulFunctionCall","src":"5788:18:54"},{"hexValue":"616e73616374696f6e206861736e2774207375727061737365642074696d6520","kind":"string","nativeSrc":"5808:34:54","nodeType":"YulLiteral","src":"5808:34:54","type":"","value":"ansaction hasn't surpassed time "}],"functionName":{"name":"mstore","nativeSrc":"5781:6:54","nodeType":"YulIdentifier","src":"5781:6:54"},"nativeSrc":"5781:62:54","nodeType":"YulFunctionCall","src":"5781:62:54"},"nativeSrc":"5781:62:54","nodeType":"YulExpressionStatement","src":"5781:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5863:9:54","nodeType":"YulIdentifier","src":"5863:9:54"},{"kind":"number","nativeSrc":"5874:3:54","nodeType":"YulLiteral","src":"5874:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5859:3:54","nodeType":"YulIdentifier","src":"5859:3:54"},"nativeSrc":"5859:19:54","nodeType":"YulFunctionCall","src":"5859:19:54"},{"hexValue":"6c6f636b2e","kind":"string","nativeSrc":"5880:7:54","nodeType":"YulLiteral","src":"5880:7:54","type":"","value":"lock."}],"functionName":{"name":"mstore","nativeSrc":"5852:6:54","nodeType":"YulIdentifier","src":"5852:6:54"},"nativeSrc":"5852:36:54","nodeType":"YulFunctionCall","src":"5852:36:54"},"nativeSrc":"5852:36:54","nodeType":"YulExpressionStatement","src":"5852:36:54"},{"nativeSrc":"5897:27:54","nodeType":"YulAssignment","src":"5897:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5909:9:54","nodeType":"YulIdentifier","src":"5909:9:54"},{"kind":"number","nativeSrc":"5920:3:54","nodeType":"YulLiteral","src":"5920:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5905:3:54","nodeType":"YulIdentifier","src":"5905:3:54"},"nativeSrc":"5905:19:54","nodeType":"YulFunctionCall","src":"5905:19:54"},"variableNames":[{"name":"tail","nativeSrc":"5897:4:54","nodeType":"YulIdentifier","src":"5897:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5457:473:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5608:9:54","nodeType":"YulTypedName","src":"5608:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5622:4:54","nodeType":"YulTypedName","src":"5622:4:54","type":""}],"src":"5457:473:54"},{"body":{"nativeSrc":"5983:231:54","nodeType":"YulBlock","src":"5983:231:54","statements":[{"nativeSrc":"5993:16:54","nodeType":"YulAssignment","src":"5993:16:54","value":{"arguments":[{"name":"x","nativeSrc":"6004:1:54","nodeType":"YulIdentifier","src":"6004:1:54"},{"name":"y","nativeSrc":"6007:1:54","nodeType":"YulIdentifier","src":"6007:1:54"}],"functionName":{"name":"add","nativeSrc":"6000:3:54","nodeType":"YulIdentifier","src":"6000:3:54"},"nativeSrc":"6000:9:54","nodeType":"YulFunctionCall","src":"6000:9:54"},"variableNames":[{"name":"sum","nativeSrc":"5993:3:54","nodeType":"YulIdentifier","src":"5993:3:54"}]},{"body":{"nativeSrc":"6040:168:54","nodeType":"YulBlock","src":"6040:168:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6061:1:54","nodeType":"YulLiteral","src":"6061:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6064:77:54","nodeType":"YulLiteral","src":"6064:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6054:6:54","nodeType":"YulIdentifier","src":"6054:6:54"},"nativeSrc":"6054:88:54","nodeType":"YulFunctionCall","src":"6054:88:54"},"nativeSrc":"6054:88:54","nodeType":"YulExpressionStatement","src":"6054:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6162:1:54","nodeType":"YulLiteral","src":"6162:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"6165:4:54","nodeType":"YulLiteral","src":"6165:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6155:6:54","nodeType":"YulIdentifier","src":"6155:6:54"},"nativeSrc":"6155:15:54","nodeType":"YulFunctionCall","src":"6155:15:54"},"nativeSrc":"6155:15:54","nodeType":"YulExpressionStatement","src":"6155:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6190:1:54","nodeType":"YulLiteral","src":"6190:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6193:4:54","nodeType":"YulLiteral","src":"6193:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6183:6:54","nodeType":"YulIdentifier","src":"6183:6:54"},"nativeSrc":"6183:15:54","nodeType":"YulFunctionCall","src":"6183:15:54"},"nativeSrc":"6183:15:54","nodeType":"YulExpressionStatement","src":"6183:15:54"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6024:1:54","nodeType":"YulIdentifier","src":"6024:1:54"},{"name":"sum","nativeSrc":"6027:3:54","nodeType":"YulIdentifier","src":"6027:3:54"}],"functionName":{"name":"gt","nativeSrc":"6021:2:54","nodeType":"YulIdentifier","src":"6021:2:54"},"nativeSrc":"6021:10:54","nodeType":"YulFunctionCall","src":"6021:10:54"},"nativeSrc":"6018:190:54","nodeType":"YulIf","src":"6018:190:54"}]},"name":"checked_add_t_uint256","nativeSrc":"5935:279:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5966:1:54","nodeType":"YulTypedName","src":"5966:1:54","type":""},{"name":"y","nativeSrc":"5969:1:54","nodeType":"YulTypedName","src":"5969:1:54","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5975:3:54","nodeType":"YulTypedName","src":"5975:3:54","type":""}],"src":"5935:279:54"},{"body":{"nativeSrc":"6393:241:54","nodeType":"YulBlock","src":"6393:241:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6410:9:54","nodeType":"YulIdentifier","src":"6410:9:54"},{"kind":"number","nativeSrc":"6421:2:54","nodeType":"YulLiteral","src":"6421:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6403:6:54","nodeType":"YulIdentifier","src":"6403:6:54"},"nativeSrc":"6403:21:54","nodeType":"YulFunctionCall","src":"6403:21:54"},"nativeSrc":"6403:21:54","nodeType":"YulExpressionStatement","src":"6403:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6444:9:54","nodeType":"YulIdentifier","src":"6444:9:54"},{"kind":"number","nativeSrc":"6455:2:54","nodeType":"YulLiteral","src":"6455:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6440:3:54","nodeType":"YulIdentifier","src":"6440:3:54"},"nativeSrc":"6440:18:54","nodeType":"YulFunctionCall","src":"6440:18:54"},{"kind":"number","nativeSrc":"6460:2:54","nodeType":"YulLiteral","src":"6460:2:54","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"6433:6:54","nodeType":"YulIdentifier","src":"6433:6:54"},"nativeSrc":"6433:30:54","nodeType":"YulFunctionCall","src":"6433:30:54"},"nativeSrc":"6433:30:54","nodeType":"YulExpressionStatement","src":"6433:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6483:9:54","nodeType":"YulIdentifier","src":"6483:9:54"},{"kind":"number","nativeSrc":"6494:2:54","nodeType":"YulLiteral","src":"6494:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6479:3:54","nodeType":"YulIdentifier","src":"6479:3:54"},"nativeSrc":"6479:18:54","nodeType":"YulFunctionCall","src":"6479:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"6499:34:54","nodeType":"YulLiteral","src":"6499:34:54","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"6472:6:54","nodeType":"YulIdentifier","src":"6472:6:54"},"nativeSrc":"6472:62:54","nodeType":"YulFunctionCall","src":"6472:62:54"},"nativeSrc":"6472:62:54","nodeType":"YulExpressionStatement","src":"6472:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6554:9:54","nodeType":"YulIdentifier","src":"6554:9:54"},{"kind":"number","nativeSrc":"6565:2:54","nodeType":"YulLiteral","src":"6565:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6550:3:54","nodeType":"YulIdentifier","src":"6550:3:54"},"nativeSrc":"6550:18:54","nodeType":"YulFunctionCall","src":"6550:18:54"},{"hexValue":"616e73616374696f6e206973207374616c652e","kind":"string","nativeSrc":"6570:21:54","nodeType":"YulLiteral","src":"6570:21:54","type":"","value":"ansaction is stale."}],"functionName":{"name":"mstore","nativeSrc":"6543:6:54","nodeType":"YulIdentifier","src":"6543:6:54"},"nativeSrc":"6543:49:54","nodeType":"YulFunctionCall","src":"6543:49:54"},"nativeSrc":"6543:49:54","nodeType":"YulExpressionStatement","src":"6543:49:54"},{"nativeSrc":"6601:27:54","nodeType":"YulAssignment","src":"6601:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6613:9:54","nodeType":"YulIdentifier","src":"6613:9:54"},{"kind":"number","nativeSrc":"6624:3:54","nodeType":"YulLiteral","src":"6624:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6609:3:54","nodeType":"YulIdentifier","src":"6609:3:54"},"nativeSrc":"6609:19:54","nodeType":"YulFunctionCall","src":"6609:19:54"},"variableNames":[{"name":"tail","nativeSrc":"6601:4:54","nodeType":"YulIdentifier","src":"6601:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6219:415:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6370:9:54","nodeType":"YulTypedName","src":"6370:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6384:4:54","nodeType":"YulTypedName","src":"6384:4:54","type":""}],"src":"6219:415:54"},{"body":{"nativeSrc":"6786:124:54","nodeType":"YulBlock","src":"6786:124:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6809:3:54","nodeType":"YulIdentifier","src":"6809:3:54"},{"name":"value0","nativeSrc":"6814:6:54","nodeType":"YulIdentifier","src":"6814:6:54"},{"name":"value1","nativeSrc":"6822:6:54","nodeType":"YulIdentifier","src":"6822:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"6796:12:54","nodeType":"YulIdentifier","src":"6796:12:54"},"nativeSrc":"6796:33:54","nodeType":"YulFunctionCall","src":"6796:33:54"},"nativeSrc":"6796:33:54","nodeType":"YulExpressionStatement","src":"6796:33:54"},{"nativeSrc":"6838:26:54","nodeType":"YulVariableDeclaration","src":"6838:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"6852:3:54","nodeType":"YulIdentifier","src":"6852:3:54"},{"name":"value1","nativeSrc":"6857:6:54","nodeType":"YulIdentifier","src":"6857:6:54"}],"functionName":{"name":"add","nativeSrc":"6848:3:54","nodeType":"YulIdentifier","src":"6848:3:54"},"nativeSrc":"6848:16:54","nodeType":"YulFunctionCall","src":"6848:16:54"},"variables":[{"name":"_1","nativeSrc":"6842:2:54","nodeType":"YulTypedName","src":"6842:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"6880:2:54","nodeType":"YulIdentifier","src":"6880:2:54"},{"kind":"number","nativeSrc":"6884:1:54","nodeType":"YulLiteral","src":"6884:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6873:6:54","nodeType":"YulIdentifier","src":"6873:6:54"},"nativeSrc":"6873:13:54","nodeType":"YulFunctionCall","src":"6873:13:54"},"nativeSrc":"6873:13:54","nodeType":"YulExpressionStatement","src":"6873:13:54"},{"nativeSrc":"6895:9:54","nodeType":"YulAssignment","src":"6895:9:54","value":{"name":"_1","nativeSrc":"6902:2:54","nodeType":"YulIdentifier","src":"6902:2:54"},"variableNames":[{"name":"end","nativeSrc":"6895:3:54","nodeType":"YulIdentifier","src":"6895:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"6639:271:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6754:3:54","nodeType":"YulTypedName","src":"6754:3:54","type":""},{"name":"value1","nativeSrc":"6759:6:54","nodeType":"YulTypedName","src":"6759:6:54","type":""},{"name":"value0","nativeSrc":"6767:6:54","nodeType":"YulTypedName","src":"6767:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6778:3:54","nodeType":"YulTypedName","src":"6778:3:54","type":""}],"src":"6639:271:54"},{"body":{"nativeSrc":"7088:241:54","nodeType":"YulBlock","src":"7088:241:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7105:3:54","nodeType":"YulIdentifier","src":"7105:3:54"},{"arguments":[{"name":"value0","nativeSrc":"7114:6:54","nodeType":"YulIdentifier","src":"7114:6:54"},{"kind":"number","nativeSrc":"7122:66:54","nodeType":"YulLiteral","src":"7122:66:54","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"7110:3:54","nodeType":"YulIdentifier","src":"7110:3:54"},"nativeSrc":"7110:79:54","nodeType":"YulFunctionCall","src":"7110:79:54"}],"functionName":{"name":"mstore","nativeSrc":"7098:6:54","nodeType":"YulIdentifier","src":"7098:6:54"},"nativeSrc":"7098:92:54","nodeType":"YulFunctionCall","src":"7098:92:54"},"nativeSrc":"7098:92:54","nodeType":"YulExpressionStatement","src":"7098:92:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7216:3:54","nodeType":"YulIdentifier","src":"7216:3:54"},{"kind":"number","nativeSrc":"7221:1:54","nodeType":"YulLiteral","src":"7221:1:54","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7212:3:54","nodeType":"YulIdentifier","src":"7212:3:54"},"nativeSrc":"7212:11:54","nodeType":"YulFunctionCall","src":"7212:11:54"},{"name":"value1","nativeSrc":"7225:6:54","nodeType":"YulIdentifier","src":"7225:6:54"},{"name":"value2","nativeSrc":"7233:6:54","nodeType":"YulIdentifier","src":"7233:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"7199:12:54","nodeType":"YulIdentifier","src":"7199:12:54"},"nativeSrc":"7199:41:54","nodeType":"YulFunctionCall","src":"7199:41:54"},"nativeSrc":"7199:41:54","nodeType":"YulExpressionStatement","src":"7199:41:54"},{"nativeSrc":"7249:34:54","nodeType":"YulVariableDeclaration","src":"7249:34:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7267:3:54","nodeType":"YulIdentifier","src":"7267:3:54"},{"name":"value2","nativeSrc":"7272:6:54","nodeType":"YulIdentifier","src":"7272:6:54"}],"functionName":{"name":"add","nativeSrc":"7263:3:54","nodeType":"YulIdentifier","src":"7263:3:54"},"nativeSrc":"7263:16:54","nodeType":"YulFunctionCall","src":"7263:16:54"},{"kind":"number","nativeSrc":"7281:1:54","nodeType":"YulLiteral","src":"7281:1:54","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7259:3:54","nodeType":"YulIdentifier","src":"7259:3:54"},"nativeSrc":"7259:24:54","nodeType":"YulFunctionCall","src":"7259:24:54"},"variables":[{"name":"_1","nativeSrc":"7253:2:54","nodeType":"YulTypedName","src":"7253:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"7299:2:54","nodeType":"YulIdentifier","src":"7299:2:54"},{"kind":"number","nativeSrc":"7303:1:54","nodeType":"YulLiteral","src":"7303:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7292:6:54","nodeType":"YulIdentifier","src":"7292:6:54"},"nativeSrc":"7292:13:54","nodeType":"YulFunctionCall","src":"7292:13:54"},"nativeSrc":"7292:13:54","nodeType":"YulExpressionStatement","src":"7292:13:54"},{"nativeSrc":"7314:9:54","nodeType":"YulAssignment","src":"7314:9:54","value":{"name":"_1","nativeSrc":"7321:2:54","nodeType":"YulIdentifier","src":"7321:2:54"},"variableNames":[{"name":"end","nativeSrc":"7314:3:54","nodeType":"YulIdentifier","src":"7314:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"6915:414:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7048:3:54","nodeType":"YulTypedName","src":"7048:3:54","type":""},{"name":"value2","nativeSrc":"7053:6:54","nodeType":"YulTypedName","src":"7053:6:54","type":""},{"name":"value1","nativeSrc":"7061:6:54","nodeType":"YulTypedName","src":"7061:6:54","type":""},{"name":"value0","nativeSrc":"7069:6:54","nodeType":"YulTypedName","src":"7069:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7080:3:54","nodeType":"YulTypedName","src":"7080:3:54","type":""}],"src":"6915:414:54"},{"body":{"nativeSrc":"7471:150:54","nodeType":"YulBlock","src":"7471:150:54","statements":[{"nativeSrc":"7481:27:54","nodeType":"YulVariableDeclaration","src":"7481:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"7501:6:54","nodeType":"YulIdentifier","src":"7501:6:54"}],"functionName":{"name":"mload","nativeSrc":"7495:5:54","nodeType":"YulIdentifier","src":"7495:5:54"},"nativeSrc":"7495:13:54","nodeType":"YulFunctionCall","src":"7495:13:54"},"variables":[{"name":"length","nativeSrc":"7485:6:54","nodeType":"YulTypedName","src":"7485:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"7556:6:54","nodeType":"YulIdentifier","src":"7556:6:54"},{"kind":"number","nativeSrc":"7564:4:54","nodeType":"YulLiteral","src":"7564:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7552:3:54","nodeType":"YulIdentifier","src":"7552:3:54"},"nativeSrc":"7552:17:54","nodeType":"YulFunctionCall","src":"7552:17:54"},{"name":"pos","nativeSrc":"7571:3:54","nodeType":"YulIdentifier","src":"7571:3:54"},{"name":"length","nativeSrc":"7576:6:54","nodeType":"YulIdentifier","src":"7576:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7517:34:54","nodeType":"YulIdentifier","src":"7517:34:54"},"nativeSrc":"7517:66:54","nodeType":"YulFunctionCall","src":"7517:66:54"},"nativeSrc":"7517:66:54","nodeType":"YulExpressionStatement","src":"7517:66:54"},{"nativeSrc":"7592:23:54","nodeType":"YulAssignment","src":"7592:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"7603:3:54","nodeType":"YulIdentifier","src":"7603:3:54"},{"name":"length","nativeSrc":"7608:6:54","nodeType":"YulIdentifier","src":"7608:6:54"}],"functionName":{"name":"add","nativeSrc":"7599:3:54","nodeType":"YulIdentifier","src":"7599:3:54"},"nativeSrc":"7599:16:54","nodeType":"YulFunctionCall","src":"7599:16:54"},"variableNames":[{"name":"end","nativeSrc":"7592:3:54","nodeType":"YulIdentifier","src":"7592:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7334:287:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7447:3:54","nodeType":"YulTypedName","src":"7447:3:54","type":""},{"name":"value0","nativeSrc":"7452:6:54","nodeType":"YulTypedName","src":"7452:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7463:3:54","nodeType":"YulTypedName","src":"7463:3:54","type":""}],"src":"7334:287:54"},{"body":{"nativeSrc":"7800:251:54","nodeType":"YulBlock","src":"7800:251:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7817:9:54","nodeType":"YulIdentifier","src":"7817:9:54"},{"kind":"number","nativeSrc":"7828:2:54","nodeType":"YulLiteral","src":"7828:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7810:6:54","nodeType":"YulIdentifier","src":"7810:6:54"},"nativeSrc":"7810:21:54","nodeType":"YulFunctionCall","src":"7810:21:54"},"nativeSrc":"7810:21:54","nodeType":"YulExpressionStatement","src":"7810:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7851:9:54","nodeType":"YulIdentifier","src":"7851:9:54"},{"kind":"number","nativeSrc":"7862:2:54","nodeType":"YulLiteral","src":"7862:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7847:3:54","nodeType":"YulIdentifier","src":"7847:3:54"},"nativeSrc":"7847:18:54","nodeType":"YulFunctionCall","src":"7847:18:54"},{"kind":"number","nativeSrc":"7867:2:54","nodeType":"YulLiteral","src":"7867:2:54","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"7840:6:54","nodeType":"YulIdentifier","src":"7840:6:54"},"nativeSrc":"7840:30:54","nodeType":"YulFunctionCall","src":"7840:30:54"},"nativeSrc":"7840:30:54","nodeType":"YulExpressionStatement","src":"7840:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7890:9:54","nodeType":"YulIdentifier","src":"7890:9:54"},{"kind":"number","nativeSrc":"7901:2:54","nodeType":"YulLiteral","src":"7901:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7886:3:54","nodeType":"YulIdentifier","src":"7886:3:54"},"nativeSrc":"7886:18:54","nodeType":"YulFunctionCall","src":"7886:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"7906:34:54","nodeType":"YulLiteral","src":"7906:34:54","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"7879:6:54","nodeType":"YulIdentifier","src":"7879:6:54"},"nativeSrc":"7879:62:54","nodeType":"YulFunctionCall","src":"7879:62:54"},"nativeSrc":"7879:62:54","nodeType":"YulExpressionStatement","src":"7879:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7961:9:54","nodeType":"YulIdentifier","src":"7961:9:54"},{"kind":"number","nativeSrc":"7972:2:54","nodeType":"YulLiteral","src":"7972:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7957:3:54","nodeType":"YulIdentifier","src":"7957:3:54"},"nativeSrc":"7957:18:54","nodeType":"YulFunctionCall","src":"7957:18:54"},{"hexValue":"616e73616374696f6e20657865637574696f6e2072657665727465642e","kind":"string","nativeSrc":"7977:31:54","nodeType":"YulLiteral","src":"7977:31:54","type":"","value":"ansaction execution reverted."}],"functionName":{"name":"mstore","nativeSrc":"7950:6:54","nodeType":"YulIdentifier","src":"7950:6:54"},"nativeSrc":"7950:59:54","nodeType":"YulFunctionCall","src":"7950:59:54"},"nativeSrc":"7950:59:54","nodeType":"YulExpressionStatement","src":"7950:59:54"},{"nativeSrc":"8018:27:54","nodeType":"YulAssignment","src":"8018:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8030:9:54","nodeType":"YulIdentifier","src":"8030:9:54"},{"kind":"number","nativeSrc":"8041:3:54","nodeType":"YulLiteral","src":"8041:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8026:3:54","nodeType":"YulIdentifier","src":"8026:3:54"},"nativeSrc":"8026:19:54","nodeType":"YulFunctionCall","src":"8026:19:54"},"variableNames":[{"name":"tail","nativeSrc":"8018:4:54","nodeType":"YulIdentifier","src":"8018:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7626:425:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7777:9:54","nodeType":"YulTypedName","src":"7777:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7791:4:54","nodeType":"YulTypedName","src":"7791:4:54","type":""}],"src":"7626:425:54"},{"body":{"nativeSrc":"8299:336:54","nodeType":"YulBlock","src":"8299:336:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8316:9:54","nodeType":"YulIdentifier","src":"8316:9:54"},{"name":"value0","nativeSrc":"8327:6:54","nodeType":"YulIdentifier","src":"8327:6:54"}],"functionName":{"name":"mstore","nativeSrc":"8309:6:54","nodeType":"YulIdentifier","src":"8309:6:54"},"nativeSrc":"8309:25:54","nodeType":"YulFunctionCall","src":"8309:25:54"},"nativeSrc":"8309:25:54","nodeType":"YulExpressionStatement","src":"8309:25:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8354:9:54","nodeType":"YulIdentifier","src":"8354:9:54"},{"kind":"number","nativeSrc":"8365:2:54","nodeType":"YulLiteral","src":"8365:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8350:3:54","nodeType":"YulIdentifier","src":"8350:3:54"},"nativeSrc":"8350:18:54","nodeType":"YulFunctionCall","src":"8350:18:54"},{"kind":"number","nativeSrc":"8370:3:54","nodeType":"YulLiteral","src":"8370:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"8343:6:54","nodeType":"YulIdentifier","src":"8343:6:54"},"nativeSrc":"8343:31:54","nodeType":"YulFunctionCall","src":"8343:31:54"},"nativeSrc":"8343:31:54","nodeType":"YulExpressionStatement","src":"8343:31:54"},{"nativeSrc":"8383:77:54","nodeType":"YulVariableDeclaration","src":"8383:77:54","value":{"arguments":[{"name":"value1","nativeSrc":"8424:6:54","nodeType":"YulIdentifier","src":"8424:6:54"},{"name":"value2","nativeSrc":"8432:6:54","nodeType":"YulIdentifier","src":"8432:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"8444:9:54","nodeType":"YulIdentifier","src":"8444:9:54"},{"kind":"number","nativeSrc":"8455:3:54","nodeType":"YulLiteral","src":"8455:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8440:3:54","nodeType":"YulIdentifier","src":"8440:3:54"},"nativeSrc":"8440:19:54","nodeType":"YulFunctionCall","src":"8440:19:54"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8397:26:54","nodeType":"YulIdentifier","src":"8397:26:54"},"nativeSrc":"8397:63:54","nodeType":"YulFunctionCall","src":"8397:63:54"},"variables":[{"name":"tail_1","nativeSrc":"8387:6:54","nodeType":"YulTypedName","src":"8387:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8480:9:54","nodeType":"YulIdentifier","src":"8480:9:54"},{"kind":"number","nativeSrc":"8491:2:54","nodeType":"YulLiteral","src":"8491:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8476:3:54","nodeType":"YulIdentifier","src":"8476:3:54"},"nativeSrc":"8476:18:54","nodeType":"YulFunctionCall","src":"8476:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"8500:6:54","nodeType":"YulIdentifier","src":"8500:6:54"},{"name":"headStart","nativeSrc":"8508:9:54","nodeType":"YulIdentifier","src":"8508:9:54"}],"functionName":{"name":"sub","nativeSrc":"8496:3:54","nodeType":"YulIdentifier","src":"8496:3:54"},"nativeSrc":"8496:22:54","nodeType":"YulFunctionCall","src":"8496:22:54"}],"functionName":{"name":"mstore","nativeSrc":"8469:6:54","nodeType":"YulIdentifier","src":"8469:6:54"},"nativeSrc":"8469:50:54","nodeType":"YulFunctionCall","src":"8469:50:54"},"nativeSrc":"8469:50:54","nodeType":"YulExpressionStatement","src":"8469:50:54"},{"nativeSrc":"8528:58:54","nodeType":"YulAssignment","src":"8528:58:54","value":{"arguments":[{"name":"value3","nativeSrc":"8563:6:54","nodeType":"YulIdentifier","src":"8563:6:54"},{"name":"value4","nativeSrc":"8571:6:54","nodeType":"YulIdentifier","src":"8571:6:54"},{"name":"tail_1","nativeSrc":"8579:6:54","nodeType":"YulIdentifier","src":"8579:6:54"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8536:26:54","nodeType":"YulIdentifier","src":"8536:26:54"},"nativeSrc":"8536:50:54","nodeType":"YulFunctionCall","src":"8536:50:54"},"variableNames":[{"name":"tail","nativeSrc":"8528:4:54","nodeType":"YulIdentifier","src":"8528:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8606:9:54","nodeType":"YulIdentifier","src":"8606:9:54"},{"kind":"number","nativeSrc":"8617:2:54","nodeType":"YulLiteral","src":"8617:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8602:3:54","nodeType":"YulIdentifier","src":"8602:3:54"},"nativeSrc":"8602:18:54","nodeType":"YulFunctionCall","src":"8602:18:54"},{"name":"value5","nativeSrc":"8622:6:54","nodeType":"YulIdentifier","src":"8622:6:54"}],"functionName":{"name":"mstore","nativeSrc":"8595:6:54","nodeType":"YulIdentifier","src":"8595:6:54"},"nativeSrc":"8595:34:54","nodeType":"YulFunctionCall","src":"8595:34:54"},"nativeSrc":"8595:34:54","nodeType":"YulExpressionStatement","src":"8595:34:54"}]},"name":"abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"8056:579:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8228:9:54","nodeType":"YulTypedName","src":"8228:9:54","type":""},{"name":"value5","nativeSrc":"8239:6:54","nodeType":"YulTypedName","src":"8239:6:54","type":""},{"name":"value4","nativeSrc":"8247:6:54","nodeType":"YulTypedName","src":"8247:6:54","type":""},{"name":"value3","nativeSrc":"8255:6:54","nodeType":"YulTypedName","src":"8255:6:54","type":""},{"name":"value2","nativeSrc":"8263:6:54","nodeType":"YulTypedName","src":"8263:6:54","type":""},{"name":"value1","nativeSrc":"8271:6:54","nodeType":"YulTypedName","src":"8271:6:54","type":""},{"name":"value0","nativeSrc":"8279:6:54","nodeType":"YulTypedName","src":"8279:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8290:4:54","nodeType":"YulTypedName","src":"8290:4:54","type":""}],"src":"8056:579:54"},{"body":{"nativeSrc":"8814:246:54","nodeType":"YulBlock","src":"8814:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8831:9:54","nodeType":"YulIdentifier","src":"8831:9:54"},{"kind":"number","nativeSrc":"8842:2:54","nodeType":"YulLiteral","src":"8842:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8824:6:54","nodeType":"YulIdentifier","src":"8824:6:54"},"nativeSrc":"8824:21:54","nodeType":"YulFunctionCall","src":"8824:21:54"},"nativeSrc":"8824:21:54","nodeType":"YulExpressionStatement","src":"8824:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8865:9:54","nodeType":"YulIdentifier","src":"8865:9:54"},{"kind":"number","nativeSrc":"8876:2:54","nodeType":"YulLiteral","src":"8876:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8861:3:54","nodeType":"YulIdentifier","src":"8861:3:54"},"nativeSrc":"8861:18:54","nodeType":"YulFunctionCall","src":"8861:18:54"},{"kind":"number","nativeSrc":"8881:2:54","nodeType":"YulLiteral","src":"8881:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"8854:6:54","nodeType":"YulIdentifier","src":"8854:6:54"},"nativeSrc":"8854:30:54","nodeType":"YulFunctionCall","src":"8854:30:54"},"nativeSrc":"8854:30:54","nodeType":"YulExpressionStatement","src":"8854:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8904:9:54","nodeType":"YulIdentifier","src":"8904:9:54"},{"kind":"number","nativeSrc":"8915:2:54","nodeType":"YulLiteral","src":"8915:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8900:3:54","nodeType":"YulIdentifier","src":"8900:3:54"},"nativeSrc":"8900:18:54","nodeType":"YulFunctionCall","src":"8900:18:54"},{"hexValue":"54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d757374","kind":"string","nativeSrc":"8920:34:54","nodeType":"YulLiteral","src":"8920:34:54","type":"","value":"Timelock::acceptAdmin: Call must"}],"functionName":{"name":"mstore","nativeSrc":"8893:6:54","nodeType":"YulIdentifier","src":"8893:6:54"},"nativeSrc":"8893:62:54","nodeType":"YulFunctionCall","src":"8893:62:54"},"nativeSrc":"8893:62:54","nodeType":"YulExpressionStatement","src":"8893:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8975:9:54","nodeType":"YulIdentifier","src":"8975:9:54"},{"kind":"number","nativeSrc":"8986:2:54","nodeType":"YulLiteral","src":"8986:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8971:3:54","nodeType":"YulIdentifier","src":"8971:3:54"},"nativeSrc":"8971:18:54","nodeType":"YulFunctionCall","src":"8971:18:54"},{"hexValue":"20636f6d652066726f6d2070656e64696e6741646d696e2e","kind":"string","nativeSrc":"8991:26:54","nodeType":"YulLiteral","src":"8991:26:54","type":"","value":" come from pendingAdmin."}],"functionName":{"name":"mstore","nativeSrc":"8964:6:54","nodeType":"YulIdentifier","src":"8964:6:54"},"nativeSrc":"8964:54:54","nodeType":"YulFunctionCall","src":"8964:54:54"},"nativeSrc":"8964:54:54","nodeType":"YulExpressionStatement","src":"8964:54:54"},{"nativeSrc":"9027:27:54","nodeType":"YulAssignment","src":"9027:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9039:9:54","nodeType":"YulIdentifier","src":"9039:9:54"},{"kind":"number","nativeSrc":"9050:3:54","nodeType":"YulLiteral","src":"9050:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9035:3:54","nodeType":"YulIdentifier","src":"9035:3:54"},"nativeSrc":"9035:19:54","nodeType":"YulFunctionCall","src":"9035:19:54"},"variableNames":[{"name":"tail","nativeSrc":"9027:4:54","nodeType":"YulIdentifier","src":"9027:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8640:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8791:9:54","nodeType":"YulTypedName","src":"8791:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8805:4:54","nodeType":"YulTypedName","src":"8805:4:54","type":""}],"src":"8640:420:54"},{"body":{"nativeSrc":"9239:244:54","nodeType":"YulBlock","src":"9239:244:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9256:9:54","nodeType":"YulIdentifier","src":"9256:9:54"},{"kind":"number","nativeSrc":"9267:2:54","nodeType":"YulLiteral","src":"9267:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9249:6:54","nodeType":"YulIdentifier","src":"9249:6:54"},"nativeSrc":"9249:21:54","nodeType":"YulFunctionCall","src":"9249:21:54"},"nativeSrc":"9249:21:54","nodeType":"YulExpressionStatement","src":"9249:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9290:9:54","nodeType":"YulIdentifier","src":"9290:9:54"},{"kind":"number","nativeSrc":"9301:2:54","nodeType":"YulLiteral","src":"9301:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9286:3:54","nodeType":"YulIdentifier","src":"9286:3:54"},"nativeSrc":"9286:18:54","nodeType":"YulFunctionCall","src":"9286:18:54"},{"kind":"number","nativeSrc":"9306:2:54","nodeType":"YulLiteral","src":"9306:2:54","type":"","value":"54"}],"functionName":{"name":"mstore","nativeSrc":"9279:6:54","nodeType":"YulIdentifier","src":"9279:6:54"},"nativeSrc":"9279:30:54","nodeType":"YulFunctionCall","src":"9279:30:54"},"nativeSrc":"9279:30:54","nodeType":"YulExpressionStatement","src":"9279:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9329:9:54","nodeType":"YulIdentifier","src":"9329:9:54"},{"kind":"number","nativeSrc":"9340:2:54","nodeType":"YulLiteral","src":"9340:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9325:3:54","nodeType":"YulIdentifier","src":"9325:3:54"},"nativeSrc":"9325:18:54","nodeType":"YulFunctionCall","src":"9325:18:54"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c","kind":"string","nativeSrc":"9345:34:54","nodeType":"YulLiteral","src":"9345:34:54","type":"","value":"Timelock::queueTransaction: Call"}],"functionName":{"name":"mstore","nativeSrc":"9318:6:54","nodeType":"YulIdentifier","src":"9318:6:54"},"nativeSrc":"9318:62:54","nodeType":"YulFunctionCall","src":"9318:62:54"},"nativeSrc":"9318:62:54","nodeType":"YulExpressionStatement","src":"9318:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9400:9:54","nodeType":"YulIdentifier","src":"9400:9:54"},{"kind":"number","nativeSrc":"9411:2:54","nodeType":"YulLiteral","src":"9411:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9396:3:54","nodeType":"YulIdentifier","src":"9396:3:54"},"nativeSrc":"9396:18:54","nodeType":"YulFunctionCall","src":"9396:18:54"},{"hexValue":"206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"9416:24:54","nodeType":"YulLiteral","src":"9416:24:54","type":"","value":" must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"9389:6:54","nodeType":"YulIdentifier","src":"9389:6:54"},"nativeSrc":"9389:52:54","nodeType":"YulFunctionCall","src":"9389:52:54"},"nativeSrc":"9389:52:54","nodeType":"YulExpressionStatement","src":"9389:52:54"},{"nativeSrc":"9450:27:54","nodeType":"YulAssignment","src":"9450:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9462:9:54","nodeType":"YulIdentifier","src":"9462:9:54"},{"kind":"number","nativeSrc":"9473:3:54","nodeType":"YulLiteral","src":"9473:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9458:3:54","nodeType":"YulIdentifier","src":"9458:3:54"},"nativeSrc":"9458:19:54","nodeType":"YulFunctionCall","src":"9458:19:54"},"variableNames":[{"name":"tail","nativeSrc":"9450:4:54","nodeType":"YulIdentifier","src":"9450:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9065:418:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9216:9:54","nodeType":"YulTypedName","src":"9216:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9230:4:54","nodeType":"YulTypedName","src":"9230:4:54","type":""}],"src":"9065:418:54"},{"body":{"nativeSrc":"9662:303:54","nodeType":"YulBlock","src":"9662:303:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9679:9:54","nodeType":"YulIdentifier","src":"9679:9:54"},{"kind":"number","nativeSrc":"9690:2:54","nodeType":"YulLiteral","src":"9690:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9672:6:54","nodeType":"YulIdentifier","src":"9672:6:54"},"nativeSrc":"9672:21:54","nodeType":"YulFunctionCall","src":"9672:21:54"},"nativeSrc":"9672:21:54","nodeType":"YulExpressionStatement","src":"9672:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9713:9:54","nodeType":"YulIdentifier","src":"9713:9:54"},{"kind":"number","nativeSrc":"9724:2:54","nodeType":"YulLiteral","src":"9724:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9709:3:54","nodeType":"YulIdentifier","src":"9709:3:54"},"nativeSrc":"9709:18:54","nodeType":"YulFunctionCall","src":"9709:18:54"},{"kind":"number","nativeSrc":"9729:2:54","nodeType":"YulLiteral","src":"9729:2:54","type":"","value":"73"}],"functionName":{"name":"mstore","nativeSrc":"9702:6:54","nodeType":"YulIdentifier","src":"9702:6:54"},"nativeSrc":"9702:30:54","nodeType":"YulFunctionCall","src":"9702:30:54"},"nativeSrc":"9702:30:54","nodeType":"YulExpressionStatement","src":"9702:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9752:9:54","nodeType":"YulIdentifier","src":"9752:9:54"},{"kind":"number","nativeSrc":"9763:2:54","nodeType":"YulLiteral","src":"9763:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9748:3:54","nodeType":"YulIdentifier","src":"9748:3:54"},"nativeSrc":"9748:18:54","nodeType":"YulFunctionCall","src":"9748:18:54"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2045737469","kind":"string","nativeSrc":"9768:34:54","nodeType":"YulLiteral","src":"9768:34:54","type":"","value":"Timelock::queueTransaction: Esti"}],"functionName":{"name":"mstore","nativeSrc":"9741:6:54","nodeType":"YulIdentifier","src":"9741:6:54"},"nativeSrc":"9741:62:54","nodeType":"YulFunctionCall","src":"9741:62:54"},"nativeSrc":"9741:62:54","nodeType":"YulExpressionStatement","src":"9741:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9823:9:54","nodeType":"YulIdentifier","src":"9823:9:54"},{"kind":"number","nativeSrc":"9834:2:54","nodeType":"YulLiteral","src":"9834:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9819:3:54","nodeType":"YulIdentifier","src":"9819:3:54"},"nativeSrc":"9819:18:54","nodeType":"YulFunctionCall","src":"9819:18:54"},{"hexValue":"6d6174656420657865637574696f6e20626c6f636b206d757374207361746973","kind":"string","nativeSrc":"9839:34:54","nodeType":"YulLiteral","src":"9839:34:54","type":"","value":"mated execution block must satis"}],"functionName":{"name":"mstore","nativeSrc":"9812:6:54","nodeType":"YulIdentifier","src":"9812:6:54"},"nativeSrc":"9812:62:54","nodeType":"YulFunctionCall","src":"9812:62:54"},"nativeSrc":"9812:62:54","nodeType":"YulExpressionStatement","src":"9812:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9894:9:54","nodeType":"YulIdentifier","src":"9894:9:54"},{"kind":"number","nativeSrc":"9905:3:54","nodeType":"YulLiteral","src":"9905:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9890:3:54","nodeType":"YulIdentifier","src":"9890:3:54"},"nativeSrc":"9890:19:54","nodeType":"YulFunctionCall","src":"9890:19:54"},{"hexValue":"66792064656c61792e","kind":"string","nativeSrc":"9911:11:54","nodeType":"YulLiteral","src":"9911:11:54","type":"","value":"fy delay."}],"functionName":{"name":"mstore","nativeSrc":"9883:6:54","nodeType":"YulIdentifier","src":"9883:6:54"},"nativeSrc":"9883:40:54","nodeType":"YulFunctionCall","src":"9883:40:54"},"nativeSrc":"9883:40:54","nodeType":"YulExpressionStatement","src":"9883:40:54"},{"nativeSrc":"9932:27:54","nodeType":"YulAssignment","src":"9932:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9944:9:54","nodeType":"YulIdentifier","src":"9944:9:54"},{"kind":"number","nativeSrc":"9955:3:54","nodeType":"YulLiteral","src":"9955:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9940:3:54","nodeType":"YulIdentifier","src":"9940:3:54"},"nativeSrc":"9940:19:54","nodeType":"YulFunctionCall","src":"9940:19:54"},"variableNames":[{"name":"tail","nativeSrc":"9932:4:54","nodeType":"YulIdentifier","src":"9932:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9488:477:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9639:9:54","nodeType":"YulTypedName","src":"9639:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9653:4:54","nodeType":"YulTypedName","src":"9653:4:54","type":""}],"src":"9488:477:54"},{"body":{"nativeSrc":"10144:245:54","nodeType":"YulBlock","src":"10144:245:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10161:9:54","nodeType":"YulIdentifier","src":"10161:9:54"},{"kind":"number","nativeSrc":"10172:2:54","nodeType":"YulLiteral","src":"10172:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10154:6:54","nodeType":"YulIdentifier","src":"10154:6:54"},"nativeSrc":"10154:21:54","nodeType":"YulFunctionCall","src":"10154:21:54"},"nativeSrc":"10154:21:54","nodeType":"YulExpressionStatement","src":"10154:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10195:9:54","nodeType":"YulIdentifier","src":"10195:9:54"},{"kind":"number","nativeSrc":"10206:2:54","nodeType":"YulLiteral","src":"10206:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10191:3:54","nodeType":"YulIdentifier","src":"10191:3:54"},"nativeSrc":"10191:18:54","nodeType":"YulFunctionCall","src":"10191:18:54"},{"kind":"number","nativeSrc":"10211:2:54","nodeType":"YulLiteral","src":"10211:2:54","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"10184:6:54","nodeType":"YulIdentifier","src":"10184:6:54"},"nativeSrc":"10184:30:54","nodeType":"YulFunctionCall","src":"10184:30:54"},"nativeSrc":"10184:30:54","nodeType":"YulExpressionStatement","src":"10184:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10234:9:54","nodeType":"YulIdentifier","src":"10234:9:54"},{"kind":"number","nativeSrc":"10245:2:54","nodeType":"YulLiteral","src":"10245:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10230:3:54","nodeType":"YulIdentifier","src":"10230:3:54"},"nativeSrc":"10230:18:54","nodeType":"YulFunctionCall","src":"10230:18:54"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e","kind":"string","nativeSrc":"10250:34:54","nodeType":"YulLiteral","src":"10250:34:54","type":"","value":"Timelock::queueTransaction: tran"}],"functionName":{"name":"mstore","nativeSrc":"10223:6:54","nodeType":"YulIdentifier","src":"10223:6:54"},"nativeSrc":"10223:62:54","nodeType":"YulFunctionCall","src":"10223:62:54"},"nativeSrc":"10223:62:54","nodeType":"YulExpressionStatement","src":"10223:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:54","nodeType":"YulIdentifier","src":"10305:9:54"},{"kind":"number","nativeSrc":"10316:2:54","nodeType":"YulLiteral","src":"10316:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10301:3:54","nodeType":"YulIdentifier","src":"10301:3:54"},"nativeSrc":"10301:18:54","nodeType":"YulFunctionCall","src":"10301:18:54"},{"hexValue":"73616374696f6e20616c7265616479207175657565642e","kind":"string","nativeSrc":"10321:25:54","nodeType":"YulLiteral","src":"10321:25:54","type":"","value":"saction already queued."}],"functionName":{"name":"mstore","nativeSrc":"10294:6:54","nodeType":"YulIdentifier","src":"10294:6:54"},"nativeSrc":"10294:53:54","nodeType":"YulFunctionCall","src":"10294:53:54"},"nativeSrc":"10294:53:54","nodeType":"YulExpressionStatement","src":"10294:53:54"},{"nativeSrc":"10356:27:54","nodeType":"YulAssignment","src":"10356:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10368:9:54","nodeType":"YulIdentifier","src":"10368:9:54"},{"kind":"number","nativeSrc":"10379:3:54","nodeType":"YulLiteral","src":"10379:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10364:3:54","nodeType":"YulIdentifier","src":"10364:3:54"},"nativeSrc":"10364:19:54","nodeType":"YulFunctionCall","src":"10364:19:54"},"variableNames":[{"name":"tail","nativeSrc":"10356:4:54","nodeType":"YulIdentifier","src":"10356:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9970:419:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10121:9:54","nodeType":"YulTypedName","src":"10121:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10135:4:54","nodeType":"YulTypedName","src":"10135:4:54","type":""}],"src":"9970:419:54"},{"body":{"nativeSrc":"10568:246:54","nodeType":"YulBlock","src":"10568:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10585:9:54","nodeType":"YulIdentifier","src":"10585:9:54"},{"kind":"number","nativeSrc":"10596:2:54","nodeType":"YulLiteral","src":"10596:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10578:6:54","nodeType":"YulIdentifier","src":"10578:6:54"},"nativeSrc":"10578:21:54","nodeType":"YulFunctionCall","src":"10578:21:54"},"nativeSrc":"10578:21:54","nodeType":"YulExpressionStatement","src":"10578:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10619:9:54","nodeType":"YulIdentifier","src":"10619:9:54"},{"kind":"number","nativeSrc":"10630:2:54","nodeType":"YulLiteral","src":"10630:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10615:3:54","nodeType":"YulIdentifier","src":"10615:3:54"},"nativeSrc":"10615:18:54","nodeType":"YulFunctionCall","src":"10615:18:54"},{"kind":"number","nativeSrc":"10635:2:54","nodeType":"YulLiteral","src":"10635:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"10608:6:54","nodeType":"YulIdentifier","src":"10608:6:54"},"nativeSrc":"10608:30:54","nodeType":"YulFunctionCall","src":"10608:30:54"},"nativeSrc":"10608:30:54","nodeType":"YulExpressionStatement","src":"10608:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10658:9:54","nodeType":"YulIdentifier","src":"10658:9:54"},{"kind":"number","nativeSrc":"10669:2:54","nodeType":"YulLiteral","src":"10669:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10654:3:54","nodeType":"YulIdentifier","src":"10654:3:54"},"nativeSrc":"10654:18:54","nodeType":"YulFunctionCall","src":"10654:18:54"},{"hexValue":"54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c20","kind":"string","nativeSrc":"10674:34:54","nodeType":"YulLiteral","src":"10674:34:54","type":"","value":"Timelock::setPendingAdmin: Call "}],"functionName":{"name":"mstore","nativeSrc":"10647:6:54","nodeType":"YulIdentifier","src":"10647:6:54"},"nativeSrc":"10647:62:54","nodeType":"YulFunctionCall","src":"10647:62:54"},"nativeSrc":"10647:62:54","nodeType":"YulExpressionStatement","src":"10647:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10729:9:54","nodeType":"YulIdentifier","src":"10729:9:54"},{"kind":"number","nativeSrc":"10740:2:54","nodeType":"YulLiteral","src":"10740:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10725:3:54","nodeType":"YulIdentifier","src":"10725:3:54"},"nativeSrc":"10725:18:54","nodeType":"YulFunctionCall","src":"10725:18:54"},{"hexValue":"6d75737420636f6d652066726f6d2054696d656c6f636b2e","kind":"string","nativeSrc":"10745:26:54","nodeType":"YulLiteral","src":"10745:26:54","type":"","value":"must come from Timelock."}],"functionName":{"name":"mstore","nativeSrc":"10718:6:54","nodeType":"YulIdentifier","src":"10718:6:54"},"nativeSrc":"10718:54:54","nodeType":"YulFunctionCall","src":"10718:54:54"},"nativeSrc":"10718:54:54","nodeType":"YulExpressionStatement","src":"10718:54:54"},{"nativeSrc":"10781:27:54","nodeType":"YulAssignment","src":"10781:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10793:9:54","nodeType":"YulIdentifier","src":"10793:9:54"},{"kind":"number","nativeSrc":"10804:3:54","nodeType":"YulLiteral","src":"10804:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10789:3:54","nodeType":"YulIdentifier","src":"10789:3:54"},"nativeSrc":"10789:19:54","nodeType":"YulFunctionCall","src":"10789:19:54"},"variableNames":[{"name":"tail","nativeSrc":"10781:4:54","nodeType":"YulIdentifier","src":"10781:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10394:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10545:9:54","nodeType":"YulTypedName","src":"10545:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10559:4:54","nodeType":"YulTypedName","src":"10559:4:54","type":""}],"src":"10394:420:54"},{"body":{"nativeSrc":"10993:245:54","nodeType":"YulBlock","src":"10993:245:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11010:9:54","nodeType":"YulIdentifier","src":"11010:9:54"},{"kind":"number","nativeSrc":"11021:2:54","nodeType":"YulLiteral","src":"11021:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11003:6:54","nodeType":"YulIdentifier","src":"11003:6:54"},"nativeSrc":"11003:21:54","nodeType":"YulFunctionCall","src":"11003:21:54"},"nativeSrc":"11003:21:54","nodeType":"YulExpressionStatement","src":"11003:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11044:9:54","nodeType":"YulIdentifier","src":"11044:9:54"},{"kind":"number","nativeSrc":"11055:2:54","nodeType":"YulLiteral","src":"11055:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11040:3:54","nodeType":"YulIdentifier","src":"11040:3:54"},"nativeSrc":"11040:18:54","nodeType":"YulFunctionCall","src":"11040:18:54"},{"kind":"number","nativeSrc":"11060:2:54","nodeType":"YulLiteral","src":"11060:2:54","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"11033:6:54","nodeType":"YulIdentifier","src":"11033:6:54"},"nativeSrc":"11033:30:54","nodeType":"YulFunctionCall","src":"11033:30:54"},"nativeSrc":"11033:30:54","nodeType":"YulExpressionStatement","src":"11033:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11083:9:54","nodeType":"YulIdentifier","src":"11083:9:54"},{"kind":"number","nativeSrc":"11094:2:54","nodeType":"YulLiteral","src":"11094:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11079:3:54","nodeType":"YulIdentifier","src":"11079:3:54"},"nativeSrc":"11079:18:54","nodeType":"YulFunctionCall","src":"11079:18:54"},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c","kind":"string","nativeSrc":"11099:34:54","nodeType":"YulLiteral","src":"11099:34:54","type":"","value":"Timelock::cancelTransaction: Cal"}],"functionName":{"name":"mstore","nativeSrc":"11072:6:54","nodeType":"YulIdentifier","src":"11072:6:54"},"nativeSrc":"11072:62:54","nodeType":"YulFunctionCall","src":"11072:62:54"},"nativeSrc":"11072:62:54","nodeType":"YulExpressionStatement","src":"11072:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11154:9:54","nodeType":"YulIdentifier","src":"11154:9:54"},{"kind":"number","nativeSrc":"11165:2:54","nodeType":"YulLiteral","src":"11165:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11150:3:54","nodeType":"YulIdentifier","src":"11150:3:54"},"nativeSrc":"11150:18:54","nodeType":"YulFunctionCall","src":"11150:18:54"},{"hexValue":"6c206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"11170:25:54","nodeType":"YulLiteral","src":"11170:25:54","type":"","value":"l must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"11143:6:54","nodeType":"YulIdentifier","src":"11143:6:54"},"nativeSrc":"11143:53:54","nodeType":"YulFunctionCall","src":"11143:53:54"},"nativeSrc":"11143:53:54","nodeType":"YulExpressionStatement","src":"11143:53:54"},{"nativeSrc":"11205:27:54","nodeType":"YulAssignment","src":"11205:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11217:9:54","nodeType":"YulIdentifier","src":"11217:9:54"},{"kind":"number","nativeSrc":"11228:3:54","nodeType":"YulLiteral","src":"11228:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11213:3:54","nodeType":"YulIdentifier","src":"11213:3:54"},"nativeSrc":"11213:19:54","nodeType":"YulFunctionCall","src":"11213:19:54"},"variableNames":[{"name":"tail","nativeSrc":"11205:4:54","nodeType":"YulIdentifier","src":"11205:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10819:419:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10970:9:54","nodeType":"YulTypedName","src":"10970:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10984:4:54","nodeType":"YulTypedName","src":"10984:4:54","type":""}],"src":"10819:419:54"},{"body":{"nativeSrc":"11417:249:54","nodeType":"YulBlock","src":"11417:249:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11434:9:54","nodeType":"YulIdentifier","src":"11434:9:54"},{"kind":"number","nativeSrc":"11445:2:54","nodeType":"YulLiteral","src":"11445:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11427:6:54","nodeType":"YulIdentifier","src":"11427:6:54"},"nativeSrc":"11427:21:54","nodeType":"YulFunctionCall","src":"11427:21:54"},"nativeSrc":"11427:21:54","nodeType":"YulExpressionStatement","src":"11427:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11468:9:54","nodeType":"YulIdentifier","src":"11468:9:54"},{"kind":"number","nativeSrc":"11479:2:54","nodeType":"YulLiteral","src":"11479:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11464:3:54","nodeType":"YulIdentifier","src":"11464:3:54"},"nativeSrc":"11464:18:54","nodeType":"YulFunctionCall","src":"11464:18:54"},{"kind":"number","nativeSrc":"11484:2:54","nodeType":"YulLiteral","src":"11484:2:54","type":"","value":"59"}],"functionName":{"name":"mstore","nativeSrc":"11457:6:54","nodeType":"YulIdentifier","src":"11457:6:54"},"nativeSrc":"11457:30:54","nodeType":"YulFunctionCall","src":"11457:30:54"},"nativeSrc":"11457:30:54","nodeType":"YulExpressionStatement","src":"11457:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11507:9:54","nodeType":"YulIdentifier","src":"11507:9:54"},{"kind":"number","nativeSrc":"11518:2:54","nodeType":"YulLiteral","src":"11518:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11503:3:54","nodeType":"YulIdentifier","src":"11503:3:54"},"nativeSrc":"11503:18:54","nodeType":"YulFunctionCall","src":"11503:18:54"},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a20747261","kind":"string","nativeSrc":"11523:34:54","nodeType":"YulLiteral","src":"11523:34:54","type":"","value":"Timelock::cancelTransaction: tra"}],"functionName":{"name":"mstore","nativeSrc":"11496:6:54","nodeType":"YulIdentifier","src":"11496:6:54"},"nativeSrc":"11496:62:54","nodeType":"YulFunctionCall","src":"11496:62:54"},"nativeSrc":"11496:62:54","nodeType":"YulExpressionStatement","src":"11496:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11578:9:54","nodeType":"YulIdentifier","src":"11578:9:54"},{"kind":"number","nativeSrc":"11589:2:54","nodeType":"YulLiteral","src":"11589:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11574:3:54","nodeType":"YulIdentifier","src":"11574:3:54"},"nativeSrc":"11574:18:54","nodeType":"YulFunctionCall","src":"11574:18:54"},{"hexValue":"6e73616374696f6e206973206e6f7420717565756564207965742e","kind":"string","nativeSrc":"11594:29:54","nodeType":"YulLiteral","src":"11594:29:54","type":"","value":"nsaction is not queued yet."}],"functionName":{"name":"mstore","nativeSrc":"11567:6:54","nodeType":"YulIdentifier","src":"11567:6:54"},"nativeSrc":"11567:57:54","nodeType":"YulFunctionCall","src":"11567:57:54"},"nativeSrc":"11567:57:54","nodeType":"YulExpressionStatement","src":"11567:57:54"},{"nativeSrc":"11633:27:54","nodeType":"YulAssignment","src":"11633:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11645:9:54","nodeType":"YulIdentifier","src":"11645:9:54"},{"kind":"number","nativeSrc":"11656:3:54","nodeType":"YulLiteral","src":"11656:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11641:3:54","nodeType":"YulIdentifier","src":"11641:3:54"},"nativeSrc":"11641:19:54","nodeType":"YulFunctionCall","src":"11641:19:54"},"variableNames":[{"name":"tail","nativeSrc":"11633:4:54","nodeType":"YulIdentifier","src":"11633:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11243:423:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11394:9:54","nodeType":"YulTypedName","src":"11394:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11408:4:54","nodeType":"YulTypedName","src":"11408:4:54","type":""}],"src":"11243:423:54"},{"body":{"nativeSrc":"11845:239:54","nodeType":"YulBlock","src":"11845:239:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11862:9:54","nodeType":"YulIdentifier","src":"11862:9:54"},{"kind":"number","nativeSrc":"11873:2:54","nodeType":"YulLiteral","src":"11873:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11855:6:54","nodeType":"YulIdentifier","src":"11855:6:54"},"nativeSrc":"11855:21:54","nodeType":"YulFunctionCall","src":"11855:21:54"},"nativeSrc":"11855:21:54","nodeType":"YulExpressionStatement","src":"11855:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11896:9:54","nodeType":"YulIdentifier","src":"11896:9:54"},{"kind":"number","nativeSrc":"11907:2:54","nodeType":"YulLiteral","src":"11907:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11892:3:54","nodeType":"YulIdentifier","src":"11892:3:54"},"nativeSrc":"11892:18:54","nodeType":"YulFunctionCall","src":"11892:18:54"},{"kind":"number","nativeSrc":"11912:2:54","nodeType":"YulLiteral","src":"11912:2:54","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"11885:6:54","nodeType":"YulIdentifier","src":"11885:6:54"},"nativeSrc":"11885:30:54","nodeType":"YulFunctionCall","src":"11885:30:54"},"nativeSrc":"11885:30:54","nodeType":"YulExpressionStatement","src":"11885:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11935:9:54","nodeType":"YulIdentifier","src":"11935:9:54"},{"kind":"number","nativeSrc":"11946:2:54","nodeType":"YulLiteral","src":"11946:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11931:3:54","nodeType":"YulIdentifier","src":"11931:3:54"},"nativeSrc":"11931:18:54","nodeType":"YulFunctionCall","src":"11931:18:54"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f","kind":"string","nativeSrc":"11951:34:54","nodeType":"YulLiteral","src":"11951:34:54","type":"","value":"Timelock::setDelay: Call must co"}],"functionName":{"name":"mstore","nativeSrc":"11924:6:54","nodeType":"YulIdentifier","src":"11924:6:54"},"nativeSrc":"11924:62:54","nodeType":"YulFunctionCall","src":"11924:62:54"},"nativeSrc":"11924:62:54","nodeType":"YulExpressionStatement","src":"11924:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12006:9:54","nodeType":"YulIdentifier","src":"12006:9:54"},{"kind":"number","nativeSrc":"12017:2:54","nodeType":"YulLiteral","src":"12017:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12002:3:54","nodeType":"YulIdentifier","src":"12002:3:54"},"nativeSrc":"12002:18:54","nodeType":"YulFunctionCall","src":"12002:18:54"},{"hexValue":"6d652066726f6d2054696d656c6f636b2e","kind":"string","nativeSrc":"12022:19:54","nodeType":"YulLiteral","src":"12022:19:54","type":"","value":"me from Timelock."}],"functionName":{"name":"mstore","nativeSrc":"11995:6:54","nodeType":"YulIdentifier","src":"11995:6:54"},"nativeSrc":"11995:47:54","nodeType":"YulFunctionCall","src":"11995:47:54"},"nativeSrc":"11995:47:54","nodeType":"YulExpressionStatement","src":"11995:47:54"},{"nativeSrc":"12051:27:54","nodeType":"YulAssignment","src":"12051:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12063:9:54","nodeType":"YulIdentifier","src":"12063:9:54"},{"kind":"number","nativeSrc":"12074:3:54","nodeType":"YulLiteral","src":"12074:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12059:3:54","nodeType":"YulIdentifier","src":"12059:3:54"},"nativeSrc":"12059:19:54","nodeType":"YulFunctionCall","src":"12059:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12051:4:54","nodeType":"YulIdentifier","src":"12051:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11671:413:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11822:9:54","nodeType":"YulTypedName","src":"11822:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11836:4:54","nodeType":"YulTypedName","src":"11836:4:54","type":""}],"src":"11671:413:54"},{"body":{"nativeSrc":"12263:242:54","nodeType":"YulBlock","src":"12263:242:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12280:9:54","nodeType":"YulIdentifier","src":"12280:9:54"},{"kind":"number","nativeSrc":"12291:2:54","nodeType":"YulLiteral","src":"12291:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12273:6:54","nodeType":"YulIdentifier","src":"12273:6:54"},"nativeSrc":"12273:21:54","nodeType":"YulFunctionCall","src":"12273:21:54"},"nativeSrc":"12273:21:54","nodeType":"YulExpressionStatement","src":"12273:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12314:9:54","nodeType":"YulIdentifier","src":"12314:9:54"},{"kind":"number","nativeSrc":"12325:2:54","nodeType":"YulLiteral","src":"12325:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12310:3:54","nodeType":"YulIdentifier","src":"12310:3:54"},"nativeSrc":"12310:18:54","nodeType":"YulFunctionCall","src":"12310:18:54"},{"kind":"number","nativeSrc":"12330:2:54","nodeType":"YulLiteral","src":"12330:2:54","type":"","value":"52"}],"functionName":{"name":"mstore","nativeSrc":"12303:6:54","nodeType":"YulIdentifier","src":"12303:6:54"},"nativeSrc":"12303:30:54","nodeType":"YulFunctionCall","src":"12303:30:54"},"nativeSrc":"12303:30:54","nodeType":"YulExpressionStatement","src":"12303:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12353:9:54","nodeType":"YulIdentifier","src":"12353:9:54"},{"kind":"number","nativeSrc":"12364:2:54","nodeType":"YulLiteral","src":"12364:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12349:3:54","nodeType":"YulIdentifier","src":"12349:3:54"},"nativeSrc":"12349:18:54","nodeType":"YulFunctionCall","src":"12349:18:54"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d7573742065","kind":"string","nativeSrc":"12369:34:54","nodeType":"YulLiteral","src":"12369:34:54","type":"","value":"Timelock::setDelay: Delay must e"}],"functionName":{"name":"mstore","nativeSrc":"12342:6:54","nodeType":"YulIdentifier","src":"12342:6:54"},"nativeSrc":"12342:62:54","nodeType":"YulFunctionCall","src":"12342:62:54"},"nativeSrc":"12342:62:54","nodeType":"YulExpressionStatement","src":"12342:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12424:9:54","nodeType":"YulIdentifier","src":"12424:9:54"},{"kind":"number","nativeSrc":"12435:2:54","nodeType":"YulLiteral","src":"12435:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12420:3:54","nodeType":"YulIdentifier","src":"12420:3:54"},"nativeSrc":"12420:18:54","nodeType":"YulFunctionCall","src":"12420:18:54"},{"hexValue":"7863656564206d696e696d756d2064656c61792e","kind":"string","nativeSrc":"12440:22:54","nodeType":"YulLiteral","src":"12440:22:54","type":"","value":"xceed minimum delay."}],"functionName":{"name":"mstore","nativeSrc":"12413:6:54","nodeType":"YulIdentifier","src":"12413:6:54"},"nativeSrc":"12413:50:54","nodeType":"YulFunctionCall","src":"12413:50:54"},"nativeSrc":"12413:50:54","nodeType":"YulExpressionStatement","src":"12413:50:54"},{"nativeSrc":"12472:27:54","nodeType":"YulAssignment","src":"12472:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12484:9:54","nodeType":"YulIdentifier","src":"12484:9:54"},{"kind":"number","nativeSrc":"12495:3:54","nodeType":"YulLiteral","src":"12495:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12480:3:54","nodeType":"YulIdentifier","src":"12480:3:54"},"nativeSrc":"12480:19:54","nodeType":"YulFunctionCall","src":"12480:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:54","nodeType":"YulIdentifier","src":"12472:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12089:416:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12240:9:54","nodeType":"YulTypedName","src":"12240:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12254:4:54","nodeType":"YulTypedName","src":"12254:4:54","type":""}],"src":"12089:416:54"},{"body":{"nativeSrc":"12684:246:54","nodeType":"YulBlock","src":"12684:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12701:9:54","nodeType":"YulIdentifier","src":"12701:9:54"},{"kind":"number","nativeSrc":"12712:2:54","nodeType":"YulLiteral","src":"12712:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12694:6:54","nodeType":"YulIdentifier","src":"12694:6:54"},"nativeSrc":"12694:21:54","nodeType":"YulFunctionCall","src":"12694:21:54"},"nativeSrc":"12694:21:54","nodeType":"YulExpressionStatement","src":"12694:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12735:9:54","nodeType":"YulIdentifier","src":"12735:9:54"},{"kind":"number","nativeSrc":"12746:2:54","nodeType":"YulLiteral","src":"12746:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12731:3:54","nodeType":"YulIdentifier","src":"12731:3:54"},"nativeSrc":"12731:18:54","nodeType":"YulFunctionCall","src":"12731:18:54"},{"kind":"number","nativeSrc":"12751:2:54","nodeType":"YulLiteral","src":"12751:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"12724:6:54","nodeType":"YulIdentifier","src":"12724:6:54"},"nativeSrc":"12724:30:54","nodeType":"YulFunctionCall","src":"12724:30:54"},"nativeSrc":"12724:30:54","nodeType":"YulExpressionStatement","src":"12724:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12774:9:54","nodeType":"YulIdentifier","src":"12774:9:54"},{"kind":"number","nativeSrc":"12785:2:54","nodeType":"YulLiteral","src":"12785:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12770:3:54","nodeType":"YulIdentifier","src":"12770:3:54"},"nativeSrc":"12770:18:54","nodeType":"YulFunctionCall","src":"12770:18:54"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e","kind":"string","nativeSrc":"12790:34:54","nodeType":"YulLiteral","src":"12790:34:54","type":"","value":"Timelock::setDelay: Delay must n"}],"functionName":{"name":"mstore","nativeSrc":"12763:6:54","nodeType":"YulIdentifier","src":"12763:6:54"},"nativeSrc":"12763:62:54","nodeType":"YulFunctionCall","src":"12763:62:54"},"nativeSrc":"12763:62:54","nodeType":"YulExpressionStatement","src":"12763:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12845:9:54","nodeType":"YulIdentifier","src":"12845:9:54"},{"kind":"number","nativeSrc":"12856:2:54","nodeType":"YulLiteral","src":"12856:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12841:3:54","nodeType":"YulIdentifier","src":"12841:3:54"},"nativeSrc":"12841:18:54","nodeType":"YulFunctionCall","src":"12841:18:54"},{"hexValue":"6f7420657863656564206d6178696d756d2064656c61792e","kind":"string","nativeSrc":"12861:26:54","nodeType":"YulLiteral","src":"12861:26:54","type":"","value":"ot exceed maximum delay."}],"functionName":{"name":"mstore","nativeSrc":"12834:6:54","nodeType":"YulIdentifier","src":"12834:6:54"},"nativeSrc":"12834:54:54","nodeType":"YulFunctionCall","src":"12834:54:54"},"nativeSrc":"12834:54:54","nodeType":"YulExpressionStatement","src":"12834:54:54"},{"nativeSrc":"12897:27:54","nodeType":"YulAssignment","src":"12897:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12909:9:54","nodeType":"YulIdentifier","src":"12909:9:54"},{"kind":"number","nativeSrc":"12920:3:54","nodeType":"YulLiteral","src":"12920:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12905:3:54","nodeType":"YulIdentifier","src":"12905:3:54"},"nativeSrc":"12905:19:54","nodeType":"YulFunctionCall","src":"12905:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12897:4:54","nodeType":"YulIdentifier","src":"12897:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12510:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12661:9:54","nodeType":"YulTypedName","src":"12661:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12675:4:54","nodeType":"YulTypedName","src":"12675:4:54","type":""}],"src":"12510:420:54"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 128))\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    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Ca\")\n        mstore(add(headStart, 96), \"ll must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value4, value5, tail_1)\n        mstore(add(headStart, 128), value6)\n    }\n    function abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction hasn't been queued.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 69)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction hasn't surpassed time \")\n        mstore(add(headStart, 128), \"lock.\")\n        tail := add(headStart, 160)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction is stale.\")\n        tail := add(headStart, 128)\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        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        mstore(pos, and(value0, 0xffffffff00000000000000000000000000000000000000000000000000000000))\n        calldatacopy(add(pos, 4), value1, value2)\n        let _1 := add(add(pos, value2), 4)\n        mstore(_1, 0)\n        end := _1\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        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction execution reverted.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_string_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value3, value4, tail_1)\n        mstore(add(headStart, 96), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::acceptAdmin: Call must\")\n        mstore(add(headStart, 96), \" come from pendingAdmin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 54)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: Call\")\n        mstore(add(headStart, 96), \" must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 73)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: Esti\")\n        mstore(add(headStart, 96), \"mated execution block must satis\")\n        mstore(add(headStart, 128), \"fy delay.\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: tran\")\n        mstore(add(headStart, 96), \"saction already queued.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setPendingAdmin: Call \")\n        mstore(add(headStart, 96), \"must come from Timelock.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::cancelTransaction: Cal\")\n        mstore(add(headStart, 96), \"l must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"Timelock::cancelTransaction: tra\")\n        mstore(add(headStart, 96), \"nsaction is not queued yet.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Call must co\")\n        mstore(add(headStart, 96), \"me from Timelock.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 52)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must e\")\n        mstore(add(headStart, 96), \"xceed minimum delay.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must n\")\n        mstore(add(headStart, 96), \"ot exceed maximum delay.\")\n        tail := add(headStart, 128)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e214610217578063e177246e1461022d578063f2b065371461024d578063f851a4401461028d57005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020257005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611070565b6102ba565b6040516100f89190611127565b60405180910390f35b34801561010d57600080fd5b506100c961074a565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611070565b610854565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b1366004611178565b610b04565b3480156101c257600080fd5b506100c96101d1366004611070565b610c13565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b5062278d00610188565b34801561020e57600080fd5b50610e10610188565b34801561022357600080fd5b5062127500610188565b34801561023957600080fd5b506100c961024836600461119a565b610e14565b34801561025957600080fd5b5061027d61026836600461119a565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561029957600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461034f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161036e97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104295760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e0000006064820152608401610346565b824210156104c55760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a401610346565b6104d2621275008461125a565b4211156105475760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e000000000000000000000000006064820152608401610346565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105c45785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105ff92505050565b87876040516105d492919061129a565b6040519081900381206105ed91889088906020016112aa565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161062891906112e6565b60006040518083038185875af1925050503d8060008114610665576040519150601f19603f3d011682016040523d82523d6000602084013e61066a565b606091505b5091509150816106e25760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e0000006064820152608401610346565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161073396959493929190611302565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107d75760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e00000000000000006064820152608401610346565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108e25760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e000000000000000000006064820152608401610346565b6002546108ef904261125a565b82101561098a5760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a401610346565b6000888888888888886040516020016109a997969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a655760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e0000000000000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610af0908c908c908c908c908c908c90611302565b60405180910390a398975050505050505050565b33301480610b29575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b9b5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e00000000000000006064820152608401610346565b610ba481610fae565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ca05760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e0000000000000000006064820152608401610346565b600087878787878787604051602001610cbf97969594939291906111fc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d7a5760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e00000000006064820152608401610346565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610e02908b908b908b908b908b908b90611302565b60405180910390a35050505050505050565b333014610e895760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e0000000000000000000000000000006064820152608401610346565b610e10811015610f015760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e0000000000000000000000006064820152608401610346565b62278d00811115610f7a5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e00000000000000006064820152608401610346565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610ffb576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461102257600080fd5b919050565b60008083601f84011261103957600080fd5b50813567ffffffffffffffff81111561105157600080fd5b60208301915083602082850101111561106957600080fd5b9250929050565b600080600080600080600060a0888a03121561108b57600080fd5b61109488610ffe565b965060208801359550604088013567ffffffffffffffff808211156110b857600080fd5b6110c48b838c01611027565b909750955060608a01359150808211156110dd57600080fd5b506110ea8a828b01611027565b989b979a50959894979596608090950135949350505050565b60005b8381101561111e578181015183820152602001611106565b50506000910152565b6020815260008251806020840152611146816040850160208701611103565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561118a57600080fd5b61119382610ffe565b9392505050565b6000602082840312156111ac57600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061123260a0830187896111b3565b82810360608401526112458186886111b3565b91505082608083015298975050505050505050565b80820180821115611294577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112f8818460208701611103565b9190910192915050565b86815260806020820152600061131c6080830187896111b3565b828103604084015261132f8186886111b3565b91505082606083015297965050505050505056fea2646970667358221220c07d87e3cfbbfd2d102119c1681bbf90ee223afc956a756bab7d170887b6fcbd64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x56 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x28D JUMPI STOP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x202 JUMPI STOP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x1B6 JUMPI STOP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x116 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0x2BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x1127 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x74A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1178 JUMP JUMPDEST PUSH2 0xB04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1070 JUMP JUMPDEST PUSH2 0xC13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x278D00 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE10 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x127500 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH2 0xE14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x268 CALLDATASIZE PUSH1 0x4 PUSH2 0x119A JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x34F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A204361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6C206D75737420636F6D652066726F6D2061646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x36E SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774206265656E207175657565642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST DUP3 TIMESTAMP LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774207375727061737365642074696D6520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6C6F636B2E000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0x4D2 PUSH3 0x127500 DUP5 PUSH2 0x125A JUMP JUMPDEST TIMESTAMP GT ISZERO PUSH2 0x547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206973207374616C652E00000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE PUSH1 0x60 SWAP1 DUP8 SWAP1 SUB PUSH2 0x5C4 JUMPI DUP6 DUP6 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 SWAP3 SWAP4 POP PUSH2 0x5FF SWAP3 POP POP POP JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5D4 SWAP3 SWAP2 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x5ED SWAP2 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x12AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x628 SWAP2 SWAP1 PUSH2 0x12E6 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 0x665 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 0x66A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E20657865637574696F6E2072657665727465642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x733 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x7D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A61636365707441646D696E3A2043616C6C206D757374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6D652066726F6D2070656E64696E6741646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2043616C6C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D75737420636F6D652066726F6D2061646D696E2E00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x8EF SWAP1 TIMESTAMP PUSH2 0x125A JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x98A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2045737469 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D6174656420657865637574696F6E20626C6F636B206D757374207361746973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x66792064656C61792E0000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9A9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0xA65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A207472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x73616374696F6E20616C7265616479207175657565642E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP1 DUP3 SWAP1 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F SWAP1 PUSH2 0xAF0 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ DUP1 PUSH2 0xB29 JUMPI POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0xB9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657450656E64696E6741646D696E3A2043616C6C20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D75737420636F6D652066726F6D2054696D656C6F636B2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0xFAE JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xCA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A2043616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C206D75737420636F6D652066726F6D2061646D696E2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCBF SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xD7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A20747261 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E73616374696F6E206973206E6F7420717565756564207965742E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP1 DUP3 SWAP1 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 SWAP1 PUSH2 0xE02 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xE89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2043616C6C206D75737420636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D652066726F6D2054696D656C6F636B2E000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH2 0xE10 DUP2 LT ISZERO PUSH2 0xF01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D7573742065 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7863656564206D696E696D756D2064656C61792E000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH3 0x278D00 DUP2 GT ISZERO PUSH2 0xF7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x346 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xED0229422AF39D4D7D33F7A27D31D6F5CB20EC628293DA58DD6E8A528ED466BE SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1022 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1039 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1051 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1069 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x108B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1094 DUP9 PUSH2 0xFFE JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x10B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C4 DUP12 DUP4 DUP13 ADD PUSH2 0x1027 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10EA DUP11 DUP3 DUP12 ADD PUSH2 0x1027 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 SWAP5 SWAP8 SWAP6 SWAP7 PUSH1 0x80 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x111E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1106 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x1146 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x118A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1193 DUP3 PUSH2 0xFFE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1232 PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x11B3 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x1245 DUP2 DUP7 DUP9 PUSH2 0x11B3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1294 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x4 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x12F8 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1103 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x131C PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x11B3 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x132F DUP2 DUP7 DUP9 PUSH2 0x11B3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 PUSH30 0x87E3CFBBFD2D102119C1681BBF90EE223AFC956A756BAB7D170887B6FCBD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"429:9438:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8245:1342;;;;;;;;;;-1:-1:-1;8245:1342:35;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4309:247;;;;;;;;;;;;;:::i;1017:27::-;;;;;;;;;;-1:-1:-1;1017:27:35;;;;;;;;;;;2394:42:54;2382:55;;;2364:74;;2352:2;2337:18;1017:27:35;2218:226:54;5807:790:35;;;;;;;;;;-1:-1:-1;5807:790:35;;;;;:::i;:::-;;:::i;:::-;;;2595:25:54;;;2583:2;2568:18;5807:790:35;2449:177:54;4893:353:35;;;;;;;;;;-1:-1:-1;4893:353:35;;;;;:::i;:::-;;:::i;7104:593::-;;;;;;;;;;-1:-1:-1;7104:593:35;;;;;:::i;:::-;;:::i;1114:20::-;;;;;;;;;;;;;;;;4017:108;;;;;;;;;;-1:-1:-1;849:7:35;4017:108;;3813;;;;;;;;;;-1:-1:-1;709:7:35;3813:108;;3611:106;;;;;;;;;;-1:-1:-1;569:7:35;3611:106;;3062:413;;;;;;;;;;-1:-1:-1;3062:413:35;;;;;:::i;:::-;;:::i;1188:50::-;;;;;;;;;;-1:-1:-1;1188:50:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3539:14:54;;3532:22;3514:41;;3502:2;3487:18;1188:50:35;3374:187:54;939:20:35;;;;;;;;;;-1:-1:-1;939:20:35;;;;;;;;8245:1342;8473:5;;8427:12;;8473:5;;8459:10;:19;8451:88;;;;-1:-1:-1;;;8451:88:35;;3768:2:54;8451:88:35;;;3750:21:54;3807:2;3787:18;;;3780:30;3846:34;3826:18;;;3819:62;3917:26;3897:18;;;3890:54;3961:19;;8451:88:35;;;;;;;;;8550:14;8588:6;8596:5;8603:9;;8614:4;;8620:3;8577:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8567:58;;8577:47;8567:58;;;;8643:26;;;;:18;:26;;;;;;8567:58;;-1:-1:-1;8643:26:35;;8635:100;;;;-1:-1:-1;;;8635:100:35;;5229:2:54;8635:100:35;;;5211:21:54;5268:2;5248:18;;;5241:30;5307:34;5287:18;;;5280:62;5378:31;5358:18;;;5351:59;5427:19;;8635:100:35;5027:425:54;8635:100:35;8776:3;9843:15;8753:26;;8745:108;;;;-1:-1:-1;;;8745:108:35;;5659:2:54;8745:108:35;;;5641:21:54;5698:2;5678:18;;;5671:30;5737:34;5717:18;;;5710:62;5808:34;5788:18;;;5781:62;5880:7;5859:19;;;5852:36;5905:19;;8745:108:35;5457:473:54;8745:108:35;8894:20;569:7;8894:3;:20;:::i;:::-;9843:15;8871:43;;8863:107;;;;-1:-1:-1;;;8863:107:35;;6421:2:54;8863:107:35;;;6403:21:54;6460:2;6440:18;;;6433:30;6499:34;6479:18;;;6472:62;6570:21;6550:18;;;6543:49;6609:19;;8863:107:35;6219:415:54;8863:107:35;8989:26;;;;:18;:26;;;;;8981:35;;;;;;9027:21;;9063:28;;;9059:175;;9118:4;;9107:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9107:15:35;;-1:-1:-1;9059:175:35;;-1:-1:-1;;;9059:175:35;;9204:9;;9188:27;;;;;;;:::i;:::-;;;;;;;;;9164:59;;9218:4;;;;9164:59;;;:::i;:::-;;;;;;;;;;;;;9153:70;;9059:175;9304:12;9318:23;9345:6;:11;;9365:5;9373:8;9345:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9303:79;;;;9400:7;9392:81;;;;-1:-1:-1;;;9392:81:35;;7828:2:54;9392:81:35;;;7810:21:54;7867:2;7847:18;;;7840:30;7906:34;7886:18;;;7879:62;7977:31;7957:18;;;7950:59;8026:19;;9392:81:35;7626:425:54;9392:81:35;9516:6;9489:63;;9508:6;9489:63;9524:5;9531:9;;9542:4;;9548:3;9489:63;;;;;;;;;;;:::i;:::-;;;;;;;;9570:10;8245:1342;-1:-1:-1;;;;;;;;;;;8245:1342:35:o;4309:247::-;4371:12;;;;4357:10;:26;4349:95;;;;-1:-1:-1;;;4349:95:35;;8842:2:54;4349:95:35;;;8824:21:54;8881:2;8861:18;;;8854:30;8920:34;8900:18;;;8893:62;8991:26;8971:18;;;8964:54;9035:19;;4349:95:35;8640:420:54;4349:95:35;4468:5;;;4459:27;;4475:10;;4459:27;4468:5;;;;4459:27;;;4496:5;:18;;;;;;4504:10;4496:18;;;;;4524:25;;;;;;;4309:247::o;5807:790::-;5987:7;6028:5;;;;6014:10;:19;6006:86;;;;-1:-1:-1;;;6006:86:35;;9267:2:54;6006:86:35;;;9249:21:54;9306:2;9286:18;;;9279:30;9345:34;9325:18;;;9318:62;9416:24;9396:18;;;9389:52;9458:19;;6006:86:35;9065:418:54;6006:86:35;6152:5;;6130:27;;9843:15;6130:27;:::i;:::-;6123:3;:34;;6102:154;;;;-1:-1:-1;;;6102:154:35;;9690:2:54;6102:154:35;;;9672:21:54;9729:2;9709:18;;;9702:30;9768:34;9748:18;;;9741:62;9839:34;9819:18;;;9812:62;9911:11;9890:19;;;9883:40;9940:19;;6102:154:35;9488:477:54;6102:154:35;6267:14;6305:6;6313:5;6320:9;;6331:4;;6337:3;6294:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6284:58;;6294:47;6284:58;;;;6361:26;;;;:18;:26;;;;;;6284:58;;-1:-1:-1;6361:26:35;;6360:27;6352:95;;;;-1:-1:-1;;;6352:95:35;;10172:2:54;6352:95:35;;;10154:21:54;10211:2;10191:18;;;10184:30;10250:34;10230:18;;;10223:62;10321:25;10301:18;;;10294:53;10364:19;;6352:95:35;9970:419:54;6352:95:35;6457:26;;;;:18;:26;;;;;;;:33;;;;6486:4;6457:33;;;6506:61;;;;;6476:6;;6506:61;;;;6539:5;;6546:9;;;;6557:4;;;;6563:3;;6506:61;:::i;:::-;;;;;;;;6584:6;5807:790;-1:-1:-1;;;;;;;;5807:790:35:o;4893:353::-;4979:10;5001:4;4979:27;;:50;;-1:-1:-1;5024:5:35;;;;5010:10;:19;4979:50;4958:153;;;;-1:-1:-1;;;4958:153:35;;10596:2:54;4958:153:35;;;10578:21:54;10635:2;10615:18;;;10608:30;10674:34;10654:18;;;10647:62;10745:26;10725:18;;;10718:54;10789:19;;4958:153:35;10394:420:54;4958:153:35;5121:35;5142:13;5121:20;:35::i;:::-;5166:12;:28;;;;;;;;;;;;;5210:29;;;;-1:-1:-1;;5210:29:35;4893:353;:::o;7104:593::-;7308:5;;;;7294:10;:19;7286:87;;;;-1:-1:-1;;;7286:87:35;;11021:2:54;7286:87:35;;;11003:21:54;11060:2;11040:18;;;11033:30;11099:34;11079:18;;;11072:62;11170:25;11150:18;;;11143:53;11213:19;;7286:87:35;10819:419:54;7286:87:35;7384:14;7422:6;7430:5;7437:9;;7448:4;;7454:3;7411:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7401:58;;7411:47;7401:58;;;;7477:26;;;;:18;:26;;;;;;7401:58;;-1:-1:-1;7477:26:35;;7469:98;;;;-1:-1:-1;;;7469:98:35;;11445:2:54;7469:98:35;;;11427:21:54;11484:2;11464:18;;;11457:30;11523:34;11503:18;;;11496:62;11594:29;11574:18;;;11567:57;11641:19;;7469:98:35;11243:423:54;7469:98:35;7585:26;;;;:18;:26;;;;;;;7577:35;;;;;;7628:62;;;;;7604:6;;7628:62;;;;7662:5;;7669:9;;;;7680:4;;;;7686:3;;7628:62;:::i;:::-;;;;;;;;7276:421;7104:593;;;;;;;:::o;3062:413::-;3121:10;3143:4;3121:27;3113:89;;;;-1:-1:-1;;;3113:89:35;;11873:2:54;3113:89:35;;;11855:21:54;11912:2;11892:18;;;11885:30;11951:34;11931:18;;;11924:62;12022:19;12002:18;;;11995:47;12059:19;;3113:89:35;11671:413:54;3113:89:35;709:7;3220:6;:25;;3212:90;;;;-1:-1:-1;;;3212:90:35;;12291:2:54;3212:90:35;;;12273:21:54;12330:2;12310:18;;;12303:30;12369:34;12349:18;;;12342:62;12440:22;12420:18;;;12413:50;12480:19;;3212:90:35;12089:416:54;3212:90:35;849:7;3320:6;:25;;3312:94;;;;-1:-1:-1;;;3312:94:35;;12712:2:54;3312:94:35;;;12694:21:54;12751:2;12731:18;;;12724:30;12790:34;12770:18;;;12763:62;12861:26;12841:18;;;12834:54;12905:19;;3312:94:35;12510:420:54;3312:94:35;3430:5;;3421:23;;3437:6;;3430:5;3421:23;;;;;3454:5;:14;3062:413::o;485:136:24:-;548:22;;;544:75;;589:23;;;;;;;;;;;;;;544:75;485:136;:::o;14:196:54:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:348::-;267:8;277:6;331:3;324:4;316:6;312:17;308:27;298:55;;349:1;346;339:12;298:55;-1:-1:-1;372:20:54;;415:18;404:30;;401:50;;;447:1;444;437:12;401:50;484:4;476:6;472:17;460:29;;536:3;529:4;520:6;512;508:19;504:30;501:39;498:59;;;553:1;550;543:12;498:59;215:348;;;;;:::o;568:932::-;686:6;694;702;710;718;726;734;787:3;775:9;766:7;762:23;758:33;755:53;;;804:1;801;794:12;755:53;827:29;846:9;827:29;:::i;:::-;817:39;;903:2;892:9;888:18;875:32;865:42;;958:2;947:9;943:18;930:32;981:18;1022:2;1014:6;1011:14;1008:34;;;1038:1;1035;1028:12;1008:34;1077:59;1128:7;1119:6;1108:9;1104:22;1077:59;:::i;:::-;1155:8;;-1:-1:-1;1051:85:54;-1:-1:-1;1243:2:54;1228:18;;1215:32;;-1:-1:-1;1259:16:54;;;1256:36;;;1288:1;1285;1278:12;1256:36;;1327:61;1380:7;1369:8;1358:9;1354:24;1327:61;:::i;:::-;568:932;;;;-1:-1:-1;568:932:54;;;;;;1489:3;1474:19;;;1461:33;;568:932;-1:-1:-1;;;;568:932:54:o;1505:250::-;1590:1;1600:113;1614:6;1611:1;1608:13;1600:113;;;1690:11;;;1684:18;1671:11;;;1664:39;1636:2;1629:10;1600:113;;;-1:-1:-1;;1747:1:54;1729:16;;1722:27;1505:250::o;1760:453::-;1907:2;1896:9;1889:21;1870:4;1939:6;1933:13;1982:6;1977:2;1966:9;1962:18;1955:34;1998:79;2070:6;2065:2;2054:9;2050:18;2045:2;2037:6;2033:15;1998:79;:::i;:::-;2129:2;2117:15;2134:66;2113:88;2098:104;;;;2204:2;2094:113;;1760:453;-1:-1:-1;;1760:453:54:o;2631:186::-;2690:6;2743:2;2731:9;2722:7;2718:23;2714:32;2711:52;;;2759:1;2756;2749:12;2711:52;2782:29;2801:9;2782:29;:::i;:::-;2772:39;2631:186;-1:-1:-1;;;2631:186:54:o;3004:180::-;3063:6;3116:2;3104:9;3095:7;3091:23;3087:32;3084:52;;;3132:1;3129;3122:12;3084:52;-1:-1:-1;3155:23:54;;3004:180;-1:-1:-1;3004:180:54:o;3991:326::-;4080:6;4075:3;4068:19;4132:6;4125:5;4118:4;4113:3;4109:14;4096:43;;4184:1;4177:4;4168:6;4163:3;4159:16;4155:27;4148:38;4050:3;4306:4;4236:66;4231:2;4223:6;4219:15;4215:88;4210:3;4206:98;4202:109;4195:116;;3991:326;;;;:::o;4322:700::-;4633:42;4625:6;4621:55;4610:9;4603:74;4713:6;4708:2;4697:9;4693:18;4686:34;4756:3;4751:2;4740:9;4736:18;4729:31;4584:4;4783:63;4841:3;4830:9;4826:19;4818:6;4810;4783:63;:::i;:::-;4894:9;4886:6;4882:22;4877:2;4866:9;4862:18;4855:50;4922;4965:6;4957;4949;4922:50;:::i;:::-;4914:58;;;5009:6;5003:3;4992:9;4988:19;4981:35;4322:700;;;;;;;;;;:::o;5935:279::-;6000:9;;;6021:10;;;6018:190;;;6064:77;6061:1;6054:88;6165:4;6162:1;6155:15;6193:4;6190:1;6183:15;6018:190;5935:279;;;;:::o;6639:271::-;6822:6;6814;6809:3;6796:33;6778:3;6848:16;;6873:13;;;6848:16;6639:271;-1:-1:-1;6639:271:54:o;6915:414::-;7122:66;7114:6;7110:79;7105:3;7098:92;7233:6;7225;7221:1;7216:3;7212:11;7199:41;7080:3;7263:16;;7281:1;7259:24;7292:13;;;7259:24;6915:414;-1:-1:-1;;6915:414:54:o;7334:287::-;7463:3;7501:6;7495:13;7517:66;7576:6;7571:3;7564:4;7556:6;7552:17;7517:66;:::i;:::-;7599:16;;;;;7334:287;-1:-1:-1;;7334:287:54:o;8056:579::-;8327:6;8316:9;8309:25;8370:3;8365:2;8354:9;8350:18;8343:31;8290:4;8397:63;8455:3;8444:9;8440:19;8432:6;8424;8397:63;:::i;:::-;8508:9;8500:6;8496:22;8491:2;8480:9;8476:18;8469:50;8536;8579:6;8571;8563;8536:50;:::i;:::-;8528:58;;;8622:6;8617:2;8606:9;8602:18;8595:34;8056:579;;;;;;;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"997000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"164","GRACE_PERIOD()":"214","MAXIMUM_DELAY()":"237","MINIMUM_DELAY()":"259","acceptAdmin()":"54403","admin()":"2401","cancelTransaction(address,uint256,string,bytes,uint256)":"infinite","delay()":"2318","executeTransaction(address,uint256,string,bytes,uint256)":"infinite","pendingAdmin()":"2381","queueTransaction(address,uint256,string,bytes,uint256)":"infinite","queuedTransactions(bytes32)":"2516","setDelay(uint256)":"26071","setPendingAdmin(address)":"27922"},"internal":{"getBlockTimestamp()":"infinite"}},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","MAXIMUM_DELAY()":"7d645fab","MINIMUM_DELAY()":"b1b43ae5","acceptAdmin()":"0e18b681","admin()":"f851a440","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","pendingAdmin()":"26782247","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537","setDelay(uint256)":"e177246e","setPendingAdmin(address)":"4dd18bf5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"CancelTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldDelay\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"NewDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{\"GRACE_PERIOD()\":{\"returns\":{\"_0\":\"The duration of the grace period, specified as a uint256 value.\"}},\"MAXIMUM_DELAY()\":{\"returns\":{\"_0\":\"Maximum delay\"}},\"MINIMUM_DELAY()\":{\"returns\":{\"_0\":\"Minimum delay\"}},\"acceptAdmin()\":{\"custom:access\":\"Sender must be pending admin\",\"custom:event\":\"Emit NewAdmin with old and new admin\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit CancelTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"}},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit ExecuteTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Result of function call\"}},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit QueueTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Hash of the queued transaction\"}},\"setDelay(uint256)\":{\"custom:access\":\"Sender must be Timelock itself\",\"custom:event\":\"Emit NewDelay with old and new delay\",\"params\":{\"delay_\":\"The new delay period for the transaction queue\"}},\"setPendingAdmin(address)\":{\"custom:access\":\"Sender must be Timelock contract itself or admin\",\"custom:event\":\"Emit NewPendingAdmin with new pending admin\",\"params\":{\"pendingAdmin_\":\"Address of the proposed admin\"}}},\"title\":\"TimelockV8\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"CancelTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been cancelled\"},\"ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been executed\"},\"NewAdmin(address,address)\":{\"notice\":\"Event emitted when a new admin is accepted\"},\"NewDelay(uint256,uint256)\":{\"notice\":\"Event emitted when a new delay is proposed\"},\"NewPendingAdmin(address)\":{\"notice\":\"Event emitted when a new admin is proposed\"},\"QueueTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been queued\"}},\"kind\":\"user\",\"methods\":{\"GRACE_PERIOD()\":{\"notice\":\"Return grace period\"},\"MAXIMUM_DELAY()\":{\"notice\":\"Return required maximum delay\"},\"MINIMUM_DELAY()\":{\"notice\":\"Return required minimum delay\"},\"acceptAdmin()\":{\"notice\":\"Method for accepting a proposed admin\"},\"admin()\":{\"notice\":\"Timelock admin authorized to queue and execute transactions\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to cancel a queued transaction\"},\"delay()\":{\"notice\":\"Period for a proposal transaction to be queued\"},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to execute a queued transaction\"},\"pendingAdmin()\":{\"notice\":\"Account proposed as the next admin\"},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called for each action when queuing a proposal\"},\"queuedTransactions(bytes32)\":{\"notice\":\"Mapping of queued transactions\"},\"setDelay(uint256)\":{\"notice\":\"Setter for the transaction queue delay\"},\"setPendingAdmin(address)\":{\"notice\":\"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\"}},\"notice\":\"The Timelock contract using solidity V8. This contract also differs from the original timelock because it has a virtual function to get minimum delays and allow test deployments to override the value.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/TimelockV8.sol\":\"TimelockV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@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/Governance/TimelockV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title TimelockV8\\n * @author Venus\\n * @notice The Timelock contract using solidity V8.\\n * This contract also differs from the original timelock because it has a virtual function to get minimum delays\\n * and allow test deployments to override the value.\\n */\\ncontract TimelockV8 {\\n    /// @notice Required period to execute a proposal transaction\\n    uint256 private constant DEFAULT_GRACE_PERIOD = 14 days;\\n\\n    /// @notice Minimum amount of time a proposal transaction must be queued\\n    uint256 private constant DEFAULT_MINIMUM_DELAY = 1 hours;\\n\\n    /// @notice Maximum amount of time a proposal transaction must be queued\\n    uint256 private constant DEFAULT_MAXIMUM_DELAY = 30 days;\\n\\n    /// @notice Timelock admin authorized to queue and execute transactions\\n    address public admin;\\n\\n    /// @notice Account proposed as the next admin\\n    address public pendingAdmin;\\n\\n    /// @notice Period for a proposal transaction to be queued\\n    uint256 public delay;\\n\\n    /// @notice Mapping of queued transactions\\n    mapping(bytes32 => bool) public queuedTransactions;\\n\\n    /// @notice Event emitted when a new admin is accepted\\n    event NewAdmin(address indexed oldAdmin, address indexed newAdmin);\\n\\n    /// @notice Event emitted when a new admin is proposed\\n    event NewPendingAdmin(address indexed newPendingAdmin);\\n\\n    /// @notice Event emitted when a new delay is proposed\\n    event NewDelay(uint256 indexed oldDelay, uint256 indexed newDelay);\\n\\n    /// @notice Event emitted when a proposal transaction has been cancelled\\n    event CancelTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    /// @notice Event emitted when a proposal transaction has been executed\\n    event ExecuteTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    /// @notice Event emitted when a proposal transaction has been queued\\n    event QueueTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    constructor(address admin_, uint256 delay_) {\\n        require(delay_ >= MINIMUM_DELAY(), \\\"Timelock::constructor: Delay must exceed minimum delay.\\\");\\n        require(delay_ <= MAXIMUM_DELAY(), \\\"Timelock::setDelay: Delay must not exceed maximum delay.\\\");\\n        ensureNonzeroAddress(admin_);\\n\\n        admin = admin_;\\n        delay = delay_;\\n    }\\n\\n    fallback() external payable {}\\n\\n    /**\\n     * @notice Setter for the transaction queue delay\\n     * @param delay_ The new delay period for the transaction queue\\n     * @custom:access Sender must be Timelock itself\\n     * @custom:event Emit NewDelay with old and new delay\\n     */\\n    function setDelay(uint256 delay_) public {\\n        require(msg.sender == address(this), \\\"Timelock::setDelay: Call must come from Timelock.\\\");\\n        require(delay_ >= MINIMUM_DELAY(), \\\"Timelock::setDelay: Delay must exceed minimum delay.\\\");\\n        require(delay_ <= MAXIMUM_DELAY(), \\\"Timelock::setDelay: Delay must not exceed maximum delay.\\\");\\n        emit NewDelay(delay, delay_);\\n        delay = delay_;\\n    }\\n\\n    /**\\n     * @notice Return grace period\\n     * @return The duration of the grace period, specified as a uint256 value.\\n     */\\n    function GRACE_PERIOD() public view virtual returns (uint256) {\\n        return DEFAULT_GRACE_PERIOD;\\n    }\\n\\n    /**\\n     * @notice Return required minimum delay\\n     * @return Minimum delay\\n     */\\n    function MINIMUM_DELAY() public view virtual returns (uint256) {\\n        return DEFAULT_MINIMUM_DELAY;\\n    }\\n\\n    /**\\n     * @notice Return required maximum delay\\n     * @return Maximum delay\\n     */\\n    function MAXIMUM_DELAY() public view virtual returns (uint256) {\\n        return DEFAULT_MAXIMUM_DELAY;\\n    }\\n\\n    /**\\n     * @notice Method for accepting a proposed admin\\n     * @custom:access Sender must be pending admin\\n     * @custom:event Emit NewAdmin with old and new admin\\n     */\\n    function acceptAdmin() public {\\n        require(msg.sender == pendingAdmin, \\\"Timelock::acceptAdmin: Call must come from pendingAdmin.\\\");\\n        emit NewAdmin(admin, msg.sender);\\n        admin = msg.sender;\\n        pendingAdmin = address(0);\\n    }\\n\\n    /**\\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\\n     * @param pendingAdmin_ Address of the proposed admin\\n     * @custom:access Sender must be Timelock contract itself or admin\\n     * @custom:event Emit NewPendingAdmin with new pending admin\\n     */\\n    function setPendingAdmin(address pendingAdmin_) public {\\n        require(\\n            msg.sender == address(this) || msg.sender == admin,\\n            \\\"Timelock::setPendingAdmin: Call must come from Timelock.\\\"\\n        );\\n        ensureNonzeroAddress(pendingAdmin_);\\n        pendingAdmin = pendingAdmin_;\\n\\n        emit NewPendingAdmin(pendingAdmin);\\n    }\\n\\n    /**\\n     * @notice Called for each action when queuing a proposal\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Hash of the queued transaction\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit QueueTransaction\\n     */\\n    function queueTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public returns (bytes32) {\\n        require(msg.sender == admin, \\\"Timelock::queueTransaction: Call must come from admin.\\\");\\n        require(\\n            eta >= getBlockTimestamp() + delay,\\n            \\\"Timelock::queueTransaction: Estimated execution block must satisfy delay.\\\"\\n        );\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(!queuedTransactions[txHash], \\\"Timelock::queueTransaction: transaction already queued.\\\");\\n        queuedTransactions[txHash] = true;\\n\\n        emit QueueTransaction(txHash, target, value, signature, data, eta);\\n        return txHash;\\n    }\\n\\n    /**\\n     * @notice Called to cancel a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit CancelTransaction\\n     */\\n    function cancelTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public {\\n        require(msg.sender == admin, \\\"Timelock::cancelTransaction: Call must come from admin.\\\");\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(queuedTransactions[txHash], \\\"Timelock::cancelTransaction: transaction is not queued yet.\\\");\\n        delete (queuedTransactions[txHash]);\\n\\n        emit CancelTransaction(txHash, target, value, signature, data, eta);\\n    }\\n\\n    /**\\n     * @notice Called to execute a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Result of function call\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit ExecuteTransaction\\n     */\\n    function executeTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public returns (bytes memory) {\\n        require(msg.sender == admin, \\\"Timelock::executeTransaction: Call must come from admin.\\\");\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(queuedTransactions[txHash], \\\"Timelock::executeTransaction: Transaction hasn't been queued.\\\");\\n        require(getBlockTimestamp() >= eta, \\\"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\\\");\\n        require(getBlockTimestamp() <= eta + GRACE_PERIOD(), \\\"Timelock::executeTransaction: Transaction is stale.\\\");\\n\\n        delete (queuedTransactions[txHash]);\\n\\n        bytes memory callData;\\n\\n        if (bytes(signature).length == 0) {\\n            callData = data;\\n        } else {\\n            callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\\n        }\\n\\n        // solium-disable-next-line security/no-call-value\\n        (bool success, bytes memory returnData) = target.call{ value: value }(callData);\\n        require(success, \\\"Timelock::executeTransaction: Transaction execution reverted.\\\");\\n\\n        emit ExecuteTransaction(txHash, target, value, signature, data, eta);\\n\\n        return returnData;\\n    }\\n\\n    /**\\n     * @notice Returns the current block timestamp\\n     * @return The current block timestamp\\n     */\\n    function getBlockTimestamp() internal view returns (uint256) {\\n        // solium-disable-next-line security/no-block-members\\n        return block.timestamp;\\n    }\\n}\\n\",\"keccak256\":\"0x14dc68819f1d7e496cf07d688818fdc6f2dcb15e4fcc9e622732325d1727d613\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8409,"contract":"contracts/Governance/TimelockV8.sol:TimelockV8","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":8412,"contract":"contracts/Governance/TimelockV8.sol:TimelockV8","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":8415,"contract":"contracts/Governance/TimelockV8.sol:TimelockV8","label":"delay","offset":0,"slot":"2","type":"t_uint256"},{"astId":8420,"contract":"contracts/Governance/TimelockV8.sol:TimelockV8","label":"queuedTransactions","offset":0,"slot":"3","type":"t_mapping(t_bytes32,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_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"CancelTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been cancelled"},"ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been executed"},"NewAdmin(address,address)":{"notice":"Event emitted when a new admin is accepted"},"NewDelay(uint256,uint256)":{"notice":"Event emitted when a new delay is proposed"},"NewPendingAdmin(address)":{"notice":"Event emitted when a new admin is proposed"},"QueueTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been queued"}},"kind":"user","methods":{"GRACE_PERIOD()":{"notice":"Return grace period"},"MAXIMUM_DELAY()":{"notice":"Return required maximum delay"},"MINIMUM_DELAY()":{"notice":"Return required minimum delay"},"acceptAdmin()":{"notice":"Method for accepting a proposed admin"},"admin()":{"notice":"Timelock admin authorized to queue and execute transactions"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to cancel a queued transaction"},"delay()":{"notice":"Period for a proposal transaction to be queued"},"executeTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to execute a queued transaction"},"pendingAdmin()":{"notice":"Account proposed as the next admin"},"queueTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called for each action when queuing a proposal"},"queuedTransactions(bytes32)":{"notice":"Mapping of queued transactions"},"setDelay(uint256)":{"notice":"Setter for the transaction queue delay"},"setPendingAdmin(address)":{"notice":"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract"}},"notice":"The Timelock contract using solidity V8. This contract also differs from the original timelock because it has a virtual function to get minimum delays and allow test deployments to override the value.","version":1}}},"contracts/Utils/ACMCommandsAggregator.sol":{"ACMCommandsAggregator":{"abi":[{"inputs":[{"internalType":"contract IAccessControlManagerV8","name":"_acm","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EmptyPermissions","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"GrantPermissionsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"GrantPermissionsExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"RevokePermissionsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"}],"name":"RevokePermissionsExecuted","type":"event"},{"inputs":[],"name":"ACM","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"account","type":"address"}],"internalType":"struct ACMCommandsAggregator.Permission[]","name":"_permissions","type":"tuple[]"}],"name":"addGrantPermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"account","type":"address"}],"internalType":"struct ACMCommandsAggregator.Permission[]","name":"_permissions","type":"tuple[]"}],"name":"addRevokePermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"executeGrantPermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"executeRevokePermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"grantPermissions","outputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"revokePermissions","outputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{},"title":"ACMCommandsAggregator","version":1},"evm":{"bytecode":{"functionDebugData":{"@_8996":{"entryPoint":null,"id":8996,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":67,"id":5466,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_IAccessControlManagerV8_$8389_fromMemory":{"entryPoint":108,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:338:54","nodeType":"YulBlock","src":"0:338:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"127:209:54","nodeType":"YulBlock","src":"127:209:54","statements":[{"body":{"nativeSrc":"173:16:54","nodeType":"YulBlock","src":"173:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"182:1:54","nodeType":"YulLiteral","src":"182:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"185:1:54","nodeType":"YulLiteral","src":"185:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"175:6:54","nodeType":"YulIdentifier","src":"175:6:54"},"nativeSrc":"175:12:54","nodeType":"YulFunctionCall","src":"175:12:54"},"nativeSrc":"175:12:54","nodeType":"YulExpressionStatement","src":"175:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"148:7:54","nodeType":"YulIdentifier","src":"148:7:54"},{"name":"headStart","nativeSrc":"157:9:54","nodeType":"YulIdentifier","src":"157:9:54"}],"functionName":{"name":"sub","nativeSrc":"144:3:54","nodeType":"YulIdentifier","src":"144:3:54"},"nativeSrc":"144:23:54","nodeType":"YulFunctionCall","src":"144:23:54"},{"kind":"number","nativeSrc":"169:2:54","nodeType":"YulLiteral","src":"169:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"140:3:54","nodeType":"YulIdentifier","src":"140:3:54"},"nativeSrc":"140:32:54","nodeType":"YulFunctionCall","src":"140:32:54"},"nativeSrc":"137:52:54","nodeType":"YulIf","src":"137:52:54"},{"nativeSrc":"198:29:54","nodeType":"YulVariableDeclaration","src":"198:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"217:9:54","nodeType":"YulIdentifier","src":"217:9:54"}],"functionName":{"name":"mload","nativeSrc":"211:5:54","nodeType":"YulIdentifier","src":"211:5:54"},"nativeSrc":"211:16:54","nodeType":"YulFunctionCall","src":"211:16:54"},"variables":[{"name":"value","nativeSrc":"202:5:54","nodeType":"YulTypedName","src":"202:5:54","type":""}]},{"body":{"nativeSrc":"290:16:54","nodeType":"YulBlock","src":"290:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"299:1:54","nodeType":"YulLiteral","src":"299:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"302:1:54","nodeType":"YulLiteral","src":"302:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"292:6:54","nodeType":"YulIdentifier","src":"292:6:54"},"nativeSrc":"292:12:54","nodeType":"YulFunctionCall","src":"292:12:54"},"nativeSrc":"292:12:54","nodeType":"YulExpressionStatement","src":"292:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"249:5:54","nodeType":"YulIdentifier","src":"249:5:54"},{"arguments":[{"name":"value","nativeSrc":"260:5:54","nodeType":"YulIdentifier","src":"260:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"275:3:54","nodeType":"YulLiteral","src":"275:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"280:1:54","nodeType":"YulLiteral","src":"280:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"271:3:54","nodeType":"YulIdentifier","src":"271:3:54"},"nativeSrc":"271:11:54","nodeType":"YulFunctionCall","src":"271:11:54"},{"kind":"number","nativeSrc":"284:1:54","nodeType":"YulLiteral","src":"284:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"267:3:54","nodeType":"YulIdentifier","src":"267:3:54"},"nativeSrc":"267:19:54","nodeType":"YulFunctionCall","src":"267:19:54"}],"functionName":{"name":"and","nativeSrc":"256:3:54","nodeType":"YulIdentifier","src":"256:3:54"},"nativeSrc":"256:31:54","nodeType":"YulFunctionCall","src":"256:31:54"}],"functionName":{"name":"eq","nativeSrc":"246:2:54","nodeType":"YulIdentifier","src":"246:2:54"},"nativeSrc":"246:42:54","nodeType":"YulFunctionCall","src":"246:42:54"}],"functionName":{"name":"iszero","nativeSrc":"239:6:54","nodeType":"YulIdentifier","src":"239:6:54"},"nativeSrc":"239:50:54","nodeType":"YulFunctionCall","src":"239:50:54"},"nativeSrc":"236:70:54","nodeType":"YulIf","src":"236:70:54"},{"nativeSrc":"315:15:54","nodeType":"YulAssignment","src":"315:15:54","value":{"name":"value","nativeSrc":"325:5:54","nodeType":"YulIdentifier","src":"325:5:54"},"variableNames":[{"name":"value0","nativeSrc":"315:6:54","nodeType":"YulIdentifier","src":"315:6:54"}]}]},"name":"abi_decode_tuple_t_contract$_IAccessControlManagerV8_$8389_fromMemory","nativeSrc":"14:322:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"93:9:54","nodeType":"YulTypedName","src":"93:9:54","type":""},{"name":"dataEnd","nativeSrc":"104:7:54","nodeType":"YulTypedName","src":"104:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"116:6:54","nodeType":"YulTypedName","src":"116:6:54","type":""}],"src":"14:322:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_contract$_IAccessControlManagerV8_$8389_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052348015600f57600080fd5b506040516110c73803806110c7833981016040819052602c91606c565b6033816043565b6001600160a01b0316608052609a565b6001600160a01b0381166069576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600060208284031215607d57600080fd5b81516001600160a01b0381168114609357600080fd5b9392505050565b6080516110046100c360003960008181610100015281816102de0152610a0101526110046000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80639d6c76b81161005b5780639d6c76b8146100d5578063de46a235146100e8578063f9b80da1146100fb578063ff1575e11461014757600080fd5b806322473d8c14610082578063514aab87146100975780635666a5ea146100c2575b600080fd5b610095610090366004610ab8565b61015a565b005b6100aa6100a5366004610ad1565b61038d565b6040516100b993929190610af3565b60405180910390f35b6100956100d0366004610c59565b610492565b6100956100e3366004610c59565b610689565b6100956100f6366004610ab8565b61087f565b6101227f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b9565b6100aa610155366004610ad1565b610aa8565b60006001828154811061016f5761016f610de1565b600091825260208220015491505b818110156103545760006001848154811061019a5761019a610de1565b9060005260206000200182815481106101b5576101b5610de1565b60009182526020918290206040805160608101909152600390920201805473ffffffffffffffffffffffffffffffffffffffff168252600181018054929391929184019161020290610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461022e90610e10565b801561027b5780601f106102505761010080835404028352916020019161027b565b820191906000526020600020905b81548152906001019060200180831161025e57829003601f168201915b50505091835250506002919091015473ffffffffffffffffffffffffffffffffffffffff90811660209283015282519183015160408085015190517f545f7a320000000000000000000000000000000000000000000000000000000081529495507f00000000000000000000000000000000000000000000000000000000000000009092169363545f7a329361031693909291600401610af3565b600060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b505050505080600101905061017d565b506040518281527f1382323d6618527d8b03daa05db815f0490966e8b80679fe5ad3d868f84e1a71906020015b60405180910390a15050565b6000828154811061039d57600080fd5b9060005260206000200181815481106103b557600080fd5b60009182526020909120600390910201805460018201805473ffffffffffffffffffffffffffffffffffffffff90921694509192506103f390610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461041f90610e10565b801561046c5780601f106104415761010080835404028352916020019161046c565b820191906000526020600020905b81548152906001019060200180831161044f57829003601f168201915b5050506002909301549192505073ffffffffffffffffffffffffffffffffffffffff1683565b80516000036104cd576040517f4494013c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805480820182556000918252905b825181101561065857600182815481106104f9576104f9610de1565b90600052602060002001604051806060016040528085848151811061052057610520610de1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200185848151811061055957610559610de1565b602002602001015160200151815260200185848151811061057c5761057c610de1565b6020908102919091018101516040015173ffffffffffffffffffffffffffffffffffffffff908116909252835460018082018655600095865294829020845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617825582015191929091908201906106019082610eb4565b5060409190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556001016104dd565b506040518181527f75922591bf2cec980645dc4a32bb7d5e8da9a15fda86dacf06f8402cecd1478f90602001610381565b80516000036106c4576040517f4494013c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054600181018255818052905b825181101561084e57600082815481106106ef576106ef610de1565b90600052602060002001604051806060016040528085848151811061071657610716610de1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200185848151811061074f5761074f610de1565b602002602001015160200151815260200185848151811061077257610772610de1565b6020908102919091018101516040015173ffffffffffffffffffffffffffffffffffffffff908116909252835460018082018655600095865294829020845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617825582015191929091908201906107f79082610eb4565b5060409190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556001016106d3565b506040518181527ff8ca6ea7cc31be8572501c37ef5e9e8298be717fb881e0b1ca785aecc4d25e9f90602001610381565b600080828154811061089357610893610de1565b600091825260208220015491505b81811015610a775760008084815481106108bd576108bd610de1565b9060005260206000200182815481106108d8576108d8610de1565b60009182526020918290206040805160608101909152600390920201805473ffffffffffffffffffffffffffffffffffffffff168252600181018054929391929184019161092590610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461095190610e10565b801561099e5780601f106109735761010080835404028352916020019161099e565b820191906000526020600020905b81548152906001019060200180831161098157829003601f168201915b50505091835250506002919091015473ffffffffffffffffffffffffffffffffffffffff90811660209283015282519183015160408085015190517f584f6b600000000000000000000000000000000000000000000000000000000081529495507f00000000000000000000000000000000000000000000000000000000000000009092169363584f6b6093610a3993909291600401610af3565b600060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b50505050508060010190506108a1565b506040518281527f01a805f459381af632ecab72ec192c3f9a4c72d26be089026ffd6636d82de98890602001610381565b6001828154811061039d57600080fd5b600060208284031215610aca57600080fd5b5035919050565b60008060408385031215610ae457600080fd5b50508035926020909101359150565b600073ffffffffffffffffffffffffffffffffffffffff8086168352602060606020850152855180606086015260005b81811015610b3f57878101830151868201608001528201610b23565b5060006080828701015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011686010193505050808416604084015250949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610bdb57610bdb610b89565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c2857610c28610b89565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c5457600080fd5b919050565b60006020808385031215610c6c57600080fd5b823567ffffffffffffffff80821115610c8457600080fd5b818501915085601f830112610c9857600080fd5b813581811115610caa57610caa610b89565b8060051b610cb9858201610be1565b9182528381018501918581019089841115610cd357600080fd5b86860192505b83831015610dd457823585811115610cf057600080fd5b86017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06060828d0382011215610d265760008081fd5b610d2e610bb8565b610d398a8401610c30565b815260408084013589811115610d4f5760008081fd5b8401603f81018f13610d615760008081fd5b8b8101358a811115610d7557610d75610b89565b610d858d86601f84011601610be1565b94508085528f83828401011115610d9c5760008081fd5b808383018e87013760008d82870101525050828b830152610dbf60608501610c30565b90820152845250509186019190860190610cd9565b9998505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600181811c90821680610e2457607f821691505b602082108103610e5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610eaf576000816000526020600020601f850160051c81016020861015610e8c5750805b601f850160051c820191505b81811015610eab57828155600101610e98565b5050505b505050565b815167ffffffffffffffff811115610ece57610ece610b89565b610ee281610edc8454610e10565b84610e63565b602080601f831160018114610f355760008415610eff5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610eab565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610f8257888601518255948401946001909101908401610f63565b5085821015610fbe57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea264697066735822122090d4936e163063dfe747da5bf04cc06002b17436a13e78a30b2797e6219ebb2264736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x10C7 CODESIZE SUB DUP1 PUSH2 0x10C7 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x6C JUMP JUMPDEST PUSH1 0x33 DUP2 PUSH1 0x43 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH1 0x9A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x69 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 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1004 PUSH2 0xC3 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x100 ADD MSTORE DUP2 DUP2 PUSH2 0x2DE ADD MSTORE PUSH2 0xA01 ADD MSTORE PUSH2 0x1004 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 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9D6C76B8 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x9D6C76B8 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xDE46A235 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0xF9B80DA1 EQ PUSH2 0xFB JUMPI DUP1 PUSH4 0xFF1575E1 EQ PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x22473D8C EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x514AAB87 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x5666A5EA EQ PUSH2 0xC2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x15A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAA PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xD0 CALLDATASIZE PUSH1 0x4 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xE3 CALLDATASIZE PUSH1 0x4 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0x689 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x87F JUMP JUMPDEST PUSH2 0x122 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB9 JUMP JUMPDEST PUSH2 0xAA PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0xAA8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x16F JUMPI PUSH2 0x16F PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 PUSH1 0x1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x19A JUMPI PUSH2 0x19A PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1B5 JUMPI PUSH2 0x1B5 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x202 SWAP1 PUSH2 0xE10 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 0x22E SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x250 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x27B 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 0x25E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x545F7A3200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP5 SWAP6 POP PUSH32 0x0 SWAP1 SWAP3 AND SWAP4 PUSH4 0x545F7A32 SWAP4 PUSH2 0x316 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x4 ADD PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x344 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x17D JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x1382323D6618527D8B03DAA05DB815F0490966E8B80679FE5AD3D868F84E1A71 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x3F3 SWAP1 PUSH2 0xE10 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 0x41F SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x46C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x441 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x46C 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 0x44F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x4CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x4494013C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE SWAP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x658 JUMPI PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4F9 JUMPI PUSH2 0x4F9 PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x520 JUMPI PUSH2 0x520 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x559 JUMPI PUSH2 0x559 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x57C JUMPI PUSH2 0x57C PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 SWAP3 MSTORE DUP4 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP7 SSTORE PUSH1 0x0 SWAP6 DUP7 MSTORE SWAP5 DUP3 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP4 AND OR DUP3 SSTORE DUP3 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x601 SWAP1 DUP3 PUSH2 0xEB4 JUMP JUMPDEST POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x4DD JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x75922591BF2CEC980645DC4A32BB7D5E8DA9A15FDA86DACF06F8402CECD1478F SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x6C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4494013C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE DUP2 DUP1 MSTORE SWAP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x6EF JUMPI PUSH2 0x6EF PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x716 JUMPI PUSH2 0x716 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x74F JUMPI PUSH2 0x74F PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x772 JUMPI PUSH2 0x772 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 SWAP3 MSTORE DUP4 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP7 SSTORE PUSH1 0x0 SWAP6 DUP7 MSTORE SWAP5 DUP3 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP4 AND OR DUP3 SSTORE DUP3 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x7F7 SWAP1 DUP3 PUSH2 0xEB4 JUMP JUMPDEST POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x6D3 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xF8CA6EA7CC31BE8572501C37EF5E9E8298BE717FB881E0B1CA785AECC4D25E9F SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x893 JUMPI PUSH2 0x893 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x8BD JUMPI PUSH2 0x8BD PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x8D8 JUMPI PUSH2 0x8D8 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x925 SWAP1 PUSH2 0xE10 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 0x951 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x973 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99E 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 0x981 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x584F6B6000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP5 SWAP6 POP PUSH32 0x0 SWAP1 SWAP3 AND SWAP4 PUSH4 0x584F6B60 SWAP4 PUSH2 0xA39 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x4 ADD PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x8A1 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x1A805F459381AF632ECAB72EC192C3F9A4C72D26BE089026FFD6636D82DE988 SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE PUSH1 0x20 PUSH1 0x60 PUSH1 0x20 DUP6 ADD MSTORE DUP6 MLOAD DUP1 PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB3F JUMPI DUP8 DUP2 ADD DUP4 ADD MLOAD DUP7 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0xB23 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x80 DUP3 DUP8 ADD ADD MSTORE PUSH1 0x80 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP7 ADD ADD SWAP4 POP POP POP DUP1 DUP5 AND PUSH1 0x40 DUP5 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xBDB JUMPI PUSH2 0xBDB PUSH2 0xB89 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC28 JUMPI PUSH2 0xC28 PUSH2 0xB89 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xC54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xCAA JUMPI PUSH2 0xCAA PUSH2 0xB89 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0xCB9 DUP6 DUP3 ADD PUSH2 0xBE1 JUMP JUMPDEST SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD SWAP1 DUP10 DUP5 GT ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0xDD4 JUMPI DUP3 CALLDATALOAD DUP6 DUP2 GT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x60 DUP3 DUP14 SUB DUP3 ADD SLT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD2E PUSH2 0xBB8 JUMP JUMPDEST PUSH2 0xD39 DUP11 DUP5 ADD PUSH2 0xC30 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD DUP10 DUP2 GT ISZERO PUSH2 0xD4F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP5 ADD PUSH1 0x3F DUP2 ADD DUP16 SGT PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP12 DUP2 ADD CALLDATALOAD DUP11 DUP2 GT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD75 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0xD85 DUP14 DUP7 PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0xBE1 JUMP JUMPDEST SWAP5 POP DUP1 DUP6 MSTORE DUP16 DUP4 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP1 DUP4 DUP4 ADD DUP15 DUP8 ADD CALLDATACOPY PUSH1 0x0 DUP14 DUP3 DUP8 ADD ADD MSTORE POP POP DUP3 DUP12 DUP4 ADD MSTORE PUSH2 0xDBF PUSH1 0x60 DUP6 ADD PUSH2 0xC30 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE DUP5 MSTORE POP POP SWAP2 DUP7 ADD SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0xCD9 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xE24 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE5D JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xE8C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEAB JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xE98 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xECE JUMPI PUSH2 0xECE PUSH2 0xB89 JUMP JUMPDEST PUSH2 0xEE2 DUP2 PUSH2 0xEDC DUP5 SLOAD PUSH2 0xE10 JUMP JUMPDEST DUP5 PUSH2 0xE63 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xF35 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xEFF JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xF82 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xF63 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xFBE JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 0xD4 SWAP4 PUSH15 0x163063DFE747DA5BF04CC06002B174 CALLDATASIZE LOG1 RETURNDATACOPY PUSH25 0xA30B2797E6219EBB2264736F6C634300081900330000000000 ","sourceMap":"435:4240:36:-:0;;;1966:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2018:35;2047:4;2018:20;:35::i;:::-;-1:-1:-1;;;;;2063:10:36;;;435:4240;;485:136:24;-1:-1:-1;;;;;548:22:24;;544:75;;589:23;;-1:-1:-1;;;589:23:24;;;;;;;;;;;544:75;485:136;:::o;14:322:54:-;116:6;169:2;157:9;148:7;144:23;140:32;137:52;;;185:1;182;175:12;137:52;211:16;;-1:-1:-1;;;;;256:31:54;;246:42;;236:70;;302:1;299;292:12;236:70;325:5;14:322;-1:-1:-1;;;14:322:54:o;:::-;435:4240:36;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@ACM_8950":{"entryPoint":null,"id":8950,"parameterSlots":0,"returnSlots":0},"@addGrantPermissions_9059":{"entryPoint":1673,"id":9059,"parameterSlots":1,"returnSlots":0},"@addRevokePermissions_9122":{"entryPoint":1170,"id":9122,"parameterSlots":1,"returnSlots":0},"@executeGrantPermissions_9170":{"entryPoint":2175,"id":9170,"parameterSlots":1,"returnSlots":0},"@executeRevokePermissions_9218":{"entryPoint":346,"id":9218,"parameterSlots":1,"returnSlots":0},"@grantPermissions_8955":{"entryPoint":909,"id":8955,"parameterSlots":0,"returnSlots":0},"@revokePermissions_8960":{"entryPoint":2728,"id":8960,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":3120,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr":{"entryPoint":3161,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2744,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":2769,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address_t_string_memory_ptr_t_address__to_t_address_t_string_memory_ptr_t_address__fromStack_reversed":{"entryPoint":2803,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3041,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_1501":{"entryPoint":3000,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":3683,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":3764,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3600,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":3553,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2953,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8117:54","nodeType":"YulBlock","src":"0:8117:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"84:110:54","nodeType":"YulBlock","src":"84:110:54","statements":[{"body":{"nativeSrc":"130:16:54","nodeType":"YulBlock","src":"130:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"139:1:54","nodeType":"YulLiteral","src":"139:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"142:1:54","nodeType":"YulLiteral","src":"142:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"132:6:54","nodeType":"YulIdentifier","src":"132:6:54"},"nativeSrc":"132:12:54","nodeType":"YulFunctionCall","src":"132:12:54"},"nativeSrc":"132:12:54","nodeType":"YulExpressionStatement","src":"132:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"105:7:54","nodeType":"YulIdentifier","src":"105:7:54"},{"name":"headStart","nativeSrc":"114:9:54","nodeType":"YulIdentifier","src":"114:9:54"}],"functionName":{"name":"sub","nativeSrc":"101:3:54","nodeType":"YulIdentifier","src":"101:3:54"},"nativeSrc":"101:23:54","nodeType":"YulFunctionCall","src":"101:23:54"},{"kind":"number","nativeSrc":"126:2:54","nodeType":"YulLiteral","src":"126:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"97:3:54","nodeType":"YulIdentifier","src":"97:3:54"},"nativeSrc":"97:32:54","nodeType":"YulFunctionCall","src":"97:32:54"},"nativeSrc":"94:52:54","nodeType":"YulIf","src":"94:52:54"},{"nativeSrc":"155:33:54","nodeType":"YulAssignment","src":"155:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"178:9:54","nodeType":"YulIdentifier","src":"178:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"165:12:54","nodeType":"YulIdentifier","src":"165:12:54"},"nativeSrc":"165:23:54","nodeType":"YulFunctionCall","src":"165:23:54"},"variableNames":[{"name":"value0","nativeSrc":"155:6:54","nodeType":"YulIdentifier","src":"155:6:54"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"14:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50:9:54","nodeType":"YulTypedName","src":"50:9:54","type":""},{"name":"dataEnd","nativeSrc":"61:7:54","nodeType":"YulTypedName","src":"61:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"73:6:54","nodeType":"YulTypedName","src":"73:6:54","type":""}],"src":"14:180:54"},{"body":{"nativeSrc":"286:161:54","nodeType":"YulBlock","src":"286:161:54","statements":[{"body":{"nativeSrc":"332:16:54","nodeType":"YulBlock","src":"332:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"341:1:54","nodeType":"YulLiteral","src":"341:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"344:1:54","nodeType":"YulLiteral","src":"344:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"334:6:54","nodeType":"YulIdentifier","src":"334:6:54"},"nativeSrc":"334:12:54","nodeType":"YulFunctionCall","src":"334:12:54"},"nativeSrc":"334:12:54","nodeType":"YulExpressionStatement","src":"334:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"307:7:54","nodeType":"YulIdentifier","src":"307:7:54"},{"name":"headStart","nativeSrc":"316:9:54","nodeType":"YulIdentifier","src":"316:9:54"}],"functionName":{"name":"sub","nativeSrc":"303:3:54","nodeType":"YulIdentifier","src":"303:3:54"},"nativeSrc":"303:23:54","nodeType":"YulFunctionCall","src":"303:23:54"},{"kind":"number","nativeSrc":"328:2:54","nodeType":"YulLiteral","src":"328:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"299:3:54","nodeType":"YulIdentifier","src":"299:3:54"},"nativeSrc":"299:32:54","nodeType":"YulFunctionCall","src":"299:32:54"},"nativeSrc":"296:52:54","nodeType":"YulIf","src":"296:52:54"},{"nativeSrc":"357:33:54","nodeType":"YulAssignment","src":"357:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"380:9:54","nodeType":"YulIdentifier","src":"380:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"367:12:54","nodeType":"YulIdentifier","src":"367:12:54"},"nativeSrc":"367:23:54","nodeType":"YulFunctionCall","src":"367:23:54"},"variableNames":[{"name":"value0","nativeSrc":"357:6:54","nodeType":"YulIdentifier","src":"357:6:54"}]},{"nativeSrc":"399:42:54","nodeType":"YulAssignment","src":"399:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"426:9:54","nodeType":"YulIdentifier","src":"426:9:54"},{"kind":"number","nativeSrc":"437:2:54","nodeType":"YulLiteral","src":"437:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"422:3:54","nodeType":"YulIdentifier","src":"422:3:54"},"nativeSrc":"422:18:54","nodeType":"YulFunctionCall","src":"422:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"409:12:54","nodeType":"YulIdentifier","src":"409:12:54"},"nativeSrc":"409:32:54","nodeType":"YulFunctionCall","src":"409:32:54"},"variableNames":[{"name":"value1","nativeSrc":"399:6:54","nodeType":"YulIdentifier","src":"399:6:54"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"199:248:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"244:9:54","nodeType":"YulTypedName","src":"244:9:54","type":""},{"name":"dataEnd","nativeSrc":"255:7:54","nodeType":"YulTypedName","src":"255:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"267:6:54","nodeType":"YulTypedName","src":"267:6:54","type":""},{"name":"value1","nativeSrc":"275:6:54","nodeType":"YulTypedName","src":"275:6:54","type":""}],"src":"199:248:54"},{"body":{"nativeSrc":"629:654:54","nodeType":"YulBlock","src":"629:654:54","statements":[{"nativeSrc":"639:52:54","nodeType":"YulVariableDeclaration","src":"639:52:54","value":{"kind":"number","nativeSrc":"649:42:54","nodeType":"YulLiteral","src":"649:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"643:2:54","nodeType":"YulTypedName","src":"643:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"707:9:54","nodeType":"YulIdentifier","src":"707:9:54"},{"arguments":[{"name":"value0","nativeSrc":"722:6:54","nodeType":"YulIdentifier","src":"722:6:54"},{"name":"_1","nativeSrc":"730:2:54","nodeType":"YulIdentifier","src":"730:2:54"}],"functionName":{"name":"and","nativeSrc":"718:3:54","nodeType":"YulIdentifier","src":"718:3:54"},"nativeSrc":"718:15:54","nodeType":"YulFunctionCall","src":"718:15:54"}],"functionName":{"name":"mstore","nativeSrc":"700:6:54","nodeType":"YulIdentifier","src":"700:6:54"},"nativeSrc":"700:34:54","nodeType":"YulFunctionCall","src":"700:34:54"},"nativeSrc":"700:34:54","nodeType":"YulExpressionStatement","src":"700:34:54"},{"nativeSrc":"743:12:54","nodeType":"YulVariableDeclaration","src":"743:12:54","value":{"kind":"number","nativeSrc":"753:2:54","nodeType":"YulLiteral","src":"753:2:54","type":"","value":"32"},"variables":[{"name":"_2","nativeSrc":"747:2:54","nodeType":"YulTypedName","src":"747:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"775:9:54","nodeType":"YulIdentifier","src":"775:9:54"},{"kind":"number","nativeSrc":"786:2:54","nodeType":"YulLiteral","src":"786:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"771:3:54","nodeType":"YulIdentifier","src":"771:3:54"},"nativeSrc":"771:18:54","nodeType":"YulFunctionCall","src":"771:18:54"},{"kind":"number","nativeSrc":"791:2:54","nodeType":"YulLiteral","src":"791:2:54","type":"","value":"96"}],"functionName":{"name":"mstore","nativeSrc":"764:6:54","nodeType":"YulIdentifier","src":"764:6:54"},"nativeSrc":"764:30:54","nodeType":"YulFunctionCall","src":"764:30:54"},"nativeSrc":"764:30:54","nodeType":"YulExpressionStatement","src":"764:30:54"},{"nativeSrc":"803:27:54","nodeType":"YulVariableDeclaration","src":"803:27:54","value":{"arguments":[{"name":"value1","nativeSrc":"823:6:54","nodeType":"YulIdentifier","src":"823:6:54"}],"functionName":{"name":"mload","nativeSrc":"817:5:54","nodeType":"YulIdentifier","src":"817:5:54"},"nativeSrc":"817:13:54","nodeType":"YulFunctionCall","src":"817:13:54"},"variables":[{"name":"length","nativeSrc":"807:6:54","nodeType":"YulTypedName","src":"807:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"850:9:54","nodeType":"YulIdentifier","src":"850:9:54"},{"kind":"number","nativeSrc":"861:2:54","nodeType":"YulLiteral","src":"861:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"846:3:54","nodeType":"YulIdentifier","src":"846:3:54"},"nativeSrc":"846:18:54","nodeType":"YulFunctionCall","src":"846:18:54"},{"name":"length","nativeSrc":"866:6:54","nodeType":"YulIdentifier","src":"866:6:54"}],"functionName":{"name":"mstore","nativeSrc":"839:6:54","nodeType":"YulIdentifier","src":"839:6:54"},"nativeSrc":"839:34:54","nodeType":"YulFunctionCall","src":"839:34:54"},"nativeSrc":"839:34:54","nodeType":"YulExpressionStatement","src":"839:34:54"},{"nativeSrc":"882:10:54","nodeType":"YulVariableDeclaration","src":"882:10:54","value":{"kind":"number","nativeSrc":"891:1:54","nodeType":"YulLiteral","src":"891:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"886:1:54","nodeType":"YulTypedName","src":"886:1:54","type":""}]},{"body":{"nativeSrc":"951:91:54","nodeType":"YulBlock","src":"951:91:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"980:9:54","nodeType":"YulIdentifier","src":"980:9:54"},{"name":"i","nativeSrc":"991:1:54","nodeType":"YulIdentifier","src":"991:1:54"}],"functionName":{"name":"add","nativeSrc":"976:3:54","nodeType":"YulIdentifier","src":"976:3:54"},"nativeSrc":"976:17:54","nodeType":"YulFunctionCall","src":"976:17:54"},{"kind":"number","nativeSrc":"995:3:54","nodeType":"YulLiteral","src":"995:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"972:3:54","nodeType":"YulIdentifier","src":"972:3:54"},"nativeSrc":"972:27:54","nodeType":"YulFunctionCall","src":"972:27:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"1015:6:54","nodeType":"YulIdentifier","src":"1015:6:54"},{"name":"i","nativeSrc":"1023:1:54","nodeType":"YulIdentifier","src":"1023:1:54"}],"functionName":{"name":"add","nativeSrc":"1011:3:54","nodeType":"YulIdentifier","src":"1011:3:54"},"nativeSrc":"1011:14:54","nodeType":"YulFunctionCall","src":"1011:14:54"},{"name":"_2","nativeSrc":"1027:2:54","nodeType":"YulIdentifier","src":"1027:2:54"}],"functionName":{"name":"add","nativeSrc":"1007:3:54","nodeType":"YulIdentifier","src":"1007:3:54"},"nativeSrc":"1007:23:54","nodeType":"YulFunctionCall","src":"1007:23:54"}],"functionName":{"name":"mload","nativeSrc":"1001:5:54","nodeType":"YulIdentifier","src":"1001:5:54"},"nativeSrc":"1001:30:54","nodeType":"YulFunctionCall","src":"1001:30:54"}],"functionName":{"name":"mstore","nativeSrc":"965:6:54","nodeType":"YulIdentifier","src":"965:6:54"},"nativeSrc":"965:67:54","nodeType":"YulFunctionCall","src":"965:67:54"},"nativeSrc":"965:67:54","nodeType":"YulExpressionStatement","src":"965:67:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"912:1:54","nodeType":"YulIdentifier","src":"912:1:54"},{"name":"length","nativeSrc":"915:6:54","nodeType":"YulIdentifier","src":"915:6:54"}],"functionName":{"name":"lt","nativeSrc":"909:2:54","nodeType":"YulIdentifier","src":"909:2:54"},"nativeSrc":"909:13:54","nodeType":"YulFunctionCall","src":"909:13:54"},"nativeSrc":"901:141:54","nodeType":"YulForLoop","post":{"nativeSrc":"923:19:54","nodeType":"YulBlock","src":"923:19:54","statements":[{"nativeSrc":"925:15:54","nodeType":"YulAssignment","src":"925:15:54","value":{"arguments":[{"name":"i","nativeSrc":"934:1:54","nodeType":"YulIdentifier","src":"934:1:54"},{"name":"_2","nativeSrc":"937:2:54","nodeType":"YulIdentifier","src":"937:2:54"}],"functionName":{"name":"add","nativeSrc":"930:3:54","nodeType":"YulIdentifier","src":"930:3:54"},"nativeSrc":"930:10:54","nodeType":"YulFunctionCall","src":"930:10:54"},"variableNames":[{"name":"i","nativeSrc":"925:1:54","nodeType":"YulIdentifier","src":"925:1:54"}]}]},"pre":{"nativeSrc":"905:3:54","nodeType":"YulBlock","src":"905:3:54","statements":[]},"src":"901:141:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1066:9:54","nodeType":"YulIdentifier","src":"1066:9:54"},{"name":"length","nativeSrc":"1077:6:54","nodeType":"YulIdentifier","src":"1077:6:54"}],"functionName":{"name":"add","nativeSrc":"1062:3:54","nodeType":"YulIdentifier","src":"1062:3:54"},"nativeSrc":"1062:22:54","nodeType":"YulFunctionCall","src":"1062:22:54"},{"kind":"number","nativeSrc":"1086:3:54","nodeType":"YulLiteral","src":"1086:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1058:3:54","nodeType":"YulIdentifier","src":"1058:3:54"},"nativeSrc":"1058:32:54","nodeType":"YulFunctionCall","src":"1058:32:54"},{"kind":"number","nativeSrc":"1092:1:54","nodeType":"YulLiteral","src":"1092:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1051:6:54","nodeType":"YulIdentifier","src":"1051:6:54"},"nativeSrc":"1051:43:54","nodeType":"YulFunctionCall","src":"1051:43:54"},"nativeSrc":"1051:43:54","nodeType":"YulExpressionStatement","src":"1051:43:54"},{"nativeSrc":"1103:122:54","nodeType":"YulAssignment","src":"1103:122:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1119:9:54","nodeType":"YulIdentifier","src":"1119:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1138:6:54","nodeType":"YulIdentifier","src":"1138:6:54"},{"kind":"number","nativeSrc":"1146:2:54","nodeType":"YulLiteral","src":"1146:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1134:3:54","nodeType":"YulIdentifier","src":"1134:3:54"},"nativeSrc":"1134:15:54","nodeType":"YulFunctionCall","src":"1134:15:54"},{"kind":"number","nativeSrc":"1151:66:54","nodeType":"YulLiteral","src":"1151:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1130:3:54","nodeType":"YulIdentifier","src":"1130:3:54"},"nativeSrc":"1130:88:54","nodeType":"YulFunctionCall","src":"1130:88:54"}],"functionName":{"name":"add","nativeSrc":"1115:3:54","nodeType":"YulIdentifier","src":"1115:3:54"},"nativeSrc":"1115:104:54","nodeType":"YulFunctionCall","src":"1115:104:54"},{"kind":"number","nativeSrc":"1221:3:54","nodeType":"YulLiteral","src":"1221:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1111:3:54","nodeType":"YulIdentifier","src":"1111:3:54"},"nativeSrc":"1111:114:54","nodeType":"YulFunctionCall","src":"1111:114:54"},"variableNames":[{"name":"tail","nativeSrc":"1103:4:54","nodeType":"YulIdentifier","src":"1103:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1245:9:54","nodeType":"YulIdentifier","src":"1245:9:54"},{"kind":"number","nativeSrc":"1256:2:54","nodeType":"YulLiteral","src":"1256:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1241:3:54","nodeType":"YulIdentifier","src":"1241:3:54"},"nativeSrc":"1241:18:54","nodeType":"YulFunctionCall","src":"1241:18:54"},{"arguments":[{"name":"value2","nativeSrc":"1265:6:54","nodeType":"YulIdentifier","src":"1265:6:54"},{"name":"_1","nativeSrc":"1273:2:54","nodeType":"YulIdentifier","src":"1273:2:54"}],"functionName":{"name":"and","nativeSrc":"1261:3:54","nodeType":"YulIdentifier","src":"1261:3:54"},"nativeSrc":"1261:15:54","nodeType":"YulFunctionCall","src":"1261:15:54"}],"functionName":{"name":"mstore","nativeSrc":"1234:6:54","nodeType":"YulIdentifier","src":"1234:6:54"},"nativeSrc":"1234:43:54","nodeType":"YulFunctionCall","src":"1234:43:54"},"nativeSrc":"1234:43:54","nodeType":"YulExpressionStatement","src":"1234:43:54"}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr_t_address__to_t_address_t_string_memory_ptr_t_address__fromStack_reversed","nativeSrc":"452:831:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"582:9:54","nodeType":"YulTypedName","src":"582:9:54","type":""},{"name":"value2","nativeSrc":"593:6:54","nodeType":"YulTypedName","src":"593:6:54","type":""},{"name":"value1","nativeSrc":"601:6:54","nodeType":"YulTypedName","src":"601:6:54","type":""},{"name":"value0","nativeSrc":"609:6:54","nodeType":"YulTypedName","src":"609:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"620:4:54","nodeType":"YulTypedName","src":"620:4:54","type":""}],"src":"452:831:54"},{"body":{"nativeSrc":"1320:152:54","nodeType":"YulBlock","src":"1320:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1337:1:54","nodeType":"YulLiteral","src":"1337:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1340:77:54","nodeType":"YulLiteral","src":"1340:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1330:6:54","nodeType":"YulIdentifier","src":"1330:6:54"},"nativeSrc":"1330:88:54","nodeType":"YulFunctionCall","src":"1330:88:54"},"nativeSrc":"1330:88:54","nodeType":"YulExpressionStatement","src":"1330:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1434:1:54","nodeType":"YulLiteral","src":"1434:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"1437:4:54","nodeType":"YulLiteral","src":"1437:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1427:6:54","nodeType":"YulIdentifier","src":"1427:6:54"},"nativeSrc":"1427:15:54","nodeType":"YulFunctionCall","src":"1427:15:54"},"nativeSrc":"1427:15:54","nodeType":"YulExpressionStatement","src":"1427:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1458:1:54","nodeType":"YulLiteral","src":"1458:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1461:4:54","nodeType":"YulLiteral","src":"1461:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1451:6:54","nodeType":"YulIdentifier","src":"1451:6:54"},"nativeSrc":"1451:15:54","nodeType":"YulFunctionCall","src":"1451:15:54"},"nativeSrc":"1451:15:54","nodeType":"YulExpressionStatement","src":"1451:15:54"}]},"name":"panic_error_0x41","nativeSrc":"1288:184:54","nodeType":"YulFunctionDefinition","src":"1288:184:54"},{"body":{"nativeSrc":"1523:207:54","nodeType":"YulBlock","src":"1523:207:54","statements":[{"nativeSrc":"1533:19:54","nodeType":"YulAssignment","src":"1533:19:54","value":{"arguments":[{"kind":"number","nativeSrc":"1549:2:54","nodeType":"YulLiteral","src":"1549:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1543:5:54","nodeType":"YulIdentifier","src":"1543:5:54"},"nativeSrc":"1543:9:54","nodeType":"YulFunctionCall","src":"1543:9:54"},"variableNames":[{"name":"memPtr","nativeSrc":"1533:6:54","nodeType":"YulIdentifier","src":"1533:6:54"}]},{"nativeSrc":"1561:35:54","nodeType":"YulVariableDeclaration","src":"1561:35:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"1583:6:54","nodeType":"YulIdentifier","src":"1583:6:54"},{"kind":"number","nativeSrc":"1591:4:54","nodeType":"YulLiteral","src":"1591:4:54","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"1579:3:54","nodeType":"YulIdentifier","src":"1579:3:54"},"nativeSrc":"1579:17:54","nodeType":"YulFunctionCall","src":"1579:17:54"},"variables":[{"name":"newFreePtr","nativeSrc":"1565:10:54","nodeType":"YulTypedName","src":"1565:10:54","type":""}]},{"body":{"nativeSrc":"1671:22:54","nodeType":"YulBlock","src":"1671:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1673:16:54","nodeType":"YulIdentifier","src":"1673:16:54"},"nativeSrc":"1673:18:54","nodeType":"YulFunctionCall","src":"1673:18:54"},"nativeSrc":"1673:18:54","nodeType":"YulExpressionStatement","src":"1673:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1614:10:54","nodeType":"YulIdentifier","src":"1614:10:54"},{"kind":"number","nativeSrc":"1626:18:54","nodeType":"YulLiteral","src":"1626:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1611:2:54","nodeType":"YulIdentifier","src":"1611:2:54"},"nativeSrc":"1611:34:54","nodeType":"YulFunctionCall","src":"1611:34:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1650:10:54","nodeType":"YulIdentifier","src":"1650:10:54"},{"name":"memPtr","nativeSrc":"1662:6:54","nodeType":"YulIdentifier","src":"1662:6:54"}],"functionName":{"name":"lt","nativeSrc":"1647:2:54","nodeType":"YulIdentifier","src":"1647:2:54"},"nativeSrc":"1647:22:54","nodeType":"YulFunctionCall","src":"1647:22:54"}],"functionName":{"name":"or","nativeSrc":"1608:2:54","nodeType":"YulIdentifier","src":"1608:2:54"},"nativeSrc":"1608:62:54","nodeType":"YulFunctionCall","src":"1608:62:54"},"nativeSrc":"1605:88:54","nodeType":"YulIf","src":"1605:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1709:2:54","nodeType":"YulLiteral","src":"1709:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1713:10:54","nodeType":"YulIdentifier","src":"1713:10:54"}],"functionName":{"name":"mstore","nativeSrc":"1702:6:54","nodeType":"YulIdentifier","src":"1702:6:54"},"nativeSrc":"1702:22:54","nodeType":"YulFunctionCall","src":"1702:22:54"},"nativeSrc":"1702:22:54","nodeType":"YulExpressionStatement","src":"1702:22:54"}]},"name":"allocate_memory_1501","nativeSrc":"1477:253:54","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1512:6:54","nodeType":"YulTypedName","src":"1512:6:54","type":""}],"src":"1477:253:54"},{"body":{"nativeSrc":"1780:289:54","nodeType":"YulBlock","src":"1780:289:54","statements":[{"nativeSrc":"1790:19:54","nodeType":"YulAssignment","src":"1790:19:54","value":{"arguments":[{"kind":"number","nativeSrc":"1806:2:54","nodeType":"YulLiteral","src":"1806:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1800:5:54","nodeType":"YulIdentifier","src":"1800:5:54"},"nativeSrc":"1800:9:54","nodeType":"YulFunctionCall","src":"1800:9:54"},"variableNames":[{"name":"memPtr","nativeSrc":"1790:6:54","nodeType":"YulIdentifier","src":"1790:6:54"}]},{"nativeSrc":"1818:117:54","nodeType":"YulVariableDeclaration","src":"1818:117:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"1840:6:54","nodeType":"YulIdentifier","src":"1840:6:54"},{"arguments":[{"arguments":[{"name":"size","nativeSrc":"1856:4:54","nodeType":"YulIdentifier","src":"1856:4:54"},{"kind":"number","nativeSrc":"1862:2:54","nodeType":"YulLiteral","src":"1862:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1852:3:54","nodeType":"YulIdentifier","src":"1852:3:54"},"nativeSrc":"1852:13:54","nodeType":"YulFunctionCall","src":"1852:13:54"},{"kind":"number","nativeSrc":"1867:66:54","nodeType":"YulLiteral","src":"1867:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1848:3:54","nodeType":"YulIdentifier","src":"1848:3:54"},"nativeSrc":"1848:86:54","nodeType":"YulFunctionCall","src":"1848:86:54"}],"functionName":{"name":"add","nativeSrc":"1836:3:54","nodeType":"YulIdentifier","src":"1836:3:54"},"nativeSrc":"1836:99:54","nodeType":"YulFunctionCall","src":"1836:99:54"},"variables":[{"name":"newFreePtr","nativeSrc":"1822:10:54","nodeType":"YulTypedName","src":"1822:10:54","type":""}]},{"body":{"nativeSrc":"2010:22:54","nodeType":"YulBlock","src":"2010:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2012:16:54","nodeType":"YulIdentifier","src":"2012:16:54"},"nativeSrc":"2012:18:54","nodeType":"YulFunctionCall","src":"2012:18:54"},"nativeSrc":"2012:18:54","nodeType":"YulExpressionStatement","src":"2012:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1953:10:54","nodeType":"YulIdentifier","src":"1953:10:54"},{"kind":"number","nativeSrc":"1965:18:54","nodeType":"YulLiteral","src":"1965:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1950:2:54","nodeType":"YulIdentifier","src":"1950:2:54"},"nativeSrc":"1950:34:54","nodeType":"YulFunctionCall","src":"1950:34:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1989:10:54","nodeType":"YulIdentifier","src":"1989:10:54"},{"name":"memPtr","nativeSrc":"2001:6:54","nodeType":"YulIdentifier","src":"2001:6:54"}],"functionName":{"name":"lt","nativeSrc":"1986:2:54","nodeType":"YulIdentifier","src":"1986:2:54"},"nativeSrc":"1986:22:54","nodeType":"YulFunctionCall","src":"1986:22:54"}],"functionName":{"name":"or","nativeSrc":"1947:2:54","nodeType":"YulIdentifier","src":"1947:2:54"},"nativeSrc":"1947:62:54","nodeType":"YulFunctionCall","src":"1947:62:54"},"nativeSrc":"1944:88:54","nodeType":"YulIf","src":"1944:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2048:2:54","nodeType":"YulLiteral","src":"2048:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2052:10:54","nodeType":"YulIdentifier","src":"2052:10:54"}],"functionName":{"name":"mstore","nativeSrc":"2041:6:54","nodeType":"YulIdentifier","src":"2041:6:54"},"nativeSrc":"2041:22:54","nodeType":"YulFunctionCall","src":"2041:22:54"},"nativeSrc":"2041:22:54","nodeType":"YulExpressionStatement","src":"2041:22:54"}]},"name":"allocate_memory","nativeSrc":"1735:334:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1760:4:54","nodeType":"YulTypedName","src":"1760:4:54","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1769:6:54","nodeType":"YulTypedName","src":"1769:6:54","type":""}],"src":"1735:334:54"},{"body":{"nativeSrc":"2123:147:54","nodeType":"YulBlock","src":"2123:147:54","statements":[{"nativeSrc":"2133:29:54","nodeType":"YulAssignment","src":"2133:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"2155:6:54","nodeType":"YulIdentifier","src":"2155:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"2142:12:54","nodeType":"YulIdentifier","src":"2142:12:54"},"nativeSrc":"2142:20:54","nodeType":"YulFunctionCall","src":"2142:20:54"},"variableNames":[{"name":"value","nativeSrc":"2133:5:54","nodeType":"YulIdentifier","src":"2133:5:54"}]},{"body":{"nativeSrc":"2248:16:54","nodeType":"YulBlock","src":"2248:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2257:1:54","nodeType":"YulLiteral","src":"2257:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2260:1:54","nodeType":"YulLiteral","src":"2260:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2250:6:54","nodeType":"YulIdentifier","src":"2250:6:54"},"nativeSrc":"2250:12:54","nodeType":"YulFunctionCall","src":"2250:12:54"},"nativeSrc":"2250:12:54","nodeType":"YulExpressionStatement","src":"2250:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2184:5:54","nodeType":"YulIdentifier","src":"2184:5:54"},{"arguments":[{"name":"value","nativeSrc":"2195:5:54","nodeType":"YulIdentifier","src":"2195:5:54"},{"kind":"number","nativeSrc":"2202:42:54","nodeType":"YulLiteral","src":"2202:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2191:3:54","nodeType":"YulIdentifier","src":"2191:3:54"},"nativeSrc":"2191:54:54","nodeType":"YulFunctionCall","src":"2191:54:54"}],"functionName":{"name":"eq","nativeSrc":"2181:2:54","nodeType":"YulIdentifier","src":"2181:2:54"},"nativeSrc":"2181:65:54","nodeType":"YulFunctionCall","src":"2181:65:54"}],"functionName":{"name":"iszero","nativeSrc":"2174:6:54","nodeType":"YulIdentifier","src":"2174:6:54"},"nativeSrc":"2174:73:54","nodeType":"YulFunctionCall","src":"2174:73:54"},"nativeSrc":"2171:93:54","nodeType":"YulIf","src":"2171:93:54"}]},"name":"abi_decode_address","nativeSrc":"2074:196:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2102:6:54","nodeType":"YulTypedName","src":"2102:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2113:5:54","nodeType":"YulTypedName","src":"2113:5:54","type":""}],"src":"2074:196:54"},{"body":{"nativeSrc":"2398:2267:54","nodeType":"YulBlock","src":"2398:2267:54","statements":[{"nativeSrc":"2408:12:54","nodeType":"YulVariableDeclaration","src":"2408:12:54","value":{"kind":"number","nativeSrc":"2418:2:54","nodeType":"YulLiteral","src":"2418:2:54","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"2412:2:54","nodeType":"YulTypedName","src":"2412:2:54","type":""}]},{"body":{"nativeSrc":"2465:16:54","nodeType":"YulBlock","src":"2465:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2474:1:54","nodeType":"YulLiteral","src":"2474:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2477:1:54","nodeType":"YulLiteral","src":"2477:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2467:6:54","nodeType":"YulIdentifier","src":"2467:6:54"},"nativeSrc":"2467:12:54","nodeType":"YulFunctionCall","src":"2467:12:54"},"nativeSrc":"2467:12:54","nodeType":"YulExpressionStatement","src":"2467:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2440:7:54","nodeType":"YulIdentifier","src":"2440:7:54"},{"name":"headStart","nativeSrc":"2449:9:54","nodeType":"YulIdentifier","src":"2449:9:54"}],"functionName":{"name":"sub","nativeSrc":"2436:3:54","nodeType":"YulIdentifier","src":"2436:3:54"},"nativeSrc":"2436:23:54","nodeType":"YulFunctionCall","src":"2436:23:54"},{"name":"_1","nativeSrc":"2461:2:54","nodeType":"YulIdentifier","src":"2461:2:54"}],"functionName":{"name":"slt","nativeSrc":"2432:3:54","nodeType":"YulIdentifier","src":"2432:3:54"},"nativeSrc":"2432:32:54","nodeType":"YulFunctionCall","src":"2432:32:54"},"nativeSrc":"2429:52:54","nodeType":"YulIf","src":"2429:52:54"},{"nativeSrc":"2490:37:54","nodeType":"YulVariableDeclaration","src":"2490:37:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2517:9:54","nodeType":"YulIdentifier","src":"2517:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"2504:12:54","nodeType":"YulIdentifier","src":"2504:12:54"},"nativeSrc":"2504:23:54","nodeType":"YulFunctionCall","src":"2504:23:54"},"variables":[{"name":"offset","nativeSrc":"2494:6:54","nodeType":"YulTypedName","src":"2494:6:54","type":""}]},{"nativeSrc":"2536:28:54","nodeType":"YulVariableDeclaration","src":"2536:28:54","value":{"kind":"number","nativeSrc":"2546:18:54","nodeType":"YulLiteral","src":"2546:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nativeSrc":"2540:2:54","nodeType":"YulTypedName","src":"2540:2:54","type":""}]},{"body":{"nativeSrc":"2591:16:54","nodeType":"YulBlock","src":"2591:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2600:1:54","nodeType":"YulLiteral","src":"2600:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2603:1:54","nodeType":"YulLiteral","src":"2603:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2593:6:54","nodeType":"YulIdentifier","src":"2593:6:54"},"nativeSrc":"2593:12:54","nodeType":"YulFunctionCall","src":"2593:12:54"},"nativeSrc":"2593:12:54","nodeType":"YulExpressionStatement","src":"2593:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2579:6:54","nodeType":"YulIdentifier","src":"2579:6:54"},{"name":"_2","nativeSrc":"2587:2:54","nodeType":"YulIdentifier","src":"2587:2:54"}],"functionName":{"name":"gt","nativeSrc":"2576:2:54","nodeType":"YulIdentifier","src":"2576:2:54"},"nativeSrc":"2576:14:54","nodeType":"YulFunctionCall","src":"2576:14:54"},"nativeSrc":"2573:34:54","nodeType":"YulIf","src":"2573:34:54"},{"nativeSrc":"2616:32:54","nodeType":"YulVariableDeclaration","src":"2616:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2630:9:54","nodeType":"YulIdentifier","src":"2630:9:54"},{"name":"offset","nativeSrc":"2641:6:54","nodeType":"YulIdentifier","src":"2641:6:54"}],"functionName":{"name":"add","nativeSrc":"2626:3:54","nodeType":"YulIdentifier","src":"2626:3:54"},"nativeSrc":"2626:22:54","nodeType":"YulFunctionCall","src":"2626:22:54"},"variables":[{"name":"_3","nativeSrc":"2620:2:54","nodeType":"YulTypedName","src":"2620:2:54","type":""}]},{"body":{"nativeSrc":"2696:16:54","nodeType":"YulBlock","src":"2696:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2705:1:54","nodeType":"YulLiteral","src":"2705:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2708:1:54","nodeType":"YulLiteral","src":"2708:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2698:6:54","nodeType":"YulIdentifier","src":"2698:6:54"},"nativeSrc":"2698:12:54","nodeType":"YulFunctionCall","src":"2698:12:54"},"nativeSrc":"2698:12:54","nodeType":"YulExpressionStatement","src":"2698:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"2675:2:54","nodeType":"YulIdentifier","src":"2675:2:54"},{"kind":"number","nativeSrc":"2679:4:54","nodeType":"YulLiteral","src":"2679:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2671:3:54","nodeType":"YulIdentifier","src":"2671:3:54"},"nativeSrc":"2671:13:54","nodeType":"YulFunctionCall","src":"2671:13:54"},{"name":"dataEnd","nativeSrc":"2686:7:54","nodeType":"YulIdentifier","src":"2686:7:54"}],"functionName":{"name":"slt","nativeSrc":"2667:3:54","nodeType":"YulIdentifier","src":"2667:3:54"},"nativeSrc":"2667:27:54","nodeType":"YulFunctionCall","src":"2667:27:54"}],"functionName":{"name":"iszero","nativeSrc":"2660:6:54","nodeType":"YulIdentifier","src":"2660:6:54"},"nativeSrc":"2660:35:54","nodeType":"YulFunctionCall","src":"2660:35:54"},"nativeSrc":"2657:55:54","nodeType":"YulIf","src":"2657:55:54"},{"nativeSrc":"2721:26:54","nodeType":"YulVariableDeclaration","src":"2721:26:54","value":{"arguments":[{"name":"_3","nativeSrc":"2744:2:54","nodeType":"YulIdentifier","src":"2744:2:54"}],"functionName":{"name":"calldataload","nativeSrc":"2731:12:54","nodeType":"YulIdentifier","src":"2731:12:54"},"nativeSrc":"2731:16:54","nodeType":"YulFunctionCall","src":"2731:16:54"},"variables":[{"name":"_4","nativeSrc":"2725:2:54","nodeType":"YulTypedName","src":"2725:2:54","type":""}]},{"body":{"nativeSrc":"2770:22:54","nodeType":"YulBlock","src":"2770:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2772:16:54","nodeType":"YulIdentifier","src":"2772:16:54"},"nativeSrc":"2772:18:54","nodeType":"YulFunctionCall","src":"2772:18:54"},"nativeSrc":"2772:18:54","nodeType":"YulExpressionStatement","src":"2772:18:54"}]},"condition":{"arguments":[{"name":"_4","nativeSrc":"2762:2:54","nodeType":"YulIdentifier","src":"2762:2:54"},{"name":"_2","nativeSrc":"2766:2:54","nodeType":"YulIdentifier","src":"2766:2:54"}],"functionName":{"name":"gt","nativeSrc":"2759:2:54","nodeType":"YulIdentifier","src":"2759:2:54"},"nativeSrc":"2759:10:54","nodeType":"YulFunctionCall","src":"2759:10:54"},"nativeSrc":"2756:36:54","nodeType":"YulIf","src":"2756:36:54"},{"nativeSrc":"2801:20:54","nodeType":"YulVariableDeclaration","src":"2801:20:54","value":{"arguments":[{"kind":"number","nativeSrc":"2815:1:54","nodeType":"YulLiteral","src":"2815:1:54","type":"","value":"5"},{"name":"_4","nativeSrc":"2818:2:54","nodeType":"YulIdentifier","src":"2818:2:54"}],"functionName":{"name":"shl","nativeSrc":"2811:3:54","nodeType":"YulIdentifier","src":"2811:3:54"},"nativeSrc":"2811:10:54","nodeType":"YulFunctionCall","src":"2811:10:54"},"variables":[{"name":"_5","nativeSrc":"2805:2:54","nodeType":"YulTypedName","src":"2805:2:54","type":""}]},{"nativeSrc":"2830:39:54","nodeType":"YulVariableDeclaration","src":"2830:39:54","value":{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"2861:2:54","nodeType":"YulIdentifier","src":"2861:2:54"},{"name":"_1","nativeSrc":"2865:2:54","nodeType":"YulIdentifier","src":"2865:2:54"}],"functionName":{"name":"add","nativeSrc":"2857:3:54","nodeType":"YulIdentifier","src":"2857:3:54"},"nativeSrc":"2857:11:54","nodeType":"YulFunctionCall","src":"2857:11:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"2841:15:54","nodeType":"YulIdentifier","src":"2841:15:54"},"nativeSrc":"2841:28:54","nodeType":"YulFunctionCall","src":"2841:28:54"},"variables":[{"name":"dst","nativeSrc":"2834:3:54","nodeType":"YulTypedName","src":"2834:3:54","type":""}]},{"nativeSrc":"2878:16:54","nodeType":"YulVariableDeclaration","src":"2878:16:54","value":{"name":"dst","nativeSrc":"2891:3:54","nodeType":"YulIdentifier","src":"2891:3:54"},"variables":[{"name":"dst_1","nativeSrc":"2882:5:54","nodeType":"YulTypedName","src":"2882:5:54","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"2910:3:54","nodeType":"YulIdentifier","src":"2910:3:54"},{"name":"_4","nativeSrc":"2915:2:54","nodeType":"YulIdentifier","src":"2915:2:54"}],"functionName":{"name":"mstore","nativeSrc":"2903:6:54","nodeType":"YulIdentifier","src":"2903:6:54"},"nativeSrc":"2903:15:54","nodeType":"YulFunctionCall","src":"2903:15:54"},"nativeSrc":"2903:15:54","nodeType":"YulExpressionStatement","src":"2903:15:54"},{"nativeSrc":"2927:19:54","nodeType":"YulAssignment","src":"2927:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"2938:3:54","nodeType":"YulIdentifier","src":"2938:3:54"},{"name":"_1","nativeSrc":"2943:2:54","nodeType":"YulIdentifier","src":"2943:2:54"}],"functionName":{"name":"add","nativeSrc":"2934:3:54","nodeType":"YulIdentifier","src":"2934:3:54"},"nativeSrc":"2934:12:54","nodeType":"YulFunctionCall","src":"2934:12:54"},"variableNames":[{"name":"dst","nativeSrc":"2927:3:54","nodeType":"YulIdentifier","src":"2927:3:54"}]},{"nativeSrc":"2955:34:54","nodeType":"YulVariableDeclaration","src":"2955:34:54","value":{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"2977:2:54","nodeType":"YulIdentifier","src":"2977:2:54"},{"name":"_5","nativeSrc":"2981:2:54","nodeType":"YulIdentifier","src":"2981:2:54"}],"functionName":{"name":"add","nativeSrc":"2973:3:54","nodeType":"YulIdentifier","src":"2973:3:54"},"nativeSrc":"2973:11:54","nodeType":"YulFunctionCall","src":"2973:11:54"},{"name":"_1","nativeSrc":"2986:2:54","nodeType":"YulIdentifier","src":"2986:2:54"}],"functionName":{"name":"add","nativeSrc":"2969:3:54","nodeType":"YulIdentifier","src":"2969:3:54"},"nativeSrc":"2969:20:54","nodeType":"YulFunctionCall","src":"2969:20:54"},"variables":[{"name":"srcEnd","nativeSrc":"2959:6:54","nodeType":"YulTypedName","src":"2959:6:54","type":""}]},{"body":{"nativeSrc":"3021:16:54","nodeType":"YulBlock","src":"3021:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3030:1:54","nodeType":"YulLiteral","src":"3030:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3033:1:54","nodeType":"YulLiteral","src":"3033:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3023:6:54","nodeType":"YulIdentifier","src":"3023:6:54"},"nativeSrc":"3023:12:54","nodeType":"YulFunctionCall","src":"3023:12:54"},"nativeSrc":"3023:12:54","nodeType":"YulExpressionStatement","src":"3023:12:54"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"3004:6:54","nodeType":"YulIdentifier","src":"3004:6:54"},{"name":"dataEnd","nativeSrc":"3012:7:54","nodeType":"YulIdentifier","src":"3012:7:54"}],"functionName":{"name":"gt","nativeSrc":"3001:2:54","nodeType":"YulIdentifier","src":"3001:2:54"},"nativeSrc":"3001:19:54","nodeType":"YulFunctionCall","src":"3001:19:54"},"nativeSrc":"2998:39:54","nodeType":"YulIf","src":"2998:39:54"},{"nativeSrc":"3046:22:54","nodeType":"YulVariableDeclaration","src":"3046:22:54","value":{"arguments":[{"name":"_3","nativeSrc":"3061:2:54","nodeType":"YulIdentifier","src":"3061:2:54"},{"name":"_1","nativeSrc":"3065:2:54","nodeType":"YulIdentifier","src":"3065:2:54"}],"functionName":{"name":"add","nativeSrc":"3057:3:54","nodeType":"YulIdentifier","src":"3057:3:54"},"nativeSrc":"3057:11:54","nodeType":"YulFunctionCall","src":"3057:11:54"},"variables":[{"name":"src","nativeSrc":"3050:3:54","nodeType":"YulTypedName","src":"3050:3:54","type":""}]},{"body":{"nativeSrc":"3133:1502:54","nodeType":"YulBlock","src":"3133:1502:54","statements":[{"nativeSrc":"3147:36:54","nodeType":"YulVariableDeclaration","src":"3147:36:54","value":{"arguments":[{"name":"src","nativeSrc":"3179:3:54","nodeType":"YulIdentifier","src":"3179:3:54"}],"functionName":{"name":"calldataload","nativeSrc":"3166:12:54","nodeType":"YulIdentifier","src":"3166:12:54"},"nativeSrc":"3166:17:54","nodeType":"YulFunctionCall","src":"3166:17:54"},"variables":[{"name":"innerOffset","nativeSrc":"3151:11:54","nodeType":"YulTypedName","src":"3151:11:54","type":""}]},{"body":{"nativeSrc":"3219:16:54","nodeType":"YulBlock","src":"3219:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3228:1:54","nodeType":"YulLiteral","src":"3228:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3231:1:54","nodeType":"YulLiteral","src":"3231:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3221:6:54","nodeType":"YulIdentifier","src":"3221:6:54"},"nativeSrc":"3221:12:54","nodeType":"YulFunctionCall","src":"3221:12:54"},"nativeSrc":"3221:12:54","nodeType":"YulExpressionStatement","src":"3221:12:54"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"3202:11:54","nodeType":"YulIdentifier","src":"3202:11:54"},{"name":"_2","nativeSrc":"3215:2:54","nodeType":"YulIdentifier","src":"3215:2:54"}],"functionName":{"name":"gt","nativeSrc":"3199:2:54","nodeType":"YulIdentifier","src":"3199:2:54"},"nativeSrc":"3199:19:54","nodeType":"YulFunctionCall","src":"3199:19:54"},"nativeSrc":"3196:39:54","nodeType":"YulIf","src":"3196:39:54"},{"nativeSrc":"3248:30:54","nodeType":"YulVariableDeclaration","src":"3248:30:54","value":{"arguments":[{"name":"_3","nativeSrc":"3262:2:54","nodeType":"YulIdentifier","src":"3262:2:54"},{"name":"innerOffset","nativeSrc":"3266:11:54","nodeType":"YulIdentifier","src":"3266:11:54"}],"functionName":{"name":"add","nativeSrc":"3258:3:54","nodeType":"YulIdentifier","src":"3258:3:54"},"nativeSrc":"3258:20:54","nodeType":"YulFunctionCall","src":"3258:20:54"},"variables":[{"name":"_6","nativeSrc":"3252:2:54","nodeType":"YulTypedName","src":"3252:2:54","type":""}]},{"nativeSrc":"3291:76:54","nodeType":"YulVariableDeclaration","src":"3291:76:54","value":{"kind":"number","nativeSrc":"3301:66:54","nodeType":"YulLiteral","src":"3301:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_7","nativeSrc":"3295:2:54","nodeType":"YulTypedName","src":"3295:2:54","type":""}]},{"body":{"nativeSrc":"3432:74:54","nodeType":"YulBlock","src":"3432:74:54","statements":[{"nativeSrc":"3450:11:54","nodeType":"YulVariableDeclaration","src":"3450:11:54","value":{"kind":"number","nativeSrc":"3460:1:54","nodeType":"YulLiteral","src":"3460:1:54","type":"","value":"0"},"variables":[{"name":"_8","nativeSrc":"3454:2:54","nodeType":"YulTypedName","src":"3454:2:54","type":""}]},{"expression":{"arguments":[{"name":"_8","nativeSrc":"3485:2:54","nodeType":"YulIdentifier","src":"3485:2:54"},{"name":"_8","nativeSrc":"3489:2:54","nodeType":"YulIdentifier","src":"3489:2:54"}],"functionName":{"name":"revert","nativeSrc":"3478:6:54","nodeType":"YulIdentifier","src":"3478:6:54"},"nativeSrc":"3478:14:54","nodeType":"YulFunctionCall","src":"3478:14:54"},"nativeSrc":"3478:14:54","nodeType":"YulExpressionStatement","src":"3478:14:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3395:7:54","nodeType":"YulIdentifier","src":"3395:7:54"},{"name":"_6","nativeSrc":"3404:2:54","nodeType":"YulIdentifier","src":"3404:2:54"}],"functionName":{"name":"sub","nativeSrc":"3391:3:54","nodeType":"YulIdentifier","src":"3391:3:54"},"nativeSrc":"3391:16:54","nodeType":"YulFunctionCall","src":"3391:16:54"},{"name":"_7","nativeSrc":"3409:2:54","nodeType":"YulIdentifier","src":"3409:2:54"}],"functionName":{"name":"add","nativeSrc":"3387:3:54","nodeType":"YulIdentifier","src":"3387:3:54"},"nativeSrc":"3387:25:54","nodeType":"YulFunctionCall","src":"3387:25:54"},{"kind":"number","nativeSrc":"3414:4:54","nodeType":"YulLiteral","src":"3414:4:54","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"3383:3:54","nodeType":"YulIdentifier","src":"3383:3:54"},"nativeSrc":"3383:36:54","nodeType":"YulFunctionCall","src":"3383:36:54"},"nativeSrc":"3380:126:54","nodeType":"YulIf","src":"3380:126:54"},{"nativeSrc":"3519:35:54","nodeType":"YulVariableDeclaration","src":"3519:35:54","value":{"arguments":[],"functionName":{"name":"allocate_memory_1501","nativeSrc":"3532:20:54","nodeType":"YulIdentifier","src":"3532:20:54"},"nativeSrc":"3532:22:54","nodeType":"YulFunctionCall","src":"3532:22:54"},"variables":[{"name":"value","nativeSrc":"3523:5:54","nodeType":"YulTypedName","src":"3523:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3574:5:54","nodeType":"YulIdentifier","src":"3574:5:54"},{"arguments":[{"arguments":[{"name":"_6","nativeSrc":"3604:2:54","nodeType":"YulIdentifier","src":"3604:2:54"},{"name":"_1","nativeSrc":"3608:2:54","nodeType":"YulIdentifier","src":"3608:2:54"}],"functionName":{"name":"add","nativeSrc":"3600:3:54","nodeType":"YulIdentifier","src":"3600:3:54"},"nativeSrc":"3600:11:54","nodeType":"YulFunctionCall","src":"3600:11:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3581:18:54","nodeType":"YulIdentifier","src":"3581:18:54"},"nativeSrc":"3581:31:54","nodeType":"YulFunctionCall","src":"3581:31:54"}],"functionName":{"name":"mstore","nativeSrc":"3567:6:54","nodeType":"YulIdentifier","src":"3567:6:54"},"nativeSrc":"3567:46:54","nodeType":"YulFunctionCall","src":"3567:46:54"},"nativeSrc":"3567:46:54","nodeType":"YulExpressionStatement","src":"3567:46:54"},{"nativeSrc":"3626:12:54","nodeType":"YulVariableDeclaration","src":"3626:12:54","value":{"kind":"number","nativeSrc":"3636:2:54","nodeType":"YulLiteral","src":"3636:2:54","type":"","value":"64"},"variables":[{"name":"_9","nativeSrc":"3630:2:54","nodeType":"YulTypedName","src":"3630:2:54","type":""}]},{"nativeSrc":"3651:41:54","nodeType":"YulVariableDeclaration","src":"3651:41:54","value":{"arguments":[{"arguments":[{"name":"_6","nativeSrc":"3684:2:54","nodeType":"YulIdentifier","src":"3684:2:54"},{"name":"_9","nativeSrc":"3688:2:54","nodeType":"YulIdentifier","src":"3688:2:54"}],"functionName":{"name":"add","nativeSrc":"3680:3:54","nodeType":"YulIdentifier","src":"3680:3:54"},"nativeSrc":"3680:11:54","nodeType":"YulFunctionCall","src":"3680:11:54"}],"functionName":{"name":"calldataload","nativeSrc":"3667:12:54","nodeType":"YulIdentifier","src":"3667:12:54"},"nativeSrc":"3667:25:54","nodeType":"YulFunctionCall","src":"3667:25:54"},"variables":[{"name":"offset_1","nativeSrc":"3655:8:54","nodeType":"YulTypedName","src":"3655:8:54","type":""}]},{"body":{"nativeSrc":"3737:77:54","nodeType":"YulBlock","src":"3737:77:54","statements":[{"nativeSrc":"3755:12:54","nodeType":"YulVariableDeclaration","src":"3755:12:54","value":{"kind":"number","nativeSrc":"3766:1:54","nodeType":"YulLiteral","src":"3766:1:54","type":"","value":"0"},"variables":[{"name":"_10","nativeSrc":"3759:3:54","nodeType":"YulTypedName","src":"3759:3:54","type":""}]},{"expression":{"arguments":[{"name":"_10","nativeSrc":"3791:3:54","nodeType":"YulIdentifier","src":"3791:3:54"},{"name":"_10","nativeSrc":"3796:3:54","nodeType":"YulIdentifier","src":"3796:3:54"}],"functionName":{"name":"revert","nativeSrc":"3784:6:54","nodeType":"YulIdentifier","src":"3784:6:54"},"nativeSrc":"3784:16:54","nodeType":"YulFunctionCall","src":"3784:16:54"},"nativeSrc":"3784:16:54","nodeType":"YulExpressionStatement","src":"3784:16:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"3711:8:54","nodeType":"YulIdentifier","src":"3711:8:54"},{"name":"_2","nativeSrc":"3721:2:54","nodeType":"YulIdentifier","src":"3721:2:54"}],"functionName":{"name":"gt","nativeSrc":"3708:2:54","nodeType":"YulIdentifier","src":"3708:2:54"},"nativeSrc":"3708:16:54","nodeType":"YulFunctionCall","src":"3708:16:54"},"nativeSrc":"3705:109:54","nodeType":"YulIf","src":"3705:109:54"},{"nativeSrc":"3827:28:54","nodeType":"YulVariableDeclaration","src":"3827:28:54","value":{"arguments":[{"name":"_6","nativeSrc":"3842:2:54","nodeType":"YulIdentifier","src":"3842:2:54"},{"name":"offset_1","nativeSrc":"3846:8:54","nodeType":"YulIdentifier","src":"3846:8:54"}],"functionName":{"name":"add","nativeSrc":"3838:3:54","nodeType":"YulIdentifier","src":"3838:3:54"},"nativeSrc":"3838:17:54","nodeType":"YulFunctionCall","src":"3838:17:54"},"variables":[{"name":"_11","nativeSrc":"3831:3:54","nodeType":"YulTypedName","src":"3831:3:54","type":""}]},{"body":{"nativeSrc":"3918:77:54","nodeType":"YulBlock","src":"3918:77:54","statements":[{"nativeSrc":"3936:12:54","nodeType":"YulVariableDeclaration","src":"3936:12:54","value":{"kind":"number","nativeSrc":"3947:1:54","nodeType":"YulLiteral","src":"3947:1:54","type":"","value":"0"},"variables":[{"name":"_12","nativeSrc":"3940:3:54","nodeType":"YulTypedName","src":"3940:3:54","type":""}]},{"expression":{"arguments":[{"name":"_12","nativeSrc":"3972:3:54","nodeType":"YulIdentifier","src":"3972:3:54"},{"name":"_12","nativeSrc":"3977:3:54","nodeType":"YulIdentifier","src":"3977:3:54"}],"functionName":{"name":"revert","nativeSrc":"3965:6:54","nodeType":"YulIdentifier","src":"3965:6:54"},"nativeSrc":"3965:16:54","nodeType":"YulFunctionCall","src":"3965:16:54"},"nativeSrc":"3965:16:54","nodeType":"YulExpressionStatement","src":"3965:16:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_11","nativeSrc":"3886:3:54","nodeType":"YulIdentifier","src":"3886:3:54"},{"kind":"number","nativeSrc":"3891:2:54","nodeType":"YulLiteral","src":"3891:2:54","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"3882:3:54","nodeType":"YulIdentifier","src":"3882:3:54"},"nativeSrc":"3882:12:54","nodeType":"YulFunctionCall","src":"3882:12:54"},{"name":"dataEnd","nativeSrc":"3896:7:54","nodeType":"YulIdentifier","src":"3896:7:54"}],"functionName":{"name":"slt","nativeSrc":"3878:3:54","nodeType":"YulIdentifier","src":"3878:3:54"},"nativeSrc":"3878:26:54","nodeType":"YulFunctionCall","src":"3878:26:54"}],"functionName":{"name":"iszero","nativeSrc":"3871:6:54","nodeType":"YulIdentifier","src":"3871:6:54"},"nativeSrc":"3871:34:54","nodeType":"YulFunctionCall","src":"3871:34:54"},"nativeSrc":"3868:127:54","nodeType":"YulIf","src":"3868:127:54"},{"nativeSrc":"4008:37:54","nodeType":"YulVariableDeclaration","src":"4008:37:54","value":{"arguments":[{"arguments":[{"name":"_11","nativeSrc":"4036:3:54","nodeType":"YulIdentifier","src":"4036:3:54"},{"name":"_1","nativeSrc":"4041:2:54","nodeType":"YulIdentifier","src":"4041:2:54"}],"functionName":{"name":"add","nativeSrc":"4032:3:54","nodeType":"YulIdentifier","src":"4032:3:54"},"nativeSrc":"4032:12:54","nodeType":"YulFunctionCall","src":"4032:12:54"}],"functionName":{"name":"calldataload","nativeSrc":"4019:12:54","nodeType":"YulIdentifier","src":"4019:12:54"},"nativeSrc":"4019:26:54","nodeType":"YulFunctionCall","src":"4019:26:54"},"variables":[{"name":"_13","nativeSrc":"4012:3:54","nodeType":"YulTypedName","src":"4012:3:54","type":""}]},{"body":{"nativeSrc":"4073:22:54","nodeType":"YulBlock","src":"4073:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4075:16:54","nodeType":"YulIdentifier","src":"4075:16:54"},"nativeSrc":"4075:18:54","nodeType":"YulFunctionCall","src":"4075:18:54"},"nativeSrc":"4075:18:54","nodeType":"YulExpressionStatement","src":"4075:18:54"}]},"condition":{"arguments":[{"name":"_13","nativeSrc":"4064:3:54","nodeType":"YulIdentifier","src":"4064:3:54"},{"name":"_2","nativeSrc":"4069:2:54","nodeType":"YulIdentifier","src":"4069:2:54"}],"functionName":{"name":"gt","nativeSrc":"4061:2:54","nodeType":"YulIdentifier","src":"4061:2:54"},"nativeSrc":"4061:11:54","nodeType":"YulFunctionCall","src":"4061:11:54"},"nativeSrc":"4058:37:54","nodeType":"YulIf","src":"4058:37:54"},{"nativeSrc":"4108:62:54","nodeType":"YulVariableDeclaration","src":"4108:62:54","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_13","nativeSrc":"4149:3:54","nodeType":"YulIdentifier","src":"4149:3:54"},{"kind":"number","nativeSrc":"4154:4:54","nodeType":"YulLiteral","src":"4154:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4145:3:54","nodeType":"YulIdentifier","src":"4145:3:54"},"nativeSrc":"4145:14:54","nodeType":"YulFunctionCall","src":"4145:14:54"},{"name":"_7","nativeSrc":"4161:2:54","nodeType":"YulIdentifier","src":"4161:2:54"}],"functionName":{"name":"and","nativeSrc":"4141:3:54","nodeType":"YulIdentifier","src":"4141:3:54"},"nativeSrc":"4141:23:54","nodeType":"YulFunctionCall","src":"4141:23:54"},{"name":"_1","nativeSrc":"4166:2:54","nodeType":"YulIdentifier","src":"4166:2:54"}],"functionName":{"name":"add","nativeSrc":"4137:3:54","nodeType":"YulIdentifier","src":"4137:3:54"},"nativeSrc":"4137:32:54","nodeType":"YulFunctionCall","src":"4137:32:54"}],"functionName":{"name":"allocate_memory","nativeSrc":"4121:15:54","nodeType":"YulIdentifier","src":"4121:15:54"},"nativeSrc":"4121:49:54","nodeType":"YulFunctionCall","src":"4121:49:54"},"variables":[{"name":"array","nativeSrc":"4112:5:54","nodeType":"YulTypedName","src":"4112:5:54","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"4190:5:54","nodeType":"YulIdentifier","src":"4190:5:54"},{"name":"_13","nativeSrc":"4197:3:54","nodeType":"YulIdentifier","src":"4197:3:54"}],"functionName":{"name":"mstore","nativeSrc":"4183:6:54","nodeType":"YulIdentifier","src":"4183:6:54"},"nativeSrc":"4183:18:54","nodeType":"YulFunctionCall","src":"4183:18:54"},"nativeSrc":"4183:18:54","nodeType":"YulExpressionStatement","src":"4183:18:54"},{"body":{"nativeSrc":"4265:77:54","nodeType":"YulBlock","src":"4265:77:54","statements":[{"nativeSrc":"4283:12:54","nodeType":"YulVariableDeclaration","src":"4283:12:54","value":{"kind":"number","nativeSrc":"4294:1:54","nodeType":"YulLiteral","src":"4294:1:54","type":"","value":"0"},"variables":[{"name":"_14","nativeSrc":"4287:3:54","nodeType":"YulTypedName","src":"4287:3:54","type":""}]},{"expression":{"arguments":[{"name":"_14","nativeSrc":"4319:3:54","nodeType":"YulIdentifier","src":"4319:3:54"},{"name":"_14","nativeSrc":"4324:3:54","nodeType":"YulIdentifier","src":"4324:3:54"}],"functionName":{"name":"revert","nativeSrc":"4312:6:54","nodeType":"YulIdentifier","src":"4312:6:54"},"nativeSrc":"4312:16:54","nodeType":"YulFunctionCall","src":"4312:16:54"},"nativeSrc":"4312:16:54","nodeType":"YulExpressionStatement","src":"4312:16:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_11","nativeSrc":"4228:3:54","nodeType":"YulIdentifier","src":"4228:3:54"},{"name":"_13","nativeSrc":"4233:3:54","nodeType":"YulIdentifier","src":"4233:3:54"}],"functionName":{"name":"add","nativeSrc":"4224:3:54","nodeType":"YulIdentifier","src":"4224:3:54"},"nativeSrc":"4224:13:54","nodeType":"YulFunctionCall","src":"4224:13:54"},{"name":"_9","nativeSrc":"4239:2:54","nodeType":"YulIdentifier","src":"4239:2:54"}],"functionName":{"name":"add","nativeSrc":"4220:3:54","nodeType":"YulIdentifier","src":"4220:3:54"},"nativeSrc":"4220:22:54","nodeType":"YulFunctionCall","src":"4220:22:54"},{"name":"dataEnd","nativeSrc":"4244:7:54","nodeType":"YulIdentifier","src":"4244:7:54"}],"functionName":{"name":"gt","nativeSrc":"4217:2:54","nodeType":"YulIdentifier","src":"4217:2:54"},"nativeSrc":"4217:35:54","nodeType":"YulFunctionCall","src":"4217:35:54"},"nativeSrc":"4214:128:54","nodeType":"YulIf","src":"4214:128:54"},{"expression":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"4372:5:54","nodeType":"YulIdentifier","src":"4372:5:54"},{"name":"_1","nativeSrc":"4379:2:54","nodeType":"YulIdentifier","src":"4379:2:54"}],"functionName":{"name":"add","nativeSrc":"4368:3:54","nodeType":"YulIdentifier","src":"4368:3:54"},"nativeSrc":"4368:14:54","nodeType":"YulFunctionCall","src":"4368:14:54"},{"arguments":[{"name":"_11","nativeSrc":"4388:3:54","nodeType":"YulIdentifier","src":"4388:3:54"},{"name":"_9","nativeSrc":"4393:2:54","nodeType":"YulIdentifier","src":"4393:2:54"}],"functionName":{"name":"add","nativeSrc":"4384:3:54","nodeType":"YulIdentifier","src":"4384:3:54"},"nativeSrc":"4384:12:54","nodeType":"YulFunctionCall","src":"4384:12:54"},{"name":"_13","nativeSrc":"4398:3:54","nodeType":"YulIdentifier","src":"4398:3:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"4355:12:54","nodeType":"YulIdentifier","src":"4355:12:54"},"nativeSrc":"4355:47:54","nodeType":"YulFunctionCall","src":"4355:47:54"},"nativeSrc":"4355:47:54","nodeType":"YulExpressionStatement","src":"4355:47:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nativeSrc":"4430:5:54","nodeType":"YulIdentifier","src":"4430:5:54"},{"name":"_13","nativeSrc":"4437:3:54","nodeType":"YulIdentifier","src":"4437:3:54"}],"functionName":{"name":"add","nativeSrc":"4426:3:54","nodeType":"YulIdentifier","src":"4426:3:54"},"nativeSrc":"4426:15:54","nodeType":"YulFunctionCall","src":"4426:15:54"},{"name":"_1","nativeSrc":"4443:2:54","nodeType":"YulIdentifier","src":"4443:2:54"}],"functionName":{"name":"add","nativeSrc":"4422:3:54","nodeType":"YulIdentifier","src":"4422:3:54"},"nativeSrc":"4422:24:54","nodeType":"YulFunctionCall","src":"4422:24:54"},{"kind":"number","nativeSrc":"4448:1:54","nodeType":"YulLiteral","src":"4448:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4415:6:54","nodeType":"YulIdentifier","src":"4415:6:54"},"nativeSrc":"4415:35:54","nodeType":"YulFunctionCall","src":"4415:35:54"},"nativeSrc":"4415:35:54","nodeType":"YulExpressionStatement","src":"4415:35:54"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4474:5:54","nodeType":"YulIdentifier","src":"4474:5:54"},{"name":"_1","nativeSrc":"4481:2:54","nodeType":"YulIdentifier","src":"4481:2:54"}],"functionName":{"name":"add","nativeSrc":"4470:3:54","nodeType":"YulIdentifier","src":"4470:3:54"},"nativeSrc":"4470:14:54","nodeType":"YulFunctionCall","src":"4470:14:54"},{"name":"array","nativeSrc":"4486:5:54","nodeType":"YulIdentifier","src":"4486:5:54"}],"functionName":{"name":"mstore","nativeSrc":"4463:6:54","nodeType":"YulIdentifier","src":"4463:6:54"},"nativeSrc":"4463:29:54","nodeType":"YulFunctionCall","src":"4463:29:54"},"nativeSrc":"4463:29:54","nodeType":"YulExpressionStatement","src":"4463:29:54"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4516:5:54","nodeType":"YulIdentifier","src":"4516:5:54"},{"name":"_9","nativeSrc":"4523:2:54","nodeType":"YulIdentifier","src":"4523:2:54"}],"functionName":{"name":"add","nativeSrc":"4512:3:54","nodeType":"YulIdentifier","src":"4512:3:54"},"nativeSrc":"4512:14:54","nodeType":"YulFunctionCall","src":"4512:14:54"},{"arguments":[{"arguments":[{"name":"_6","nativeSrc":"4551:2:54","nodeType":"YulIdentifier","src":"4551:2:54"},{"kind":"number","nativeSrc":"4555:4:54","nodeType":"YulLiteral","src":"4555:4:54","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"4547:3:54","nodeType":"YulIdentifier","src":"4547:3:54"},"nativeSrc":"4547:13:54","nodeType":"YulFunctionCall","src":"4547:13:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4528:18:54","nodeType":"YulIdentifier","src":"4528:18:54"},"nativeSrc":"4528:33:54","nodeType":"YulFunctionCall","src":"4528:33:54"}],"functionName":{"name":"mstore","nativeSrc":"4505:6:54","nodeType":"YulIdentifier","src":"4505:6:54"},"nativeSrc":"4505:57:54","nodeType":"YulFunctionCall","src":"4505:57:54"},"nativeSrc":"4505:57:54","nodeType":"YulExpressionStatement","src":"4505:57:54"},{"expression":{"arguments":[{"name":"dst","nativeSrc":"4582:3:54","nodeType":"YulIdentifier","src":"4582:3:54"},{"name":"value","nativeSrc":"4587:5:54","nodeType":"YulIdentifier","src":"4587:5:54"}],"functionName":{"name":"mstore","nativeSrc":"4575:6:54","nodeType":"YulIdentifier","src":"4575:6:54"},"nativeSrc":"4575:18:54","nodeType":"YulFunctionCall","src":"4575:18:54"},"nativeSrc":"4575:18:54","nodeType":"YulExpressionStatement","src":"4575:18:54"},{"nativeSrc":"4606:19:54","nodeType":"YulAssignment","src":"4606:19:54","value":{"arguments":[{"name":"dst","nativeSrc":"4617:3:54","nodeType":"YulIdentifier","src":"4617:3:54"},{"name":"_1","nativeSrc":"4622:2:54","nodeType":"YulIdentifier","src":"4622:2:54"}],"functionName":{"name":"add","nativeSrc":"4613:3:54","nodeType":"YulIdentifier","src":"4613:3:54"},"nativeSrc":"4613:12:54","nodeType":"YulFunctionCall","src":"4613:12:54"},"variableNames":[{"name":"dst","nativeSrc":"4606:3:54","nodeType":"YulIdentifier","src":"4606:3:54"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"3088:3:54","nodeType":"YulIdentifier","src":"3088:3:54"},{"name":"srcEnd","nativeSrc":"3093:6:54","nodeType":"YulIdentifier","src":"3093:6:54"}],"functionName":{"name":"lt","nativeSrc":"3085:2:54","nodeType":"YulIdentifier","src":"3085:2:54"},"nativeSrc":"3085:15:54","nodeType":"YulFunctionCall","src":"3085:15:54"},"nativeSrc":"3077:1558:54","nodeType":"YulForLoop","post":{"nativeSrc":"3101:23:54","nodeType":"YulBlock","src":"3101:23:54","statements":[{"nativeSrc":"3103:19:54","nodeType":"YulAssignment","src":"3103:19:54","value":{"arguments":[{"name":"src","nativeSrc":"3114:3:54","nodeType":"YulIdentifier","src":"3114:3:54"},{"name":"_1","nativeSrc":"3119:2:54","nodeType":"YulIdentifier","src":"3119:2:54"}],"functionName":{"name":"add","nativeSrc":"3110:3:54","nodeType":"YulIdentifier","src":"3110:3:54"},"nativeSrc":"3110:12:54","nodeType":"YulFunctionCall","src":"3110:12:54"},"variableNames":[{"name":"src","nativeSrc":"3103:3:54","nodeType":"YulIdentifier","src":"3103:3:54"}]}]},"pre":{"nativeSrc":"3081:3:54","nodeType":"YulBlock","src":"3081:3:54","statements":[]},"src":"3077:1558:54"},{"nativeSrc":"4644:15:54","nodeType":"YulAssignment","src":"4644:15:54","value":{"name":"dst_1","nativeSrc":"4654:5:54","nodeType":"YulIdentifier","src":"4654:5:54"},"variableNames":[{"name":"value0","nativeSrc":"4644:6:54","nodeType":"YulIdentifier","src":"4644:6:54"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr","nativeSrc":"2275:2390:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2364:9:54","nodeType":"YulTypedName","src":"2364:9:54","type":""},{"name":"dataEnd","nativeSrc":"2375:7:54","nodeType":"YulTypedName","src":"2375:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2387:6:54","nodeType":"YulTypedName","src":"2387:6:54","type":""}],"src":"2275:2390:54"},{"body":{"nativeSrc":"4803:125:54","nodeType":"YulBlock","src":"4803:125:54","statements":[{"nativeSrc":"4813:26:54","nodeType":"YulAssignment","src":"4813:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4825:9:54","nodeType":"YulIdentifier","src":"4825:9:54"},{"kind":"number","nativeSrc":"4836:2:54","nodeType":"YulLiteral","src":"4836:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4821:3:54","nodeType":"YulIdentifier","src":"4821:3:54"},"nativeSrc":"4821:18:54","nodeType":"YulFunctionCall","src":"4821:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4813:4:54","nodeType":"YulIdentifier","src":"4813:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4855:9:54","nodeType":"YulIdentifier","src":"4855:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4870:6:54","nodeType":"YulIdentifier","src":"4870:6:54"},{"kind":"number","nativeSrc":"4878:42:54","nodeType":"YulLiteral","src":"4878:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4866:3:54","nodeType":"YulIdentifier","src":"4866:3:54"},"nativeSrc":"4866:55:54","nodeType":"YulFunctionCall","src":"4866:55:54"}],"functionName":{"name":"mstore","nativeSrc":"4848:6:54","nodeType":"YulIdentifier","src":"4848:6:54"},"nativeSrc":"4848:74:54","nodeType":"YulFunctionCall","src":"4848:74:54"},"nativeSrc":"4848:74:54","nodeType":"YulExpressionStatement","src":"4848:74:54"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed","nativeSrc":"4670:258:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4772:9:54","nodeType":"YulTypedName","src":"4772:9:54","type":""},{"name":"value0","nativeSrc":"4783:6:54","nodeType":"YulTypedName","src":"4783:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4794:4:54","nodeType":"YulTypedName","src":"4794:4:54","type":""}],"src":"4670:258:54"},{"body":{"nativeSrc":"4965:152:54","nodeType":"YulBlock","src":"4965:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4982:1:54","nodeType":"YulLiteral","src":"4982:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"4985:77:54","nodeType":"YulLiteral","src":"4985:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4975:6:54","nodeType":"YulIdentifier","src":"4975:6:54"},"nativeSrc":"4975:88:54","nodeType":"YulFunctionCall","src":"4975:88:54"},"nativeSrc":"4975:88:54","nodeType":"YulExpressionStatement","src":"4975:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5079:1:54","nodeType":"YulLiteral","src":"5079:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"5082:4:54","nodeType":"YulLiteral","src":"5082:4:54","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"5072:6:54","nodeType":"YulIdentifier","src":"5072:6:54"},"nativeSrc":"5072:15:54","nodeType":"YulFunctionCall","src":"5072:15:54"},"nativeSrc":"5072:15:54","nodeType":"YulExpressionStatement","src":"5072:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5103:1:54","nodeType":"YulLiteral","src":"5103:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5106:4:54","nodeType":"YulLiteral","src":"5106:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5096:6:54","nodeType":"YulIdentifier","src":"5096:6:54"},"nativeSrc":"5096:15:54","nodeType":"YulFunctionCall","src":"5096:15:54"},"nativeSrc":"5096:15:54","nodeType":"YulExpressionStatement","src":"5096:15:54"}]},"name":"panic_error_0x32","nativeSrc":"4933:184:54","nodeType":"YulFunctionDefinition","src":"4933:184:54"},{"body":{"nativeSrc":"5177:382:54","nodeType":"YulBlock","src":"5177:382:54","statements":[{"nativeSrc":"5187:22:54","nodeType":"YulAssignment","src":"5187:22:54","value":{"arguments":[{"kind":"number","nativeSrc":"5201:1:54","nodeType":"YulLiteral","src":"5201:1:54","type":"","value":"1"},{"name":"data","nativeSrc":"5204:4:54","nodeType":"YulIdentifier","src":"5204:4:54"}],"functionName":{"name":"shr","nativeSrc":"5197:3:54","nodeType":"YulIdentifier","src":"5197:3:54"},"nativeSrc":"5197:12:54","nodeType":"YulFunctionCall","src":"5197:12:54"},"variableNames":[{"name":"length","nativeSrc":"5187:6:54","nodeType":"YulIdentifier","src":"5187:6:54"}]},{"nativeSrc":"5218:38:54","nodeType":"YulVariableDeclaration","src":"5218:38:54","value":{"arguments":[{"name":"data","nativeSrc":"5248:4:54","nodeType":"YulIdentifier","src":"5248:4:54"},{"kind":"number","nativeSrc":"5254:1:54","nodeType":"YulLiteral","src":"5254:1:54","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5244:3:54","nodeType":"YulIdentifier","src":"5244:3:54"},"nativeSrc":"5244:12:54","nodeType":"YulFunctionCall","src":"5244:12:54"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"5222:18:54","nodeType":"YulTypedName","src":"5222:18:54","type":""}]},{"body":{"nativeSrc":"5295:31:54","nodeType":"YulBlock","src":"5295:31:54","statements":[{"nativeSrc":"5297:27:54","nodeType":"YulAssignment","src":"5297:27:54","value":{"arguments":[{"name":"length","nativeSrc":"5311:6:54","nodeType":"YulIdentifier","src":"5311:6:54"},{"kind":"number","nativeSrc":"5319:4:54","nodeType":"YulLiteral","src":"5319:4:54","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5307:3:54","nodeType":"YulIdentifier","src":"5307:3:54"},"nativeSrc":"5307:17:54","nodeType":"YulFunctionCall","src":"5307:17:54"},"variableNames":[{"name":"length","nativeSrc":"5297:6:54","nodeType":"YulIdentifier","src":"5297:6:54"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5275:18:54","nodeType":"YulIdentifier","src":"5275:18:54"}],"functionName":{"name":"iszero","nativeSrc":"5268:6:54","nodeType":"YulIdentifier","src":"5268:6:54"},"nativeSrc":"5268:26:54","nodeType":"YulFunctionCall","src":"5268:26:54"},"nativeSrc":"5265:61:54","nodeType":"YulIf","src":"5265:61:54"},{"body":{"nativeSrc":"5385:168:54","nodeType":"YulBlock","src":"5385:168:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5406:1:54","nodeType":"YulLiteral","src":"5406:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5409:77:54","nodeType":"YulLiteral","src":"5409:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5399:6:54","nodeType":"YulIdentifier","src":"5399:6:54"},"nativeSrc":"5399:88:54","nodeType":"YulFunctionCall","src":"5399:88:54"},"nativeSrc":"5399:88:54","nodeType":"YulExpressionStatement","src":"5399:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5507:1:54","nodeType":"YulLiteral","src":"5507:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"5510:4:54","nodeType":"YulLiteral","src":"5510:4:54","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5500:6:54","nodeType":"YulIdentifier","src":"5500:6:54"},"nativeSrc":"5500:15:54","nodeType":"YulFunctionCall","src":"5500:15:54"},"nativeSrc":"5500:15:54","nodeType":"YulExpressionStatement","src":"5500:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5535:1:54","nodeType":"YulLiteral","src":"5535:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5538:4:54","nodeType":"YulLiteral","src":"5538:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5528:6:54","nodeType":"YulIdentifier","src":"5528:6:54"},"nativeSrc":"5528:15:54","nodeType":"YulFunctionCall","src":"5528:15:54"},"nativeSrc":"5528:15:54","nodeType":"YulExpressionStatement","src":"5528:15:54"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5341:18:54","nodeType":"YulIdentifier","src":"5341:18:54"},{"arguments":[{"name":"length","nativeSrc":"5364:6:54","nodeType":"YulIdentifier","src":"5364:6:54"},{"kind":"number","nativeSrc":"5372:2:54","nodeType":"YulLiteral","src":"5372:2:54","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5361:2:54","nodeType":"YulIdentifier","src":"5361:2:54"},"nativeSrc":"5361:14:54","nodeType":"YulFunctionCall","src":"5361:14:54"}],"functionName":{"name":"eq","nativeSrc":"5338:2:54","nodeType":"YulIdentifier","src":"5338:2:54"},"nativeSrc":"5338:38:54","nodeType":"YulFunctionCall","src":"5338:38:54"},"nativeSrc":"5335:218:54","nodeType":"YulIf","src":"5335:218:54"}]},"name":"extract_byte_array_length","nativeSrc":"5122:437:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"5157:4:54","nodeType":"YulTypedName","src":"5157:4:54","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5166:6:54","nodeType":"YulTypedName","src":"5166:6:54","type":""}],"src":"5122:437:54"},{"body":{"nativeSrc":"5665:76:54","nodeType":"YulBlock","src":"5665:76:54","statements":[{"nativeSrc":"5675:26:54","nodeType":"YulAssignment","src":"5675:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5687:9:54","nodeType":"YulIdentifier","src":"5687:9:54"},{"kind":"number","nativeSrc":"5698:2:54","nodeType":"YulLiteral","src":"5698:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5683:3:54","nodeType":"YulIdentifier","src":"5683:3:54"},"nativeSrc":"5683:18:54","nodeType":"YulFunctionCall","src":"5683:18:54"},"variableNames":[{"name":"tail","nativeSrc":"5675:4:54","nodeType":"YulIdentifier","src":"5675:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5717:9:54","nodeType":"YulIdentifier","src":"5717:9:54"},{"name":"value0","nativeSrc":"5728:6:54","nodeType":"YulIdentifier","src":"5728:6:54"}],"functionName":{"name":"mstore","nativeSrc":"5710:6:54","nodeType":"YulIdentifier","src":"5710:6:54"},"nativeSrc":"5710:25:54","nodeType":"YulFunctionCall","src":"5710:25:54"},"nativeSrc":"5710:25:54","nodeType":"YulExpressionStatement","src":"5710:25:54"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5564:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5634:9:54","nodeType":"YulTypedName","src":"5634:9:54","type":""},{"name":"value0","nativeSrc":"5645:6:54","nodeType":"YulTypedName","src":"5645:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5656:4:54","nodeType":"YulTypedName","src":"5656:4:54","type":""}],"src":"5564:177:54"},{"body":{"nativeSrc":"5802:65:54","nodeType":"YulBlock","src":"5802:65:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5819:1:54","nodeType":"YulLiteral","src":"5819:1:54","type":"","value":"0"},{"name":"ptr","nativeSrc":"5822:3:54","nodeType":"YulIdentifier","src":"5822:3:54"}],"functionName":{"name":"mstore","nativeSrc":"5812:6:54","nodeType":"YulIdentifier","src":"5812:6:54"},"nativeSrc":"5812:14:54","nodeType":"YulFunctionCall","src":"5812:14:54"},"nativeSrc":"5812:14:54","nodeType":"YulExpressionStatement","src":"5812:14:54"},{"nativeSrc":"5835:26:54","nodeType":"YulAssignment","src":"5835:26:54","value":{"arguments":[{"kind":"number","nativeSrc":"5853:1:54","nodeType":"YulLiteral","src":"5853:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"5856:4:54","nodeType":"YulLiteral","src":"5856:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5843:9:54","nodeType":"YulIdentifier","src":"5843:9:54"},"nativeSrc":"5843:18:54","nodeType":"YulFunctionCall","src":"5843:18:54"},"variableNames":[{"name":"data","nativeSrc":"5835:4:54","nodeType":"YulIdentifier","src":"5835:4:54"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"5746:121:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"5785:3:54","nodeType":"YulTypedName","src":"5785:3:54","type":""}],"returnVariables":[{"name":"data","nativeSrc":"5793:4:54","nodeType":"YulTypedName","src":"5793:4:54","type":""}],"src":"5746:121:54"},{"body":{"nativeSrc":"5953:462:54","nodeType":"YulBlock","src":"5953:462:54","statements":[{"body":{"nativeSrc":"5986:423:54","nodeType":"YulBlock","src":"5986:423:54","statements":[{"nativeSrc":"6000:11:54","nodeType":"YulVariableDeclaration","src":"6000:11:54","value":{"kind":"number","nativeSrc":"6010:1:54","nodeType":"YulLiteral","src":"6010:1:54","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"6004:2:54","nodeType":"YulTypedName","src":"6004:2:54","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6031:1:54","nodeType":"YulLiteral","src":"6031:1:54","type":"","value":"0"},{"name":"array","nativeSrc":"6034:5:54","nodeType":"YulIdentifier","src":"6034:5:54"}],"functionName":{"name":"mstore","nativeSrc":"6024:6:54","nodeType":"YulIdentifier","src":"6024:6:54"},"nativeSrc":"6024:16:54","nodeType":"YulFunctionCall","src":"6024:16:54"},"nativeSrc":"6024:16:54","nodeType":"YulExpressionStatement","src":"6024:16:54"},{"nativeSrc":"6053:30:54","nodeType":"YulVariableDeclaration","src":"6053:30:54","value":{"arguments":[{"kind":"number","nativeSrc":"6075:1:54","nodeType":"YulLiteral","src":"6075:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6078:4:54","nodeType":"YulLiteral","src":"6078:4:54","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6065:9:54","nodeType":"YulIdentifier","src":"6065:9:54"},"nativeSrc":"6065:18:54","nodeType":"YulFunctionCall","src":"6065:18:54"},"variables":[{"name":"data","nativeSrc":"6057:4:54","nodeType":"YulTypedName","src":"6057:4:54","type":""}]},{"nativeSrc":"6096:57:54","nodeType":"YulVariableDeclaration","src":"6096:57:54","value":{"arguments":[{"name":"data","nativeSrc":"6119:4:54","nodeType":"YulIdentifier","src":"6119:4:54"},{"arguments":[{"kind":"number","nativeSrc":"6129:1:54","nodeType":"YulLiteral","src":"6129:1:54","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"6136:10:54","nodeType":"YulIdentifier","src":"6136:10:54"},{"kind":"number","nativeSrc":"6148:2:54","nodeType":"YulLiteral","src":"6148:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6132:3:54","nodeType":"YulIdentifier","src":"6132:3:54"},"nativeSrc":"6132:19:54","nodeType":"YulFunctionCall","src":"6132:19:54"}],"functionName":{"name":"shr","nativeSrc":"6125:3:54","nodeType":"YulIdentifier","src":"6125:3:54"},"nativeSrc":"6125:27:54","nodeType":"YulFunctionCall","src":"6125:27:54"}],"functionName":{"name":"add","nativeSrc":"6115:3:54","nodeType":"YulIdentifier","src":"6115:3:54"},"nativeSrc":"6115:38:54","nodeType":"YulFunctionCall","src":"6115:38:54"},"variables":[{"name":"deleteStart","nativeSrc":"6100:11:54","nodeType":"YulTypedName","src":"6100:11:54","type":""}]},{"body":{"nativeSrc":"6190:23:54","nodeType":"YulBlock","src":"6190:23:54","statements":[{"nativeSrc":"6192:19:54","nodeType":"YulAssignment","src":"6192:19:54","value":{"name":"data","nativeSrc":"6207:4:54","nodeType":"YulIdentifier","src":"6207:4:54"},"variableNames":[{"name":"deleteStart","nativeSrc":"6192:11:54","nodeType":"YulIdentifier","src":"6192:11:54"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6172:10:54","nodeType":"YulIdentifier","src":"6172:10:54"},{"kind":"number","nativeSrc":"6184:4:54","nodeType":"YulLiteral","src":"6184:4:54","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"6169:2:54","nodeType":"YulIdentifier","src":"6169:2:54"},"nativeSrc":"6169:20:54","nodeType":"YulFunctionCall","src":"6169:20:54"},"nativeSrc":"6166:47:54","nodeType":"YulIf","src":"6166:47:54"},{"nativeSrc":"6226:41:54","nodeType":"YulVariableDeclaration","src":"6226:41:54","value":{"arguments":[{"name":"data","nativeSrc":"6240:4:54","nodeType":"YulIdentifier","src":"6240:4:54"},{"arguments":[{"kind":"number","nativeSrc":"6250:1:54","nodeType":"YulLiteral","src":"6250:1:54","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"6257:3:54","nodeType":"YulIdentifier","src":"6257:3:54"},{"kind":"number","nativeSrc":"6262:2:54","nodeType":"YulLiteral","src":"6262:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"6253:3:54","nodeType":"YulIdentifier","src":"6253:3:54"},"nativeSrc":"6253:12:54","nodeType":"YulFunctionCall","src":"6253:12:54"}],"functionName":{"name":"shr","nativeSrc":"6246:3:54","nodeType":"YulIdentifier","src":"6246:3:54"},"nativeSrc":"6246:20:54","nodeType":"YulFunctionCall","src":"6246:20:54"}],"functionName":{"name":"add","nativeSrc":"6236:3:54","nodeType":"YulIdentifier","src":"6236:3:54"},"nativeSrc":"6236:31:54","nodeType":"YulFunctionCall","src":"6236:31:54"},"variables":[{"name":"_2","nativeSrc":"6230:2:54","nodeType":"YulTypedName","src":"6230:2:54","type":""}]},{"nativeSrc":"6280:24:54","nodeType":"YulVariableDeclaration","src":"6280:24:54","value":{"name":"deleteStart","nativeSrc":"6293:11:54","nodeType":"YulIdentifier","src":"6293:11:54"},"variables":[{"name":"start","nativeSrc":"6284:5:54","nodeType":"YulTypedName","src":"6284:5:54","type":""}]},{"body":{"nativeSrc":"6378:21:54","nodeType":"YulBlock","src":"6378:21:54","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6387:5:54","nodeType":"YulIdentifier","src":"6387:5:54"},{"name":"_1","nativeSrc":"6394:2:54","nodeType":"YulIdentifier","src":"6394:2:54"}],"functionName":{"name":"sstore","nativeSrc":"6380:6:54","nodeType":"YulIdentifier","src":"6380:6:54"},"nativeSrc":"6380:17:54","nodeType":"YulFunctionCall","src":"6380:17:54"},"nativeSrc":"6380:17:54","nodeType":"YulExpressionStatement","src":"6380:17:54"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6328:5:54","nodeType":"YulIdentifier","src":"6328:5:54"},{"name":"_2","nativeSrc":"6335:2:54","nodeType":"YulIdentifier","src":"6335:2:54"}],"functionName":{"name":"lt","nativeSrc":"6325:2:54","nodeType":"YulIdentifier","src":"6325:2:54"},"nativeSrc":"6325:13:54","nodeType":"YulFunctionCall","src":"6325:13:54"},"nativeSrc":"6317:82:54","nodeType":"YulForLoop","post":{"nativeSrc":"6339:26:54","nodeType":"YulBlock","src":"6339:26:54","statements":[{"nativeSrc":"6341:22:54","nodeType":"YulAssignment","src":"6341:22:54","value":{"arguments":[{"name":"start","nativeSrc":"6354:5:54","nodeType":"YulIdentifier","src":"6354:5:54"},{"kind":"number","nativeSrc":"6361:1:54","nodeType":"YulLiteral","src":"6361:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6350:3:54","nodeType":"YulIdentifier","src":"6350:3:54"},"nativeSrc":"6350:13:54","nodeType":"YulFunctionCall","src":"6350:13:54"},"variableNames":[{"name":"start","nativeSrc":"6341:5:54","nodeType":"YulIdentifier","src":"6341:5:54"}]}]},"pre":{"nativeSrc":"6321:3:54","nodeType":"YulBlock","src":"6321:3:54","statements":[]},"src":"6317:82:54"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"5969:3:54","nodeType":"YulIdentifier","src":"5969:3:54"},{"kind":"number","nativeSrc":"5974:2:54","nodeType":"YulLiteral","src":"5974:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"5966:2:54","nodeType":"YulIdentifier","src":"5966:2:54"},"nativeSrc":"5966:11:54","nodeType":"YulFunctionCall","src":"5966:11:54"},"nativeSrc":"5963:446:54","nodeType":"YulIf","src":"5963:446:54"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"5872:543:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"5925:5:54","nodeType":"YulTypedName","src":"5925:5:54","type":""},{"name":"len","nativeSrc":"5932:3:54","nodeType":"YulTypedName","src":"5932:3:54","type":""},{"name":"startIndex","nativeSrc":"5937:10:54","nodeType":"YulTypedName","src":"5937:10:54","type":""}],"src":"5872:543:54"},{"body":{"nativeSrc":"6505:141:54","nodeType":"YulBlock","src":"6505:141:54","statements":[{"nativeSrc":"6515:125:54","nodeType":"YulAssignment","src":"6515:125:54","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"6530:4:54","nodeType":"YulIdentifier","src":"6530:4:54"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6548:1:54","nodeType":"YulLiteral","src":"6548:1:54","type":"","value":"3"},{"name":"len","nativeSrc":"6551:3:54","nodeType":"YulIdentifier","src":"6551:3:54"}],"functionName":{"name":"shl","nativeSrc":"6544:3:54","nodeType":"YulIdentifier","src":"6544:3:54"},"nativeSrc":"6544:11:54","nodeType":"YulFunctionCall","src":"6544:11:54"},{"kind":"number","nativeSrc":"6557:66:54","nodeType":"YulLiteral","src":"6557:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"6540:3:54","nodeType":"YulIdentifier","src":"6540:3:54"},"nativeSrc":"6540:84:54","nodeType":"YulFunctionCall","src":"6540:84:54"}],"functionName":{"name":"not","nativeSrc":"6536:3:54","nodeType":"YulIdentifier","src":"6536:3:54"},"nativeSrc":"6536:89:54","nodeType":"YulFunctionCall","src":"6536:89:54"}],"functionName":{"name":"and","nativeSrc":"6526:3:54","nodeType":"YulIdentifier","src":"6526:3:54"},"nativeSrc":"6526:100:54","nodeType":"YulFunctionCall","src":"6526:100:54"},{"arguments":[{"kind":"number","nativeSrc":"6632:1:54","nodeType":"YulLiteral","src":"6632:1:54","type":"","value":"1"},{"name":"len","nativeSrc":"6635:3:54","nodeType":"YulIdentifier","src":"6635:3:54"}],"functionName":{"name":"shl","nativeSrc":"6628:3:54","nodeType":"YulIdentifier","src":"6628:3:54"},"nativeSrc":"6628:11:54","nodeType":"YulFunctionCall","src":"6628:11:54"}],"functionName":{"name":"or","nativeSrc":"6523:2:54","nodeType":"YulIdentifier","src":"6523:2:54"},"nativeSrc":"6523:117:54","nodeType":"YulFunctionCall","src":"6523:117:54"},"variableNames":[{"name":"used","nativeSrc":"6515:4:54","nodeType":"YulIdentifier","src":"6515:4:54"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"6420:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6482:4:54","nodeType":"YulTypedName","src":"6482:4:54","type":""},{"name":"len","nativeSrc":"6488:3:54","nodeType":"YulTypedName","src":"6488:3:54","type":""}],"returnVariables":[{"name":"used","nativeSrc":"6496:4:54","nodeType":"YulTypedName","src":"6496:4:54","type":""}],"src":"6420:226:54"},{"body":{"nativeSrc":"6747:1368:54","nodeType":"YulBlock","src":"6747:1368:54","statements":[{"nativeSrc":"6757:24:54","nodeType":"YulVariableDeclaration","src":"6757:24:54","value":{"arguments":[{"name":"src","nativeSrc":"6777:3:54","nodeType":"YulIdentifier","src":"6777:3:54"}],"functionName":{"name":"mload","nativeSrc":"6771:5:54","nodeType":"YulIdentifier","src":"6771:5:54"},"nativeSrc":"6771:10:54","nodeType":"YulFunctionCall","src":"6771:10:54"},"variables":[{"name":"newLen","nativeSrc":"6761:6:54","nodeType":"YulTypedName","src":"6761:6:54","type":""}]},{"body":{"nativeSrc":"6824:22:54","nodeType":"YulBlock","src":"6824:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6826:16:54","nodeType":"YulIdentifier","src":"6826:16:54"},"nativeSrc":"6826:18:54","nodeType":"YulFunctionCall","src":"6826:18:54"},"nativeSrc":"6826:18:54","nodeType":"YulExpressionStatement","src":"6826:18:54"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"6796:6:54","nodeType":"YulIdentifier","src":"6796:6:54"},{"kind":"number","nativeSrc":"6804:18:54","nodeType":"YulLiteral","src":"6804:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6793:2:54","nodeType":"YulIdentifier","src":"6793:2:54"},"nativeSrc":"6793:30:54","nodeType":"YulFunctionCall","src":"6793:30:54"},"nativeSrc":"6790:56:54","nodeType":"YulIf","src":"6790:56:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6899:4:54","nodeType":"YulIdentifier","src":"6899:4:54"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"6937:4:54","nodeType":"YulIdentifier","src":"6937:4:54"}],"functionName":{"name":"sload","nativeSrc":"6931:5:54","nodeType":"YulIdentifier","src":"6931:5:54"},"nativeSrc":"6931:11:54","nodeType":"YulFunctionCall","src":"6931:11:54"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"6905:25:54","nodeType":"YulIdentifier","src":"6905:25:54"},"nativeSrc":"6905:38:54","nodeType":"YulFunctionCall","src":"6905:38:54"},{"name":"newLen","nativeSrc":"6945:6:54","nodeType":"YulIdentifier","src":"6945:6:54"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"6855:43:54","nodeType":"YulIdentifier","src":"6855:43:54"},"nativeSrc":"6855:97:54","nodeType":"YulFunctionCall","src":"6855:97:54"},"nativeSrc":"6855:97:54","nodeType":"YulExpressionStatement","src":"6855:97:54"},{"nativeSrc":"6961:18:54","nodeType":"YulVariableDeclaration","src":"6961:18:54","value":{"kind":"number","nativeSrc":"6978:1:54","nodeType":"YulLiteral","src":"6978:1:54","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"6965:9:54","nodeType":"YulTypedName","src":"6965:9:54","type":""}]},{"nativeSrc":"6988:23:54","nodeType":"YulVariableDeclaration","src":"6988:23:54","value":{"kind":"number","nativeSrc":"7007:4:54","nodeType":"YulLiteral","src":"7007:4:54","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"6992:11:54","nodeType":"YulTypedName","src":"6992:11:54","type":""}]},{"nativeSrc":"7020:17:54","nodeType":"YulAssignment","src":"7020:17:54","value":{"kind":"number","nativeSrc":"7033:4:54","nodeType":"YulLiteral","src":"7033:4:54","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"7020:9:54","nodeType":"YulIdentifier","src":"7020:9:54"}]},{"cases":[{"body":{"nativeSrc":"7083:775:54","nodeType":"YulBlock","src":"7083:775:54","statements":[{"nativeSrc":"7097:94:54","nodeType":"YulVariableDeclaration","src":"7097:94:54","value":{"arguments":[{"name":"newLen","nativeSrc":"7116:6:54","nodeType":"YulIdentifier","src":"7116:6:54"},{"kind":"number","nativeSrc":"7124:66:54","nodeType":"YulLiteral","src":"7124:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"7112:3:54","nodeType":"YulIdentifier","src":"7112:3:54"},"nativeSrc":"7112:79:54","nodeType":"YulFunctionCall","src":"7112:79:54"},"variables":[{"name":"loopEnd","nativeSrc":"7101:7:54","nodeType":"YulTypedName","src":"7101:7:54","type":""}]},{"nativeSrc":"7204:49:54","nodeType":"YulVariableDeclaration","src":"7204:49:54","value":{"arguments":[{"name":"slot","nativeSrc":"7248:4:54","nodeType":"YulIdentifier","src":"7248:4:54"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"7218:29:54","nodeType":"YulIdentifier","src":"7218:29:54"},"nativeSrc":"7218:35:54","nodeType":"YulFunctionCall","src":"7218:35:54"},"variables":[{"name":"dstPtr","nativeSrc":"7208:6:54","nodeType":"YulTypedName","src":"7208:6:54","type":""}]},{"nativeSrc":"7266:10:54","nodeType":"YulVariableDeclaration","src":"7266:10:54","value":{"kind":"number","nativeSrc":"7275:1:54","nodeType":"YulLiteral","src":"7275:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"7270:1:54","nodeType":"YulTypedName","src":"7270:1:54","type":""}]},{"body":{"nativeSrc":"7353:172:54","nodeType":"YulBlock","src":"7353:172:54","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"7378:6:54","nodeType":"YulIdentifier","src":"7378:6:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7396:3:54","nodeType":"YulIdentifier","src":"7396:3:54"},{"name":"srcOffset","nativeSrc":"7401:9:54","nodeType":"YulIdentifier","src":"7401:9:54"}],"functionName":{"name":"add","nativeSrc":"7392:3:54","nodeType":"YulIdentifier","src":"7392:3:54"},"nativeSrc":"7392:19:54","nodeType":"YulFunctionCall","src":"7392:19:54"}],"functionName":{"name":"mload","nativeSrc":"7386:5:54","nodeType":"YulIdentifier","src":"7386:5:54"},"nativeSrc":"7386:26:54","nodeType":"YulFunctionCall","src":"7386:26:54"}],"functionName":{"name":"sstore","nativeSrc":"7371:6:54","nodeType":"YulIdentifier","src":"7371:6:54"},"nativeSrc":"7371:42:54","nodeType":"YulFunctionCall","src":"7371:42:54"},"nativeSrc":"7371:42:54","nodeType":"YulExpressionStatement","src":"7371:42:54"},{"nativeSrc":"7430:24:54","nodeType":"YulAssignment","src":"7430:24:54","value":{"arguments":[{"name":"dstPtr","nativeSrc":"7444:6:54","nodeType":"YulIdentifier","src":"7444:6:54"},{"kind":"number","nativeSrc":"7452:1:54","nodeType":"YulLiteral","src":"7452:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7440:3:54","nodeType":"YulIdentifier","src":"7440:3:54"},"nativeSrc":"7440:14:54","nodeType":"YulFunctionCall","src":"7440:14:54"},"variableNames":[{"name":"dstPtr","nativeSrc":"7430:6:54","nodeType":"YulIdentifier","src":"7430:6:54"}]},{"nativeSrc":"7471:40:54","nodeType":"YulAssignment","src":"7471:40:54","value":{"arguments":[{"name":"srcOffset","nativeSrc":"7488:9:54","nodeType":"YulIdentifier","src":"7488:9:54"},{"name":"srcOffset_1","nativeSrc":"7499:11:54","nodeType":"YulIdentifier","src":"7499:11:54"}],"functionName":{"name":"add","nativeSrc":"7484:3:54","nodeType":"YulIdentifier","src":"7484:3:54"},"nativeSrc":"7484:27:54","nodeType":"YulFunctionCall","src":"7484:27:54"},"variableNames":[{"name":"srcOffset","nativeSrc":"7471:9:54","nodeType":"YulIdentifier","src":"7471:9:54"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"7300:1:54","nodeType":"YulIdentifier","src":"7300:1:54"},{"name":"loopEnd","nativeSrc":"7303:7:54","nodeType":"YulIdentifier","src":"7303:7:54"}],"functionName":{"name":"lt","nativeSrc":"7297:2:54","nodeType":"YulIdentifier","src":"7297:2:54"},"nativeSrc":"7297:14:54","nodeType":"YulFunctionCall","src":"7297:14:54"},"nativeSrc":"7289:236:54","nodeType":"YulForLoop","post":{"nativeSrc":"7312:28:54","nodeType":"YulBlock","src":"7312:28:54","statements":[{"nativeSrc":"7314:24:54","nodeType":"YulAssignment","src":"7314:24:54","value":{"arguments":[{"name":"i","nativeSrc":"7323:1:54","nodeType":"YulIdentifier","src":"7323:1:54"},{"name":"srcOffset_1","nativeSrc":"7326:11:54","nodeType":"YulIdentifier","src":"7326:11:54"}],"functionName":{"name":"add","nativeSrc":"7319:3:54","nodeType":"YulIdentifier","src":"7319:3:54"},"nativeSrc":"7319:19:54","nodeType":"YulFunctionCall","src":"7319:19:54"},"variableNames":[{"name":"i","nativeSrc":"7314:1:54","nodeType":"YulIdentifier","src":"7314:1:54"}]}]},"pre":{"nativeSrc":"7293:3:54","nodeType":"YulBlock","src":"7293:3:54","statements":[]},"src":"7289:236:54"},{"body":{"nativeSrc":"7573:226:54","nodeType":"YulBlock","src":"7573:226:54","statements":[{"nativeSrc":"7591:43:54","nodeType":"YulVariableDeclaration","src":"7591:43:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7618:3:54","nodeType":"YulIdentifier","src":"7618:3:54"},{"name":"srcOffset","nativeSrc":"7623:9:54","nodeType":"YulIdentifier","src":"7623:9:54"}],"functionName":{"name":"add","nativeSrc":"7614:3:54","nodeType":"YulIdentifier","src":"7614:3:54"},"nativeSrc":"7614:19:54","nodeType":"YulFunctionCall","src":"7614:19:54"}],"functionName":{"name":"mload","nativeSrc":"7608:5:54","nodeType":"YulIdentifier","src":"7608:5:54"},"nativeSrc":"7608:26:54","nodeType":"YulFunctionCall","src":"7608:26:54"},"variables":[{"name":"lastValue","nativeSrc":"7595:9:54","nodeType":"YulTypedName","src":"7595:9:54","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"7658:6:54","nodeType":"YulIdentifier","src":"7658:6:54"},{"arguments":[{"name":"lastValue","nativeSrc":"7670:9:54","nodeType":"YulIdentifier","src":"7670:9:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7697:1:54","nodeType":"YulLiteral","src":"7697:1:54","type":"","value":"3"},{"name":"newLen","nativeSrc":"7700:6:54","nodeType":"YulIdentifier","src":"7700:6:54"}],"functionName":{"name":"shl","nativeSrc":"7693:3:54","nodeType":"YulIdentifier","src":"7693:3:54"},"nativeSrc":"7693:14:54","nodeType":"YulFunctionCall","src":"7693:14:54"},{"kind":"number","nativeSrc":"7709:3:54","nodeType":"YulLiteral","src":"7709:3:54","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"7689:3:54","nodeType":"YulIdentifier","src":"7689:3:54"},"nativeSrc":"7689:24:54","nodeType":"YulFunctionCall","src":"7689:24:54"},{"kind":"number","nativeSrc":"7715:66:54","nodeType":"YulLiteral","src":"7715:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nativeSrc":"7685:3:54","nodeType":"YulIdentifier","src":"7685:3:54"},"nativeSrc":"7685:97:54","nodeType":"YulFunctionCall","src":"7685:97:54"}],"functionName":{"name":"not","nativeSrc":"7681:3:54","nodeType":"YulIdentifier","src":"7681:3:54"},"nativeSrc":"7681:102:54","nodeType":"YulFunctionCall","src":"7681:102:54"}],"functionName":{"name":"and","nativeSrc":"7666:3:54","nodeType":"YulIdentifier","src":"7666:3:54"},"nativeSrc":"7666:118:54","nodeType":"YulFunctionCall","src":"7666:118:54"}],"functionName":{"name":"sstore","nativeSrc":"7651:6:54","nodeType":"YulIdentifier","src":"7651:6:54"},"nativeSrc":"7651:134:54","nodeType":"YulFunctionCall","src":"7651:134:54"},"nativeSrc":"7651:134:54","nodeType":"YulExpressionStatement","src":"7651:134:54"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"7544:7:54","nodeType":"YulIdentifier","src":"7544:7:54"},{"name":"newLen","nativeSrc":"7553:6:54","nodeType":"YulIdentifier","src":"7553:6:54"}],"functionName":{"name":"lt","nativeSrc":"7541:2:54","nodeType":"YulIdentifier","src":"7541:2:54"},"nativeSrc":"7541:19:54","nodeType":"YulFunctionCall","src":"7541:19:54"},"nativeSrc":"7538:261:54","nodeType":"YulIf","src":"7538:261:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7819:4:54","nodeType":"YulIdentifier","src":"7819:4:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7833:1:54","nodeType":"YulLiteral","src":"7833:1:54","type":"","value":"1"},{"name":"newLen","nativeSrc":"7836:6:54","nodeType":"YulIdentifier","src":"7836:6:54"}],"functionName":{"name":"shl","nativeSrc":"7829:3:54","nodeType":"YulIdentifier","src":"7829:3:54"},"nativeSrc":"7829:14:54","nodeType":"YulFunctionCall","src":"7829:14:54"},{"kind":"number","nativeSrc":"7845:1:54","nodeType":"YulLiteral","src":"7845:1:54","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7825:3:54","nodeType":"YulIdentifier","src":"7825:3:54"},"nativeSrc":"7825:22:54","nodeType":"YulFunctionCall","src":"7825:22:54"}],"functionName":{"name":"sstore","nativeSrc":"7812:6:54","nodeType":"YulIdentifier","src":"7812:6:54"},"nativeSrc":"7812:36:54","nodeType":"YulFunctionCall","src":"7812:36:54"},"nativeSrc":"7812:36:54","nodeType":"YulExpressionStatement","src":"7812:36:54"}]},"nativeSrc":"7076:782:54","nodeType":"YulCase","src":"7076:782:54","value":{"kind":"number","nativeSrc":"7081:1:54","nodeType":"YulLiteral","src":"7081:1:54","type":"","value":"1"}},{"body":{"nativeSrc":"7875:234:54","nodeType":"YulBlock","src":"7875:234:54","statements":[{"nativeSrc":"7889:14:54","nodeType":"YulVariableDeclaration","src":"7889:14:54","value":{"kind":"number","nativeSrc":"7902:1:54","nodeType":"YulLiteral","src":"7902:1:54","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"7893:5:54","nodeType":"YulTypedName","src":"7893:5:54","type":""}]},{"body":{"nativeSrc":"7938:67:54","nodeType":"YulBlock","src":"7938:67:54","statements":[{"nativeSrc":"7956:35:54","nodeType":"YulAssignment","src":"7956:35:54","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7975:3:54","nodeType":"YulIdentifier","src":"7975:3:54"},{"name":"srcOffset","nativeSrc":"7980:9:54","nodeType":"YulIdentifier","src":"7980:9:54"}],"functionName":{"name":"add","nativeSrc":"7971:3:54","nodeType":"YulIdentifier","src":"7971:3:54"},"nativeSrc":"7971:19:54","nodeType":"YulFunctionCall","src":"7971:19:54"}],"functionName":{"name":"mload","nativeSrc":"7965:5:54","nodeType":"YulIdentifier","src":"7965:5:54"},"nativeSrc":"7965:26:54","nodeType":"YulFunctionCall","src":"7965:26:54"},"variableNames":[{"name":"value","nativeSrc":"7956:5:54","nodeType":"YulIdentifier","src":"7956:5:54"}]}]},"condition":{"name":"newLen","nativeSrc":"7919:6:54","nodeType":"YulIdentifier","src":"7919:6:54"},"nativeSrc":"7916:89:54","nodeType":"YulIf","src":"7916:89:54"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8025:4:54","nodeType":"YulIdentifier","src":"8025:4:54"},{"arguments":[{"name":"value","nativeSrc":"8084:5:54","nodeType":"YulIdentifier","src":"8084:5:54"},{"name":"newLen","nativeSrc":"8091:6:54","nodeType":"YulIdentifier","src":"8091:6:54"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8031:52:54","nodeType":"YulIdentifier","src":"8031:52:54"},"nativeSrc":"8031:67:54","nodeType":"YulFunctionCall","src":"8031:67:54"}],"functionName":{"name":"sstore","nativeSrc":"8018:6:54","nodeType":"YulIdentifier","src":"8018:6:54"},"nativeSrc":"8018:81:54","nodeType":"YulFunctionCall","src":"8018:81:54"},"nativeSrc":"8018:81:54","nodeType":"YulExpressionStatement","src":"8018:81:54"}]},"nativeSrc":"7867:242:54","nodeType":"YulCase","src":"7867:242:54","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"7056:6:54","nodeType":"YulIdentifier","src":"7056:6:54"},{"kind":"number","nativeSrc":"7064:2:54","nodeType":"YulLiteral","src":"7064:2:54","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"7053:2:54","nodeType":"YulIdentifier","src":"7053:2:54"},"nativeSrc":"7053:14:54","nodeType":"YulFunctionCall","src":"7053:14:54"},"nativeSrc":"7046:1063:54","nodeType":"YulSwitch","src":"7046:1063:54"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"6651:1464:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6732:4:54","nodeType":"YulTypedName","src":"6732:4:54","type":""},{"name":"src","nativeSrc":"6738:3:54","nodeType":"YulTypedName","src":"6738:3:54","type":""}],"src":"6651:1464:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr_t_address__to_t_address_t_string_memory_ptr_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        let _2 := 32\n        mstore(add(headStart, 32), 96)\n        let length := mload(value1)\n        mstore(add(headStart, 96), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _2) }\n        {\n            mstore(add(add(headStart, i), 128), mload(add(add(value1, i), _2)))\n        }\n        mstore(add(add(headStart, length), 128), 0)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 128)\n        mstore(add(headStart, 64), and(value2, _1))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_1501() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_struct$_Permission_$8946_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := shl(5, _4)\n        let dst := allocate_memory(add(_5, _1))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_3, _5), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, _2) { revert(0, 0) }\n            let _6 := add(_3, innerOffset)\n            let _7 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n            if slt(add(sub(dataEnd, _6), _7), 0x60)\n            {\n                let _8 := 0\n                revert(_8, _8)\n            }\n            let value := allocate_memory_1501()\n            mstore(value, abi_decode_address(add(_6, _1)))\n            let _9 := 64\n            let offset_1 := calldataload(add(_6, _9))\n            if gt(offset_1, _2)\n            {\n                let _10 := 0\n                revert(_10, _10)\n            }\n            let _11 := add(_6, offset_1)\n            if iszero(slt(add(_11, 63), dataEnd))\n            {\n                let _12 := 0\n                revert(_12, _12)\n            }\n            let _13 := calldataload(add(_11, _1))\n            if gt(_13, _2) { panic_error_0x41() }\n            let array := allocate_memory(add(and(add(_13, 0x1f), _7), _1))\n            mstore(array, _13)\n            if gt(add(add(_11, _13), _9), dataEnd)\n            {\n                let _14 := 0\n                revert(_14, _14)\n            }\n            calldatacopy(add(array, _1), add(_11, _9), _13)\n            mstore(add(add(array, _13), _1), 0)\n            mstore(add(value, _1), array)\n            mstore(add(value, _9), abi_decode_address(add(_6, 0x60)))\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value0 := dst_1\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\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}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"8950":[{"length":32,"start":256},{"length":32,"start":734},{"length":32,"start":2561}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061007d5760003560e01c80639d6c76b81161005b5780639d6c76b8146100d5578063de46a235146100e8578063f9b80da1146100fb578063ff1575e11461014757600080fd5b806322473d8c14610082578063514aab87146100975780635666a5ea146100c2575b600080fd5b610095610090366004610ab8565b61015a565b005b6100aa6100a5366004610ad1565b61038d565b6040516100b993929190610af3565b60405180910390f35b6100956100d0366004610c59565b610492565b6100956100e3366004610c59565b610689565b6100956100f6366004610ab8565b61087f565b6101227f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b9565b6100aa610155366004610ad1565b610aa8565b60006001828154811061016f5761016f610de1565b600091825260208220015491505b818110156103545760006001848154811061019a5761019a610de1565b9060005260206000200182815481106101b5576101b5610de1565b60009182526020918290206040805160608101909152600390920201805473ffffffffffffffffffffffffffffffffffffffff168252600181018054929391929184019161020290610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461022e90610e10565b801561027b5780601f106102505761010080835404028352916020019161027b565b820191906000526020600020905b81548152906001019060200180831161025e57829003601f168201915b50505091835250506002919091015473ffffffffffffffffffffffffffffffffffffffff90811660209283015282519183015160408085015190517f545f7a320000000000000000000000000000000000000000000000000000000081529495507f00000000000000000000000000000000000000000000000000000000000000009092169363545f7a329361031693909291600401610af3565b600060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b505050505080600101905061017d565b506040518281527f1382323d6618527d8b03daa05db815f0490966e8b80679fe5ad3d868f84e1a71906020015b60405180910390a15050565b6000828154811061039d57600080fd5b9060005260206000200181815481106103b557600080fd5b60009182526020909120600390910201805460018201805473ffffffffffffffffffffffffffffffffffffffff90921694509192506103f390610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461041f90610e10565b801561046c5780601f106104415761010080835404028352916020019161046c565b820191906000526020600020905b81548152906001019060200180831161044f57829003601f168201915b5050506002909301549192505073ffffffffffffffffffffffffffffffffffffffff1683565b80516000036104cd576040517f4494013c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805480820182556000918252905b825181101561065857600182815481106104f9576104f9610de1565b90600052602060002001604051806060016040528085848151811061052057610520610de1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200185848151811061055957610559610de1565b602002602001015160200151815260200185848151811061057c5761057c610de1565b6020908102919091018101516040015173ffffffffffffffffffffffffffffffffffffffff908116909252835460018082018655600095865294829020845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617825582015191929091908201906106019082610eb4565b5060409190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556001016104dd565b506040518181527f75922591bf2cec980645dc4a32bb7d5e8da9a15fda86dacf06f8402cecd1478f90602001610381565b80516000036106c4576040517f4494013c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054600181018255818052905b825181101561084e57600082815481106106ef576106ef610de1565b90600052602060002001604051806060016040528085848151811061071657610716610de1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16815260200185848151811061074f5761074f610de1565b602002602001015160200151815260200185848151811061077257610772610de1565b6020908102919091018101516040015173ffffffffffffffffffffffffffffffffffffffff908116909252835460018082018655600095865294829020845160039092020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169190931617825582015191929091908201906107f79082610eb4565b5060409190910151600290910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556001016106d3565b506040518181527ff8ca6ea7cc31be8572501c37ef5e9e8298be717fb881e0b1ca785aecc4d25e9f90602001610381565b600080828154811061089357610893610de1565b600091825260208220015491505b81811015610a775760008084815481106108bd576108bd610de1565b9060005260206000200182815481106108d8576108d8610de1565b60009182526020918290206040805160608101909152600390920201805473ffffffffffffffffffffffffffffffffffffffff168252600181018054929391929184019161092590610e10565b80601f016020809104026020016040519081016040528092919081815260200182805461095190610e10565b801561099e5780601f106109735761010080835404028352916020019161099e565b820191906000526020600020905b81548152906001019060200180831161098157829003601f168201915b50505091835250506002919091015473ffffffffffffffffffffffffffffffffffffffff90811660209283015282519183015160408085015190517f584f6b600000000000000000000000000000000000000000000000000000000081529495507f00000000000000000000000000000000000000000000000000000000000000009092169363584f6b6093610a3993909291600401610af3565b600060405180830381600087803b158015610a5357600080fd5b505af1158015610a67573d6000803e3d6000fd5b50505050508060010190506108a1565b506040518281527f01a805f459381af632ecab72ec192c3f9a4c72d26be089026ffd6636d82de98890602001610381565b6001828154811061039d57600080fd5b600060208284031215610aca57600080fd5b5035919050565b60008060408385031215610ae457600080fd5b50508035926020909101359150565b600073ffffffffffffffffffffffffffffffffffffffff8086168352602060606020850152855180606086015260005b81811015610b3f57878101830151868201608001528201610b23565b5060006080828701015260807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011686010193505050808416604084015250949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610bdb57610bdb610b89565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610c2857610c28610b89565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c5457600080fd5b919050565b60006020808385031215610c6c57600080fd5b823567ffffffffffffffff80821115610c8457600080fd5b818501915085601f830112610c9857600080fd5b813581811115610caa57610caa610b89565b8060051b610cb9858201610be1565b9182528381018501918581019089841115610cd357600080fd5b86860192505b83831015610dd457823585811115610cf057600080fd5b86017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06060828d0382011215610d265760008081fd5b610d2e610bb8565b610d398a8401610c30565b815260408084013589811115610d4f5760008081fd5b8401603f81018f13610d615760008081fd5b8b8101358a811115610d7557610d75610b89565b610d858d86601f84011601610be1565b94508085528f83828401011115610d9c5760008081fd5b808383018e87013760008d82870101525050828b830152610dbf60608501610c30565b90820152845250509186019190860190610cd9565b9998505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600181811c90821680610e2457607f821691505b602082108103610e5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610eaf576000816000526020600020601f850160051c81016020861015610e8c5750805b601f850160051c820191505b81811015610eab57828155600101610e98565b5050505b505050565b815167ffffffffffffffff811115610ece57610ece610b89565b610ee281610edc8454610e10565b84610e63565b602080601f831160018114610f355760008415610eff5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610eab565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015610f8257888601518255948401946001909101908401610f63565b5085821015610fbe57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea264697066735822122090d4936e163063dfe747da5bf04cc06002b17436a13e78a30b2797e6219ebb2264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9D6C76B8 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x9D6C76B8 EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xDE46A235 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0xF9B80DA1 EQ PUSH2 0xFB JUMPI DUP1 PUSH4 0xFF1575E1 EQ PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x22473D8C EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x514AAB87 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x5666A5EA EQ PUSH2 0xC2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x15A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAA PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xD0 CALLDATASIZE PUSH1 0x4 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xE3 CALLDATASIZE PUSH1 0x4 PUSH2 0xC59 JUMP JUMPDEST PUSH2 0x689 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0xAB8 JUMP JUMPDEST PUSH2 0x87F JUMP JUMPDEST PUSH2 0x122 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB9 JUMP JUMPDEST PUSH2 0xAA PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0xAA8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x16F JUMPI PUSH2 0x16F PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 PUSH1 0x1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x19A JUMPI PUSH2 0x19A PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1B5 JUMPI PUSH2 0x1B5 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x202 SWAP1 PUSH2 0xE10 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 0x22E SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x250 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x27B 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 0x25E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x545F7A3200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP5 SWAP6 POP PUSH32 0x0 SWAP1 SWAP3 AND SWAP4 PUSH4 0x545F7A32 SWAP4 PUSH2 0x316 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x4 ADD PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x344 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x17D JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x1382323D6618527D8B03DAA05DB815F0490966E8B80679FE5AD3D868F84E1A71 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x3F3 SWAP1 PUSH2 0xE10 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 0x41F SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x46C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x441 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x46C 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 0x44F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP PUSH1 0x2 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x4CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x4494013C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE SWAP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x658 JUMPI PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4F9 JUMPI PUSH2 0x4F9 PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x520 JUMPI PUSH2 0x520 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x559 JUMPI PUSH2 0x559 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x57C JUMPI PUSH2 0x57C PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 SWAP3 MSTORE DUP4 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP7 SSTORE PUSH1 0x0 SWAP6 DUP7 MSTORE SWAP5 DUP3 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP4 AND OR DUP3 SSTORE DUP3 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x601 SWAP1 DUP3 PUSH2 0xEB4 JUMP JUMPDEST POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x4DD JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x75922591BF2CEC980645DC4A32BB7D5E8DA9A15FDA86DACF06F8402CECD1478F SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x6C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4494013C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE DUP2 DUP1 MSTORE SWAP1 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x6EF JUMPI PUSH2 0x6EF PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x716 JUMPI PUSH2 0x716 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x74F JUMPI PUSH2 0x74F PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x772 JUMPI PUSH2 0x772 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 SWAP3 MSTORE DUP4 SLOAD PUSH1 0x1 DUP1 DUP3 ADD DUP7 SSTORE PUSH1 0x0 SWAP6 DUP7 MSTORE SWAP5 DUP3 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP2 SWAP1 SWAP4 AND OR DUP3 SSTORE DUP3 ADD MLOAD SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 ADD SWAP1 PUSH2 0x7F7 SWAP1 DUP3 PUSH2 0xEB4 JUMP JUMPDEST POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x6D3 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xF8CA6EA7CC31BE8572501C37EF5E9E8298BE717FB881E0B1CA785AECC4D25E9F SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x893 JUMPI PUSH2 0x893 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 ADD SLOAD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA77 JUMPI PUSH1 0x0 DUP1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x8BD JUMPI PUSH2 0x8BD PUSH2 0xDE1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x8D8 JUMPI PUSH2 0x8D8 PUSH2 0xDE1 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 MSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x925 SWAP1 PUSH2 0xE10 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 0x951 SWAP1 PUSH2 0xE10 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x99E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x973 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x99E 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 0x981 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x20 SWAP3 DUP4 ADD MSTORE DUP3 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 MLOAD PUSH32 0x584F6B6000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP5 SWAP6 POP PUSH32 0x0 SWAP1 SWAP3 AND SWAP4 PUSH4 0x584F6B60 SWAP4 PUSH2 0xA39 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x4 ADD PUSH2 0xAF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x8A1 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0x1A805F459381AF632ECAB72EC192C3F9A4C72D26BE089026FFD6636D82DE988 SWAP1 PUSH1 0x20 ADD PUSH2 0x381 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND DUP4 MSTORE PUSH1 0x20 PUSH1 0x60 PUSH1 0x20 DUP6 ADD MSTORE DUP6 MLOAD DUP1 PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB3F JUMPI DUP8 DUP2 ADD DUP4 ADD MLOAD DUP7 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0xB23 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x80 DUP3 DUP8 ADD ADD MSTORE PUSH1 0x80 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP7 ADD ADD SWAP4 POP POP POP DUP1 DUP5 AND PUSH1 0x40 DUP5 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xBDB JUMPI PUSH2 0xBDB PUSH2 0xB89 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xC28 JUMPI PUSH2 0xC28 PUSH2 0xB89 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xC54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xCAA JUMPI PUSH2 0xCAA PUSH2 0xB89 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0xCB9 DUP6 DUP3 ADD PUSH2 0xBE1 JUMP JUMPDEST SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD SWAP1 DUP10 DUP5 GT ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0xDD4 JUMPI DUP3 CALLDATALOAD DUP6 DUP2 GT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x60 DUP3 DUP14 SUB DUP3 ADD SLT ISZERO PUSH2 0xD26 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD2E PUSH2 0xBB8 JUMP JUMPDEST PUSH2 0xD39 DUP11 DUP5 ADD PUSH2 0xC30 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD DUP10 DUP2 GT ISZERO PUSH2 0xD4F JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP5 ADD PUSH1 0x3F DUP2 ADD DUP16 SGT PUSH2 0xD61 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP12 DUP2 ADD CALLDATALOAD DUP11 DUP2 GT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD75 PUSH2 0xB89 JUMP JUMPDEST PUSH2 0xD85 DUP14 DUP7 PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0xBE1 JUMP JUMPDEST SWAP5 POP DUP1 DUP6 MSTORE DUP16 DUP4 DUP3 DUP5 ADD ADD GT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP1 DUP4 DUP4 ADD DUP15 DUP8 ADD CALLDATACOPY PUSH1 0x0 DUP14 DUP3 DUP8 ADD ADD MSTORE POP POP DUP3 DUP12 DUP4 ADD MSTORE PUSH2 0xDBF PUSH1 0x60 DUP6 ADD PUSH2 0xC30 JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE DUP5 MSTORE POP POP SWAP2 DUP7 ADD SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0xCD9 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xE24 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE5D JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xEAF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0xE8C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xEAB JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xE98 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xECE JUMPI PUSH2 0xECE PUSH2 0xB89 JUMP JUMPDEST PUSH2 0xEE2 DUP2 PUSH2 0xEDC DUP5 SLOAD PUSH2 0xE10 JUMP JUMPDEST DUP5 PUSH2 0xE63 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xF35 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xEFF JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xEAB JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xF82 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xF63 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xFBE JUMPI DUP8 DUP6 ADD MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 0xD4 SWAP4 PUSH15 0x163063DFE747DA5BF04CC06002B174 CALLDATASIZE LOG1 RETURNDATACOPY PUSH25 0xA30B2797E6219EBB2264736F6C634300081900330000000000 ","sourceMap":"435:4240:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:406;;;;;;:::i;:::-;;:::i;:::-;;1037:38;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2961:538;;;;;;:::i;:::-;;:::i;2253:533::-;;;;;;:::i;:::-;;:::i;3682:400::-;;;;;;:::i;:::-;;:::i;909:44::-;;;;;;;;4878:42:54;4866:55;;;4848:74;;4836:2;4821:18;909:44:36;4670:258:54;1160:39:36;;;;;;:::i;:::-;;:::i;4267:406::-;4335:14;4352:17;4370:5;4352:24;;;;;;;;:::i;:::-;;;;;;;;;:31;;-1:-1:-1;4393:226:36;4413:6;4409:1;:10;4393:226;;;4440:28;4471:17;4489:5;4471:24;;;;;;;;:::i;:::-;;;;;;;;4496:1;4471:27;;;;;;;;:::i;:::-;;;;;;;;;;4440:58;;;;;;;;;4471:27;;;;;4440:58;;;;;;;;;;;;;4471:27;;4440:58;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4440:58:36;;;-1:-1:-1;;4440:58:36;;;;;;;;;;;;;;;4537:26;;4565:22;;;;4589:18;;;;;4512:96;;;;;4440:58;;-1:-1:-1;4512:3:36;:24;;;;;;:96;;4537:26;;4565:22;4512:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4426:193;4421:3;;;;;4393:226;;;-1:-1:-1;4634:32:36;;5710:25:54;;;4634:32:36;;5698:2:54;5683:18;4634:32:36;;;;;;;;4325:348;4267:406;:::o;1037:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1037:38:36;;-1:-1:-1;1037:38:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1037:38:36;;;;;;;-1:-1:-1;;1037:38:36;;;:::o;2961:538::-;3048:12;:19;3071:1;3048:24;3044:80;;3095:18;;;;;;;;;;;;;;3044:80;3150:17;:24;;3184;;;;;3134:13;3184:24;;;3150;3219:229;3239:12;:19;3235:1;:23;3219:229;;;3279:17;3297:5;3279:24;;;;;;;;:::i;:::-;;;;;;;;3326:97;;;;;;;;3337:12;3350:1;3337:15;;;;;;;;:::i;:::-;;;;;;;:31;;;3326:97;;;;;;3370:12;3383:1;3370:15;;;;;;;;:::i;:::-;;;;;;;:27;;;3326:97;;;;3399:12;3412:1;3399:15;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;3326:97;;;;;;;3279:158;;;;;;;;-1:-1:-1;3279:158:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3279:158:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3260:3:36;3219:229;;;-1:-1:-1;3463:29:36;;5710:25:54;;;3463:29:36;;5698:2:54;5683:18;3463:29:36;5564:177:54;2253:533:36;2339:12;:19;2362:1;2339:24;2335:80;;2386:18;;;;;;;;;;;;;;2335:80;2425:13;2441:23;;2474;;;;;;;;2441;2508:228;2528:12;:19;2524:1;:23;2508:228;;;2568:16;2585:5;2568:23;;;;;;;;:::i;:::-;;;;;;;;2614:97;;;;;;;;2625:12;2638:1;2625:15;;;;;;;;:::i;:::-;;;;;;;:31;;;2614:97;;;;;;2658:12;2671:1;2658:15;;;;;;;;:::i;:::-;;;;;;;:27;;;2614:97;;;;2687:12;2700:1;2687:15;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;2614:97;;;;;;;2568:157;;;;;;;;-1:-1:-1;2568:157:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2568:157:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2549:3:36;2508:228;;;-1:-1:-1;2751:28:36;;5710:25:54;;;2751:28:36;;5698:2:54;5683:18;2751:28:36;5564:177:54;3682:400:36;3749:14;3766:16;3783:5;3766:23;;;;;;;;:::i;:::-;;;;;;;;;:30;;-1:-1:-1;3806:223:36;3826:6;3822:1;:10;3806:223;;;3853:28;3884:16;3901:5;3884:23;;;;;;;;:::i;:::-;;;;;;;;3908:1;3884:26;;;;;;;;:::i;:::-;;;;;;;;;;3853:57;;;;;;;;;3884:26;;;;;3853:57;;;;;;;;;;;;;3884:26;;3853:57;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3853:57:36;;;-1:-1:-1;;3853:57:36;;;;;;;;;;;;;;;3947:26;;3975:22;;;;3999:18;;;;;3924:94;;;;;3853:57;;-1:-1:-1;3924:3:36;:22;;;;;;:94;;3947:26;;3975:22;3924:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3839:190;3834:3;;;;;3806:223;;;-1:-1:-1;4044:31:36;;5710:25:54;;;4044:31:36;;5698:2:54;5683:18;4044:31:36;5564:177:54;1160:39:36;;;;;;;;;;;;14:180:54;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:54;;14:180;-1:-1:-1;14:180:54:o;199:248::-;267:6;275;328:2;316:9;307:7;303:23;299:32;296:52;;;344:1;341;334:12;296:52;-1:-1:-1;;367:23:54;;;437:2;422:18;;;409:32;;-1:-1:-1;199:248:54:o;452:831::-;620:4;649:42;730:2;722:6;718:15;707:9;700:34;753:2;791;786;775:9;771:18;764:30;823:6;817:13;866:6;861:2;850:9;846:18;839:34;891:1;901:141;915:6;912:1;909:13;901:141;;;1011:14;;;1007:23;;1001:30;976:17;;;995:3;972:27;965:67;930:10;;901:141;;;905:3;1092:1;1086:3;1077:6;1066:9;1062:22;1058:32;1051:43;1221:3;1151:66;1146:2;1138:6;1134:15;1130:88;1119:9;1115:104;1111:114;1103:122;;;;1273:2;1265:6;1261:15;1256:2;1245:9;1241:18;1234:43;;452:831;;;;;;:::o;1288:184::-;1340:77;1337:1;1330:88;1437:4;1434:1;1427:15;1461:4;1458:1;1451:15;1477:253;1549:2;1543:9;1591:4;1579:17;;1626:18;1611:34;;1647:22;;;1608:62;1605:88;;;1673:18;;:::i;:::-;1709:2;1702:22;1477:253;:::o;1735:334::-;1806:2;1800:9;1862:2;1852:13;;1867:66;1848:86;1836:99;;1965:18;1950:34;;1986:22;;;1947:62;1944:88;;;2012:18;;:::i;:::-;2048:2;2041:22;1735:334;;-1:-1:-1;1735:334:54:o;2074:196::-;2142:20;;2202:42;2191:54;;2181:65;;2171:93;;2260:1;2257;2250:12;2171:93;2074:196;;;:::o;2275:2390::-;2387:6;2418:2;2461;2449:9;2440:7;2436:23;2432:32;2429:52;;;2477:1;2474;2467:12;2429:52;2517:9;2504:23;2546:18;2587:2;2579:6;2576:14;2573:34;;;2603:1;2600;2593:12;2573:34;2641:6;2630:9;2626:22;2616:32;;2686:7;2679:4;2675:2;2671:13;2667:27;2657:55;;2708:1;2705;2698:12;2657:55;2744:2;2731:16;2766:2;2762;2759:10;2756:36;;;2772:18;;:::i;:::-;2818:2;2815:1;2811:10;2841:28;2865:2;2861;2857:11;2841:28;:::i;:::-;2903:15;;;2973:11;;;2969:20;;;2934:12;;;;3001:19;;;2998:39;;;3033:1;3030;3023:12;2998:39;3065:2;3061;3057:11;3046:22;;3077:1558;3093:6;3088:3;3085:15;3077:1558;;;3179:3;3166:17;3215:2;3202:11;3199:19;3196:39;;;3231:1;3228;3221:12;3196:39;3258:20;;3301:66;3414:4;3391:16;;;3387:25;;3383:36;3380:126;;;3460:1;3489:2;3485;3478:14;3380:126;3532:22;;:::i;:::-;3581:31;3608:2;3604;3600:11;3581:31;:::i;:::-;3574:5;3567:46;3636:2;3688;3684;3680:11;3667:25;3721:2;3711:8;3708:16;3705:109;;;3766:1;3796:3;3791;3784:16;3705:109;3838:17;;3891:2;3882:12;;3878:26;-1:-1:-1;3868:127:54;;3947:1;3977:3;3972;3965:16;3868:127;4041:2;4036:3;4032:12;4019:26;4069:2;4064:3;4061:11;4058:37;;;4075:18;;:::i;:::-;4121:49;4166:2;4161;4154:4;4149:3;4145:14;4141:23;4137:32;4121:49;:::i;:::-;4108:62;;4197:3;4190:5;4183:18;4244:7;4239:2;4233:3;4228;4224:13;4220:22;4217:35;4214:128;;;4294:1;4324:3;4319;4312:16;4214:128;4398:3;4393:2;4388:3;4384:12;4379:2;4372:5;4368:14;4355:47;4448:1;4443:2;4437:3;4430:5;4426:15;4422:24;4415:35;;;4486:5;4481:2;4474:5;4470:14;4463:29;4528:33;4555:4;4551:2;4547:13;4528:33;:::i;:::-;4512:14;;;4505:57;4575:18;;-1:-1:-1;;3110:12:54;;;;4613;;;;3077:1558;;;4654:5;2275:2390;-1:-1:-1;;;;;;;;;2275:2390:54:o;4933:184::-;4985:77;4982:1;4975:88;5082:4;5079:1;5072:15;5106:4;5103:1;5096:15;5122:437;5201:1;5197:12;;;;5244;;;5265:61;;5319:4;5311:6;5307:17;5297:27;;5265:61;5372:2;5364:6;5361:14;5341:18;5338:38;5335:218;;5409:77;5406:1;5399:88;5510:4;5507:1;5500:15;5538:4;5535:1;5528:15;5335:218;;5122:437;;;:::o;5872:543::-;5974:2;5969:3;5966:11;5963:446;;;6010:1;6034:5;6031:1;6024:16;6078:4;6075:1;6065:18;6148:2;6136:10;6132:19;6129:1;6125:27;6119:4;6115:38;6184:4;6172:10;6169:20;6166:47;;;-1:-1:-1;6207:4:54;6166:47;6262:2;6257:3;6253:12;6250:1;6246:20;6240:4;6236:31;6226:41;;6317:82;6335:2;6328:5;6325:13;6317:82;;;6380:17;;;6361:1;6350:13;6317:82;;;6321:3;;;5963:446;5872:543;;;:::o;6651:1464::-;6777:3;6771:10;6804:18;6796:6;6793:30;6790:56;;;6826:18;;:::i;:::-;6855:97;6945:6;6905:38;6937:4;6931:11;6905:38;:::i;:::-;6899:4;6855:97;:::i;:::-;7007:4;;7064:2;7053:14;;7081:1;7076:782;;;;7902:1;7919:6;7916:89;;;-1:-1:-1;7971:19:54;;;7965:26;7916:89;6557:66;6548:1;6544:11;;;6540:84;6536:89;6526:100;6632:1;6628:11;;;6523:117;8018:81;;7046:1063;;7076:782;5819:1;5812:14;;;5856:4;5843:18;;7124:66;7112:79;;;7289:236;7303:7;7300:1;7297:14;7289:236;;;7392:19;;;7386:26;7371:42;;7484:27;;;;7452:1;7440:14;;;;7319:19;;7289:236;;;7293:3;7553:6;7544:7;7541:19;7538:261;;;7614:19;;;7608:26;7715:66;7697:1;7693:14;;;7709:3;7689:24;7685:97;7681:102;7666:118;7651:134;;7538:261;-1:-1:-1;;;;;7845:1:54;7829:14;;;7825:22;7812:36;;-1:-1:-1;6651:1464:54:o"},"gasEstimates":{"creation":{"codeDepositCost":"820000","executionCost":"infinite","totalCost":"infinite"},"external":{"ACM()":"infinite","addGrantPermissions((address,string,address)[])":"infinite","addRevokePermissions((address,string,address)[])":"infinite","executeGrantPermissions(uint256)":"infinite","executeRevokePermissions(uint256)":"infinite","grantPermissions(uint256,uint256)":"infinite","revokePermissions(uint256,uint256)":"infinite"}},"methodIdentifiers":{"ACM()":"f9b80da1","addGrantPermissions((address,string,address)[])":"9d6c76b8","addRevokePermissions((address,string,address)[])":"5666a5ea","executeGrantPermissions(uint256)":"de46a235","executeRevokePermissions(uint256)":"22473d8c","grantPermissions(uint256,uint256)":"514aab87","revokePermissions(uint256,uint256)":"ff1575e1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"_acm\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyPermissions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"GrantPermissionsAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"GrantPermissionsExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"RevokePermissionsAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"RevokePermissionsExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACM\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"internalType\":\"struct ACMCommandsAggregator.Permission[]\",\"name\":\"_permissions\",\"type\":\"tuple[]\"}],\"name\":\"addGrantPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"internalType\":\"struct ACMCommandsAggregator.Permission[]\",\"name\":\"_permissions\",\"type\":\"tuple[]\"}],\"name\":\"addRevokePermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"executeGrantPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"executeRevokePermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"grantPermissions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"revokePermissions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{},\"title\":\"ACMCommandsAggregator\",\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"kind\":\"user\",\"methods\":{\"ACM()\":{\"notice\":\"Access control manager contract\"}},\"notice\":\"This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Utils/ACMCommandsAggregator.sol\":\"ACMCommandsAggregator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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/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/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/Utils/ACMCommandsAggregator.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IAccessControlManagerV8 } from \\\"../Governance/IAccessControlManagerV8.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title ACMCommandsAggregator\\n * @author Venus\\n * @notice This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go.\\n */\\ncontract ACMCommandsAggregator {\\n    /*\\n     * @notice Struct to store permission details\\n     */\\n    struct Permission {\\n        /*\\n         * @notice Address of the contract\\n         */\\n        address contractAddress;\\n        /*\\n         * @notice Function signature\\n         */\\n        string functionSig;\\n        /*\\n         * @notice Address of the account\\n         */\\n        address account;\\n    }\\n\\n    /**\\n     * @notice Access control manager contract\\n     */\\n    IAccessControlManagerV8 public immutable ACM;\\n\\n    /*\\n     * @notice 2D array to store grant permissions in batches\\n     */\\n    Permission[][] public grantPermissions;\\n\\n    /*\\n     * @notice 2D array to store revoke permissions in batches\\n     */\\n    Permission[][] public revokePermissions;\\n\\n    /*\\n     * @notice Event emitted when grant permissions are added\\n     */\\n    event GrantPermissionsAdded(uint256 index);\\n\\n    /*\\n     * @notice Event emitted when revoke permissions are added\\n     */\\n    event RevokePermissionsAdded(uint256 index);\\n\\n    /*\\n     * @notice Event emitted when grant permissions are executed\\n     */\\n    event GrantPermissionsExecuted(uint256 index);\\n\\n    /*\\n     * @notice Event emitted when revoke permissions are executed\\n     */\\n    event RevokePermissionsExecuted(uint256 index);\\n\\n    /*\\n     * @notice Error to be thrown when permissions are empty\\n     */\\n    error EmptyPermissions();\\n\\n    /*\\n     * @notice Constructor to set the access control manager\\n     * @param _acm Address of the access control manager\\n     */\\n    constructor(IAccessControlManagerV8 _acm) {\\n        ensureNonzeroAddress(address(_acm));\\n        ACM = _acm;\\n    }\\n\\n    /*\\n     * @notice Function to add grant permissions\\n     * @param _permissions Array of permissions\\n     * @custom:event Emits GrantPermissionsAdded event\\n     */\\n    function addGrantPermissions(Permission[] memory _permissions) external {\\n        if (_permissions.length == 0) {\\n            revert EmptyPermissions();\\n        }\\n\\n        uint256 index = grantPermissions.length;\\n        grantPermissions.push();\\n\\n        for (uint256 i; i < _permissions.length; ++i) {\\n            grantPermissions[index].push(\\n                Permission(_permissions[i].contractAddress, _permissions[i].functionSig, _permissions[i].account)\\n            );\\n        }\\n\\n        emit GrantPermissionsAdded(index);\\n    }\\n\\n    /*\\n     * @notice Function to add revoke permissions\\n     * @param _permissions Array of permissions\\n     * @custom:event Emits RevokePermissionsAdded event\\n     */\\n    function addRevokePermissions(Permission[] memory _permissions) external {\\n        if (_permissions.length == 0) {\\n            revert EmptyPermissions();\\n        }\\n\\n        uint256 index = revokePermissions.length;\\n        revokePermissions.push();\\n\\n        for (uint256 i; i < _permissions.length; ++i) {\\n            revokePermissions[index].push(\\n                Permission(_permissions[i].contractAddress, _permissions[i].functionSig, _permissions[i].account)\\n            );\\n        }\\n\\n        emit RevokePermissionsAdded(index);\\n    }\\n\\n    /*\\n     * @notice Function to execute grant permissions\\n     * @param index Index of the permissions array\\n     * @custom:event Emits GrantPermissionsExecuted event\\n     */\\n    function executeGrantPermissions(uint256 index) external {\\n        uint256 length = grantPermissions[index].length;\\n        for (uint256 i; i < length; ++i) {\\n            Permission memory permission = grantPermissions[index][i];\\n            ACM.giveCallPermission(permission.contractAddress, permission.functionSig, permission.account);\\n        }\\n\\n        emit GrantPermissionsExecuted(index);\\n    }\\n\\n    /*\\n     * @notice Function to execute revoke permissions\\n     * @param index Index of the permissions array\\n     * @custom:event Emits RevokePermissionsExecuted event\\n     */\\n    function executeRevokePermissions(uint256 index) external {\\n        uint256 length = revokePermissions[index].length;\\n        for (uint256 i; i < length; ++i) {\\n            Permission memory permission = revokePermissions[index][i];\\n            ACM.revokeCallPermission(permission.contractAddress, permission.functionSig, permission.account);\\n        }\\n\\n        emit RevokePermissionsExecuted(index);\\n    }\\n}\\n\",\"keccak256\":\"0xe642b8f0e0fedc74d31196197bc7d78b43b44eab556c07ec74d6b75ccf8d0f8c\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8955,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"grantPermissions","offset":0,"slot":"0","type":"t_array(t_array(t_struct(Permission)8946_storage)dyn_storage)dyn_storage"},{"astId":8960,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"revokePermissions","offset":0,"slot":"1","type":"t_array(t_array(t_struct(Permission)8946_storage)dyn_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_array(t_struct(Permission)8946_storage)dyn_storage)dyn_storage":{"base":"t_array(t_struct(Permission)8946_storage)dyn_storage","encoding":"dynamic_array","label":"struct ACMCommandsAggregator.Permission[][]","numberOfBytes":"32"},"t_array(t_struct(Permission)8946_storage)dyn_storage":{"base":"t_struct(Permission)8946_storage","encoding":"dynamic_array","label":"struct ACMCommandsAggregator.Permission[]","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Permission)8946_storage":{"encoding":"inplace","label":"struct ACMCommandsAggregator.Permission","members":[{"astId":8941,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"contractAddress","offset":0,"slot":"0","type":"t_address"},{"astId":8943,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"functionSig","offset":0,"slot":"1","type":"t_string_storage"},{"astId":8945,"contract":"contracts/Utils/ACMCommandsAggregator.sol:ACMCommandsAggregator","label":"account","offset":0,"slot":"2","type":"t_address"}],"numberOfBytes":"96"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"kind":"user","methods":{"ACM()":{"notice":"Access control manager contract"}},"notice":"This contract is a helper to aggregate multiple grant and revoke permissions in batches and execute them in one go.","version":1}}},"contracts/test/MockAccessTest.sol":{"MockAccessTest":{"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":[{"internalType":"address","name":"accessControlManager","type":"address"}],"name":"initialize","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":"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":{"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."},"initialize(address)":{"params":{"accessControlManager":"Access control manager contract address"}},"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 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."},"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."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506107d08061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b4a0bdf31161005b578063b4a0bdf3146100f5578063c4d66de814610113578063e30c397814610126578063f2fde38b1461014457600080fd5b80630e32cb861461008d578063715018a6146100a257806379ba5097146100aa5780638da5cb5b146100b2575b600080fd5b6100a061009b36600461075d565b610157565b005b6100a061016b565b6100a061017f565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60975473ffffffffffffffffffffffffffffffffffffffff166100cc565b6100a061012136600461075d565b610236565b60655473ffffffffffffffffffffffffffffffffffffffff166100cc565b6100a061015236600461075d565b6103cb565b61015f61047b565b610168816104fc565b50565b61017361047b565b61017d600061061e565b565b606554339073ffffffffffffffffffffffffffffffffffffffff16811461022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101688161061e565b600054610100900460ff16158080156102565750600054600160ff909116105b806102705750303b158015610270575060005460ff166001145b6102fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561035a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103638261064f565b80156103c757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b6103d361047b565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561043660335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff16331461017d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610224565b73ffffffffffffffffffffffffffffffffffffffff811661059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610224565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016103be565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610168816106e6565b600054610100900460ff1661015f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006020828403121561076f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461079357600080fd5b939250505056fea2646970667358221220256552adba942d224ca7e03e641e48a402219bd68eb1527584bfa875779772dd64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7D0 DUP1 PUSH2 0x1F 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 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x157 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA0 PUSH2 0x16B JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x17F JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x121 CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x236 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST PUSH2 0x15F PUSH2 0x47B JUMP JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x4FC JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x173 PUSH2 0x47B JUMP JUMPDEST PUSH2 0x17D PUSH1 0x0 PUSH2 0x61E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x22D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x61E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x256 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x270 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x270 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x2FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x35A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x363 DUP3 PUSH2 0x64F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x47B JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x436 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x17D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x224 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x59F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x3BE JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x168 DUP2 PUSH2 0x6E6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x76F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x793 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 PUSH6 0x52ADBA942D22 0x4C 0xA7 0xE0 RETURNDATACOPY PUSH5 0x1E48A40221 SWAP12 0xD6 DUP15 0xB1 MSTORE PUSH22 0x84BFA875779772DD64736F6C63430008190033000000 ","sourceMap":"198:288:39:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__AccessControlled_init_unchained_8252":{"entryPoint":1615,"id":8252,"parameterSlots":1,"returnSlots":0},"@_checkOwner_3120":{"entryPoint":1147,"id":3120,"parameterSlots":0,"returnSlots":0},"@_msgSender_3663":{"entryPoint":null,"id":3663,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_8313":{"entryPoint":1276,"id":8313,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_3023":{"entryPoint":1566,"id":3023,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_3177":{"entryPoint":1766,"id":3177,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_3045":{"entryPoint":383,"id":3045,"parameterSlots":0,"returnSlots":0},"@accessControlManager_8275":{"entryPoint":null,"id":8275,"parameterSlots":0,"returnSlots":1},"@initialize_9244":{"entryPoint":566,"id":9244,"parameterSlots":1,"returnSlots":0},"@isContract_3370":{"entryPoint":null,"id":3370,"parameterSlots":1,"returnSlots":1},"@owner_3106":{"entryPoint":null,"id":3106,"parameterSlots":0,"returnSlots":1},"@pendingOwner_2986":{"entryPoint":null,"id":2986,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_3134":{"entryPoint":363,"id":3134,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_8265":{"entryPoint":343,"id":8265,"parameterSlots":1,"returnSlots":0},"@transferOwnership_3006":{"entryPoint":971,"id":3006,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":1885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:3354:54","nodeType":"YulBlock","src":"0:3354:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"84:239:54","nodeType":"YulBlock","src":"84:239:54","statements":[{"body":{"nativeSrc":"130:16:54","nodeType":"YulBlock","src":"130:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"139:1:54","nodeType":"YulLiteral","src":"139:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"142:1:54","nodeType":"YulLiteral","src":"142:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"132:6:54","nodeType":"YulIdentifier","src":"132:6:54"},"nativeSrc":"132:12:54","nodeType":"YulFunctionCall","src":"132:12:54"},"nativeSrc":"132:12:54","nodeType":"YulExpressionStatement","src":"132:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"105:7:54","nodeType":"YulIdentifier","src":"105:7:54"},{"name":"headStart","nativeSrc":"114:9:54","nodeType":"YulIdentifier","src":"114:9:54"}],"functionName":{"name":"sub","nativeSrc":"101:3:54","nodeType":"YulIdentifier","src":"101:3:54"},"nativeSrc":"101:23:54","nodeType":"YulFunctionCall","src":"101:23:54"},{"kind":"number","nativeSrc":"126:2:54","nodeType":"YulLiteral","src":"126:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"97:3:54","nodeType":"YulIdentifier","src":"97:3:54"},"nativeSrc":"97:32:54","nodeType":"YulFunctionCall","src":"97:32:54"},"nativeSrc":"94:52:54","nodeType":"YulIf","src":"94:52:54"},{"nativeSrc":"155:36:54","nodeType":"YulVariableDeclaration","src":"155:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"181:9:54","nodeType":"YulIdentifier","src":"181:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"168:12:54","nodeType":"YulIdentifier","src":"168:12:54"},"nativeSrc":"168:23:54","nodeType":"YulFunctionCall","src":"168:23:54"},"variables":[{"name":"value","nativeSrc":"159:5:54","nodeType":"YulTypedName","src":"159:5:54","type":""}]},{"body":{"nativeSrc":"277:16:54","nodeType":"YulBlock","src":"277:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"286:1:54","nodeType":"YulLiteral","src":"286:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"289:1:54","nodeType":"YulLiteral","src":"289:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"279:6:54","nodeType":"YulIdentifier","src":"279:6:54"},"nativeSrc":"279:12:54","nodeType":"YulFunctionCall","src":"279:12:54"},"nativeSrc":"279:12:54","nodeType":"YulExpressionStatement","src":"279:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"213:5:54","nodeType":"YulIdentifier","src":"213:5:54"},{"arguments":[{"name":"value","nativeSrc":"224:5:54","nodeType":"YulIdentifier","src":"224:5:54"},{"kind":"number","nativeSrc":"231:42:54","nodeType":"YulLiteral","src":"231:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"220:3:54","nodeType":"YulIdentifier","src":"220:3:54"},"nativeSrc":"220:54:54","nodeType":"YulFunctionCall","src":"220:54:54"}],"functionName":{"name":"eq","nativeSrc":"210:2:54","nodeType":"YulIdentifier","src":"210:2:54"},"nativeSrc":"210:65:54","nodeType":"YulFunctionCall","src":"210:65:54"}],"functionName":{"name":"iszero","nativeSrc":"203:6:54","nodeType":"YulIdentifier","src":"203:6:54"},"nativeSrc":"203:73:54","nodeType":"YulFunctionCall","src":"203:73:54"},"nativeSrc":"200:93:54","nodeType":"YulIf","src":"200:93:54"},{"nativeSrc":"302:15:54","nodeType":"YulAssignment","src":"302:15:54","value":{"name":"value","nativeSrc":"312:5:54","nodeType":"YulIdentifier","src":"312:5:54"},"variableNames":[{"name":"value0","nativeSrc":"302:6:54","nodeType":"YulIdentifier","src":"302:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"14:309:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50:9:54","nodeType":"YulTypedName","src":"50:9:54","type":""},{"name":"dataEnd","nativeSrc":"61:7:54","nodeType":"YulTypedName","src":"61:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"73:6:54","nodeType":"YulTypedName","src":"73:6:54","type":""}],"src":"14:309:54"},{"body":{"nativeSrc":"429:125:54","nodeType":"YulBlock","src":"429:125:54","statements":[{"nativeSrc":"439:26:54","nodeType":"YulAssignment","src":"439:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"451:9:54","nodeType":"YulIdentifier","src":"451:9:54"},{"kind":"number","nativeSrc":"462:2:54","nodeType":"YulLiteral","src":"462:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"447:3:54","nodeType":"YulIdentifier","src":"447:3:54"},"nativeSrc":"447:18:54","nodeType":"YulFunctionCall","src":"447:18:54"},"variableNames":[{"name":"tail","nativeSrc":"439:4:54","nodeType":"YulIdentifier","src":"439:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"481:9:54","nodeType":"YulIdentifier","src":"481:9:54"},{"arguments":[{"name":"value0","nativeSrc":"496:6:54","nodeType":"YulIdentifier","src":"496:6:54"},{"kind":"number","nativeSrc":"504:42:54","nodeType":"YulLiteral","src":"504:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"492:3:54","nodeType":"YulIdentifier","src":"492:3:54"},"nativeSrc":"492:55:54","nodeType":"YulFunctionCall","src":"492:55:54"}],"functionName":{"name":"mstore","nativeSrc":"474:6:54","nodeType":"YulIdentifier","src":"474:6:54"},"nativeSrc":"474:74:54","nodeType":"YulFunctionCall","src":"474:74:54"},"nativeSrc":"474:74:54","nodeType":"YulExpressionStatement","src":"474:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"328:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"398:9:54","nodeType":"YulTypedName","src":"398:9:54","type":""},{"name":"value0","nativeSrc":"409:6:54","nodeType":"YulTypedName","src":"409:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"420:4:54","nodeType":"YulTypedName","src":"420:4:54","type":""}],"src":"328:226:54"},{"body":{"nativeSrc":"692:125:54","nodeType":"YulBlock","src":"692:125:54","statements":[{"nativeSrc":"702:26:54","nodeType":"YulAssignment","src":"702:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"714:9:54","nodeType":"YulIdentifier","src":"714:9:54"},{"kind":"number","nativeSrc":"725:2:54","nodeType":"YulLiteral","src":"725:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"710:3:54","nodeType":"YulIdentifier","src":"710:3:54"},"nativeSrc":"710:18:54","nodeType":"YulFunctionCall","src":"710:18:54"},"variableNames":[{"name":"tail","nativeSrc":"702:4:54","nodeType":"YulIdentifier","src":"702:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"744:9:54","nodeType":"YulIdentifier","src":"744:9:54"},{"arguments":[{"name":"value0","nativeSrc":"759:6:54","nodeType":"YulIdentifier","src":"759:6:54"},{"kind":"number","nativeSrc":"767:42:54","nodeType":"YulLiteral","src":"767:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"755:3:54","nodeType":"YulIdentifier","src":"755:3:54"},"nativeSrc":"755:55:54","nodeType":"YulFunctionCall","src":"755:55:54"}],"functionName":{"name":"mstore","nativeSrc":"737:6:54","nodeType":"YulIdentifier","src":"737:6:54"},"nativeSrc":"737:74:54","nodeType":"YulFunctionCall","src":"737:74:54"},"nativeSrc":"737:74:54","nodeType":"YulExpressionStatement","src":"737:74:54"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed","nativeSrc":"559:258:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"661:9:54","nodeType":"YulTypedName","src":"661:9:54","type":""},{"name":"value0","nativeSrc":"672:6:54","nodeType":"YulTypedName","src":"672:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"683:4:54","nodeType":"YulTypedName","src":"683:4:54","type":""}],"src":"559:258:54"},{"body":{"nativeSrc":"996:231:54","nodeType":"YulBlock","src":"996:231:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1013:9:54","nodeType":"YulIdentifier","src":"1013:9:54"},{"kind":"number","nativeSrc":"1024:2:54","nodeType":"YulLiteral","src":"1024:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1006:6:54","nodeType":"YulIdentifier","src":"1006:6:54"},"nativeSrc":"1006:21:54","nodeType":"YulFunctionCall","src":"1006:21:54"},"nativeSrc":"1006:21:54","nodeType":"YulExpressionStatement","src":"1006:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1047:9:54","nodeType":"YulIdentifier","src":"1047:9:54"},{"kind":"number","nativeSrc":"1058:2:54","nodeType":"YulLiteral","src":"1058:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1043:3:54","nodeType":"YulIdentifier","src":"1043:3:54"},"nativeSrc":"1043:18:54","nodeType":"YulFunctionCall","src":"1043:18:54"},{"kind":"number","nativeSrc":"1063:2:54","nodeType":"YulLiteral","src":"1063:2:54","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"1036:6:54","nodeType":"YulIdentifier","src":"1036:6:54"},"nativeSrc":"1036:30:54","nodeType":"YulFunctionCall","src":"1036:30:54"},"nativeSrc":"1036:30:54","nodeType":"YulExpressionStatement","src":"1036:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1086:9:54","nodeType":"YulIdentifier","src":"1086:9:54"},{"kind":"number","nativeSrc":"1097:2:54","nodeType":"YulLiteral","src":"1097:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1082:3:54","nodeType":"YulIdentifier","src":"1082:3:54"},"nativeSrc":"1082:18:54","nodeType":"YulFunctionCall","src":"1082:18:54"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"1102:34:54","nodeType":"YulLiteral","src":"1102:34:54","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"1075:6:54","nodeType":"YulIdentifier","src":"1075:6:54"},"nativeSrc":"1075:62:54","nodeType":"YulFunctionCall","src":"1075:62:54"},"nativeSrc":"1075:62:54","nodeType":"YulExpressionStatement","src":"1075:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1157:9:54","nodeType":"YulIdentifier","src":"1157:9:54"},{"kind":"number","nativeSrc":"1168:2:54","nodeType":"YulLiteral","src":"1168:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1153:3:54","nodeType":"YulIdentifier","src":"1153:3:54"},"nativeSrc":"1153:18:54","nodeType":"YulFunctionCall","src":"1153:18:54"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"1173:11:54","nodeType":"YulLiteral","src":"1173:11:54","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"1146:6:54","nodeType":"YulIdentifier","src":"1146:6:54"},"nativeSrc":"1146:39:54","nodeType":"YulFunctionCall","src":"1146:39:54"},"nativeSrc":"1146:39:54","nodeType":"YulExpressionStatement","src":"1146:39:54"},{"nativeSrc":"1194:27:54","nodeType":"YulAssignment","src":"1194:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1206:9:54","nodeType":"YulIdentifier","src":"1206:9:54"},{"kind":"number","nativeSrc":"1217:3:54","nodeType":"YulLiteral","src":"1217:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1202:3:54","nodeType":"YulIdentifier","src":"1202:3:54"},"nativeSrc":"1202:19:54","nodeType":"YulFunctionCall","src":"1202:19:54"},"variableNames":[{"name":"tail","nativeSrc":"1194:4:54","nodeType":"YulIdentifier","src":"1194:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"822:405:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"973:9:54","nodeType":"YulTypedName","src":"973:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"987:4:54","nodeType":"YulTypedName","src":"987:4:54","type":""}],"src":"822:405:54"},{"body":{"nativeSrc":"1406:236:54","nodeType":"YulBlock","src":"1406:236:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1423:9:54","nodeType":"YulIdentifier","src":"1423:9:54"},{"kind":"number","nativeSrc":"1434:2:54","nodeType":"YulLiteral","src":"1434:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1416:6:54","nodeType":"YulIdentifier","src":"1416:6:54"},"nativeSrc":"1416:21:54","nodeType":"YulFunctionCall","src":"1416:21:54"},"nativeSrc":"1416:21:54","nodeType":"YulExpressionStatement","src":"1416:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1457:9:54","nodeType":"YulIdentifier","src":"1457:9:54"},{"kind":"number","nativeSrc":"1468:2:54","nodeType":"YulLiteral","src":"1468:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1453:3:54","nodeType":"YulIdentifier","src":"1453:3:54"},"nativeSrc":"1453:18:54","nodeType":"YulFunctionCall","src":"1453:18:54"},{"kind":"number","nativeSrc":"1473:2:54","nodeType":"YulLiteral","src":"1473:2:54","type":"","value":"46"}],"functionName":{"name":"mstore","nativeSrc":"1446:6:54","nodeType":"YulIdentifier","src":"1446:6:54"},"nativeSrc":"1446:30:54","nodeType":"YulFunctionCall","src":"1446:30:54"},"nativeSrc":"1446:30:54","nodeType":"YulExpressionStatement","src":"1446:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1496:9:54","nodeType":"YulIdentifier","src":"1496:9:54"},{"kind":"number","nativeSrc":"1507:2:54","nodeType":"YulLiteral","src":"1507:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1492:3:54","nodeType":"YulIdentifier","src":"1492:3:54"},"nativeSrc":"1492:18:54","nodeType":"YulFunctionCall","src":"1492:18:54"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"1512:34:54","nodeType":"YulLiteral","src":"1512:34:54","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"1485:6:54","nodeType":"YulIdentifier","src":"1485:6:54"},"nativeSrc":"1485:62:54","nodeType":"YulFunctionCall","src":"1485:62:54"},"nativeSrc":"1485:62:54","nodeType":"YulExpressionStatement","src":"1485:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1567:9:54","nodeType":"YulIdentifier","src":"1567:9:54"},{"kind":"number","nativeSrc":"1578:2:54","nodeType":"YulLiteral","src":"1578:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1563:3:54","nodeType":"YulIdentifier","src":"1563:3:54"},"nativeSrc":"1563:18:54","nodeType":"YulFunctionCall","src":"1563:18:54"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"1583:16:54","nodeType":"YulLiteral","src":"1583:16:54","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"1556:6:54","nodeType":"YulIdentifier","src":"1556:6:54"},"nativeSrc":"1556:44:54","nodeType":"YulFunctionCall","src":"1556:44:54"},"nativeSrc":"1556:44:54","nodeType":"YulExpressionStatement","src":"1556:44:54"},{"nativeSrc":"1609:27:54","nodeType":"YulAssignment","src":"1609:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1621:9:54","nodeType":"YulIdentifier","src":"1621:9:54"},{"kind":"number","nativeSrc":"1632:3:54","nodeType":"YulLiteral","src":"1632:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1617:3:54","nodeType":"YulIdentifier","src":"1617:3:54"},"nativeSrc":"1617:19:54","nodeType":"YulFunctionCall","src":"1617:19:54"},"variableNames":[{"name":"tail","nativeSrc":"1609:4:54","nodeType":"YulIdentifier","src":"1609:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1232:410:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1383:9:54","nodeType":"YulTypedName","src":"1383:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1397:4:54","nodeType":"YulTypedName","src":"1397:4:54","type":""}],"src":"1232:410:54"},{"body":{"nativeSrc":"1754:87:54","nodeType":"YulBlock","src":"1754:87:54","statements":[{"nativeSrc":"1764:26:54","nodeType":"YulAssignment","src":"1764:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1776:9:54","nodeType":"YulIdentifier","src":"1776:9:54"},{"kind":"number","nativeSrc":"1787:2:54","nodeType":"YulLiteral","src":"1787:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1772:3:54","nodeType":"YulIdentifier","src":"1772:3:54"},"nativeSrc":"1772:18:54","nodeType":"YulFunctionCall","src":"1772:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1764:4:54","nodeType":"YulIdentifier","src":"1764:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1806:9:54","nodeType":"YulIdentifier","src":"1806:9:54"},{"arguments":[{"name":"value0","nativeSrc":"1821:6:54","nodeType":"YulIdentifier","src":"1821:6:54"},{"kind":"number","nativeSrc":"1829:4:54","nodeType":"YulLiteral","src":"1829:4:54","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"1817:3:54","nodeType":"YulIdentifier","src":"1817:3:54"},"nativeSrc":"1817:17:54","nodeType":"YulFunctionCall","src":"1817:17:54"}],"functionName":{"name":"mstore","nativeSrc":"1799:6:54","nodeType":"YulIdentifier","src":"1799:6:54"},"nativeSrc":"1799:36:54","nodeType":"YulFunctionCall","src":"1799:36:54"},"nativeSrc":"1799:36:54","nodeType":"YulExpressionStatement","src":"1799:36:54"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"1647:194:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1723:9:54","nodeType":"YulTypedName","src":"1723:9:54","type":""},{"name":"value0","nativeSrc":"1734:6:54","nodeType":"YulTypedName","src":"1734:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1745:4:54","nodeType":"YulTypedName","src":"1745:4:54","type":""}],"src":"1647:194:54"},{"body":{"nativeSrc":"2020:182:54","nodeType":"YulBlock","src":"2020:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2037:9:54","nodeType":"YulIdentifier","src":"2037:9:54"},{"kind":"number","nativeSrc":"2048:2:54","nodeType":"YulLiteral","src":"2048:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2030:6:54","nodeType":"YulIdentifier","src":"2030:6:54"},"nativeSrc":"2030:21:54","nodeType":"YulFunctionCall","src":"2030:21:54"},"nativeSrc":"2030:21:54","nodeType":"YulExpressionStatement","src":"2030:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2071:9:54","nodeType":"YulIdentifier","src":"2071:9:54"},{"kind":"number","nativeSrc":"2082:2:54","nodeType":"YulLiteral","src":"2082:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2067:3:54","nodeType":"YulIdentifier","src":"2067:3:54"},"nativeSrc":"2067:18:54","nodeType":"YulFunctionCall","src":"2067:18:54"},{"kind":"number","nativeSrc":"2087:2:54","nodeType":"YulLiteral","src":"2087:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2060:6:54","nodeType":"YulIdentifier","src":"2060:6:54"},"nativeSrc":"2060:30:54","nodeType":"YulFunctionCall","src":"2060:30:54"},"nativeSrc":"2060:30:54","nodeType":"YulExpressionStatement","src":"2060:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2110:9:54","nodeType":"YulIdentifier","src":"2110:9:54"},{"kind":"number","nativeSrc":"2121:2:54","nodeType":"YulLiteral","src":"2121:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2106:3:54","nodeType":"YulIdentifier","src":"2106:3:54"},"nativeSrc":"2106:18:54","nodeType":"YulFunctionCall","src":"2106:18:54"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"2126:34:54","nodeType":"YulLiteral","src":"2126:34:54","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"2099:6:54","nodeType":"YulIdentifier","src":"2099:6:54"},"nativeSrc":"2099:62:54","nodeType":"YulFunctionCall","src":"2099:62:54"},"nativeSrc":"2099:62:54","nodeType":"YulExpressionStatement","src":"2099:62:54"},{"nativeSrc":"2170:26:54","nodeType":"YulAssignment","src":"2170:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2182:9:54","nodeType":"YulIdentifier","src":"2182:9:54"},{"kind":"number","nativeSrc":"2193:2:54","nodeType":"YulLiteral","src":"2193:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2178:3:54","nodeType":"YulIdentifier","src":"2178:3:54"},"nativeSrc":"2178:18:54","nodeType":"YulFunctionCall","src":"2178:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2170:4:54","nodeType":"YulIdentifier","src":"2170:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1846:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1997:9:54","nodeType":"YulTypedName","src":"1997:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2011:4:54","nodeType":"YulTypedName","src":"2011:4:54","type":""}],"src":"1846:356:54"},{"body":{"nativeSrc":"2381:227:54","nodeType":"YulBlock","src":"2381:227:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2398:9:54","nodeType":"YulIdentifier","src":"2398:9:54"},{"kind":"number","nativeSrc":"2409:2:54","nodeType":"YulLiteral","src":"2409:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2391:6:54","nodeType":"YulIdentifier","src":"2391:6:54"},"nativeSrc":"2391:21:54","nodeType":"YulFunctionCall","src":"2391:21:54"},"nativeSrc":"2391:21:54","nodeType":"YulExpressionStatement","src":"2391:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2432:9:54","nodeType":"YulIdentifier","src":"2432:9:54"},{"kind":"number","nativeSrc":"2443:2:54","nodeType":"YulLiteral","src":"2443:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2428:3:54","nodeType":"YulIdentifier","src":"2428:3:54"},"nativeSrc":"2428:18:54","nodeType":"YulFunctionCall","src":"2428:18:54"},{"kind":"number","nativeSrc":"2448:2:54","nodeType":"YulLiteral","src":"2448:2:54","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"2421:6:54","nodeType":"YulIdentifier","src":"2421:6:54"},"nativeSrc":"2421:30:54","nodeType":"YulFunctionCall","src":"2421:30:54"},"nativeSrc":"2421:30:54","nodeType":"YulExpressionStatement","src":"2421:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2471:9:54","nodeType":"YulIdentifier","src":"2471:9:54"},{"kind":"number","nativeSrc":"2482:2:54","nodeType":"YulLiteral","src":"2482:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2467:3:54","nodeType":"YulIdentifier","src":"2467:3:54"},"nativeSrc":"2467:18:54","nodeType":"YulFunctionCall","src":"2467:18:54"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"2487:34:54","nodeType":"YulLiteral","src":"2487:34:54","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"2460:6:54","nodeType":"YulIdentifier","src":"2460:6:54"},"nativeSrc":"2460:62:54","nodeType":"YulFunctionCall","src":"2460:62:54"},"nativeSrc":"2460:62:54","nodeType":"YulExpressionStatement","src":"2460:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2542:9:54","nodeType":"YulIdentifier","src":"2542:9:54"},{"kind":"number","nativeSrc":"2553:2:54","nodeType":"YulLiteral","src":"2553:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2538:3:54","nodeType":"YulIdentifier","src":"2538:3:54"},"nativeSrc":"2538:18:54","nodeType":"YulFunctionCall","src":"2538:18:54"},{"hexValue":"6472657373","kind":"string","nativeSrc":"2558:7:54","nodeType":"YulLiteral","src":"2558:7:54","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"2531:6:54","nodeType":"YulIdentifier","src":"2531:6:54"},"nativeSrc":"2531:35:54","nodeType":"YulFunctionCall","src":"2531:35:54"},"nativeSrc":"2531:35:54","nodeType":"YulExpressionStatement","src":"2531:35:54"},{"nativeSrc":"2575:27:54","nodeType":"YulAssignment","src":"2575:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2587:9:54","nodeType":"YulIdentifier","src":"2587:9:54"},{"kind":"number","nativeSrc":"2598:3:54","nodeType":"YulLiteral","src":"2598:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2583:3:54","nodeType":"YulIdentifier","src":"2583:3:54"},"nativeSrc":"2583:19:54","nodeType":"YulFunctionCall","src":"2583:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2575:4:54","nodeType":"YulIdentifier","src":"2575:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2207:401:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2358:9:54","nodeType":"YulTypedName","src":"2358:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2372:4:54","nodeType":"YulTypedName","src":"2372:4:54","type":""}],"src":"2207:401:54"},{"body":{"nativeSrc":"2742:198:54","nodeType":"YulBlock","src":"2742:198:54","statements":[{"nativeSrc":"2752:26:54","nodeType":"YulAssignment","src":"2752:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2764:9:54","nodeType":"YulIdentifier","src":"2764:9:54"},{"kind":"number","nativeSrc":"2775:2:54","nodeType":"YulLiteral","src":"2775:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2760:3:54","nodeType":"YulIdentifier","src":"2760:3:54"},"nativeSrc":"2760:18:54","nodeType":"YulFunctionCall","src":"2760:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2752:4:54","nodeType":"YulIdentifier","src":"2752:4:54"}]},{"nativeSrc":"2787:52:54","nodeType":"YulVariableDeclaration","src":"2787:52:54","value":{"kind":"number","nativeSrc":"2797:42:54","nodeType":"YulLiteral","src":"2797:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"2791:2:54","nodeType":"YulTypedName","src":"2791:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2855:9:54","nodeType":"YulIdentifier","src":"2855:9:54"},{"arguments":[{"name":"value0","nativeSrc":"2870:6:54","nodeType":"YulIdentifier","src":"2870:6:54"},{"name":"_1","nativeSrc":"2878:2:54","nodeType":"YulIdentifier","src":"2878:2:54"}],"functionName":{"name":"and","nativeSrc":"2866:3:54","nodeType":"YulIdentifier","src":"2866:3:54"},"nativeSrc":"2866:15:54","nodeType":"YulFunctionCall","src":"2866:15:54"}],"functionName":{"name":"mstore","nativeSrc":"2848:6:54","nodeType":"YulIdentifier","src":"2848:6:54"},"nativeSrc":"2848:34:54","nodeType":"YulFunctionCall","src":"2848:34:54"},"nativeSrc":"2848:34:54","nodeType":"YulExpressionStatement","src":"2848:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2902:9:54","nodeType":"YulIdentifier","src":"2902:9:54"},{"kind":"number","nativeSrc":"2913:2:54","nodeType":"YulLiteral","src":"2913:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2898:3:54","nodeType":"YulIdentifier","src":"2898:3:54"},"nativeSrc":"2898:18:54","nodeType":"YulFunctionCall","src":"2898:18:54"},{"arguments":[{"name":"value1","nativeSrc":"2922:6:54","nodeType":"YulIdentifier","src":"2922:6:54"},{"name":"_1","nativeSrc":"2930:2:54","nodeType":"YulIdentifier","src":"2930:2:54"}],"functionName":{"name":"and","nativeSrc":"2918:3:54","nodeType":"YulIdentifier","src":"2918:3:54"},"nativeSrc":"2918:15:54","nodeType":"YulFunctionCall","src":"2918:15:54"}],"functionName":{"name":"mstore","nativeSrc":"2891:6:54","nodeType":"YulIdentifier","src":"2891:6:54"},"nativeSrc":"2891:43:54","nodeType":"YulFunctionCall","src":"2891:43:54"},"nativeSrc":"2891:43:54","nodeType":"YulExpressionStatement","src":"2891:43:54"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"2613:327:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2703:9:54","nodeType":"YulTypedName","src":"2703:9:54","type":""},{"name":"value1","nativeSrc":"2714:6:54","nodeType":"YulTypedName","src":"2714:6:54","type":""},{"name":"value0","nativeSrc":"2722:6:54","nodeType":"YulTypedName","src":"2722:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2733:4:54","nodeType":"YulTypedName","src":"2733:4:54","type":""}],"src":"2613:327:54"},{"body":{"nativeSrc":"3119:233:54","nodeType":"YulBlock","src":"3119:233:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3136:9:54","nodeType":"YulIdentifier","src":"3136:9:54"},{"kind":"number","nativeSrc":"3147:2:54","nodeType":"YulLiteral","src":"3147:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3129:6:54","nodeType":"YulIdentifier","src":"3129:6:54"},"nativeSrc":"3129:21:54","nodeType":"YulFunctionCall","src":"3129:21:54"},"nativeSrc":"3129:21:54","nodeType":"YulExpressionStatement","src":"3129:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3170:9:54","nodeType":"YulIdentifier","src":"3170:9:54"},{"kind":"number","nativeSrc":"3181:2:54","nodeType":"YulLiteral","src":"3181:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3166:3:54","nodeType":"YulIdentifier","src":"3166:3:54"},"nativeSrc":"3166:18:54","nodeType":"YulFunctionCall","src":"3166:18:54"},{"kind":"number","nativeSrc":"3186:2:54","nodeType":"YulLiteral","src":"3186:2:54","type":"","value":"43"}],"functionName":{"name":"mstore","nativeSrc":"3159:6:54","nodeType":"YulIdentifier","src":"3159:6:54"},"nativeSrc":"3159:30:54","nodeType":"YulFunctionCall","src":"3159:30:54"},"nativeSrc":"3159:30:54","nodeType":"YulExpressionStatement","src":"3159:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3209:9:54","nodeType":"YulIdentifier","src":"3209:9:54"},{"kind":"number","nativeSrc":"3220:2:54","nodeType":"YulLiteral","src":"3220:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3205:3:54","nodeType":"YulIdentifier","src":"3205:3:54"},"nativeSrc":"3205:18:54","nodeType":"YulFunctionCall","src":"3205:18:54"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"3225:34:54","nodeType":"YulLiteral","src":"3225:34:54","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"3198:6:54","nodeType":"YulIdentifier","src":"3198:6:54"},"nativeSrc":"3198:62:54","nodeType":"YulFunctionCall","src":"3198:62:54"},"nativeSrc":"3198:62:54","nodeType":"YulExpressionStatement","src":"3198:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3280:9:54","nodeType":"YulIdentifier","src":"3280:9:54"},{"kind":"number","nativeSrc":"3291:2:54","nodeType":"YulLiteral","src":"3291:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3276:3:54","nodeType":"YulIdentifier","src":"3276:3:54"},"nativeSrc":"3276:18:54","nodeType":"YulFunctionCall","src":"3276:18:54"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"3296:13:54","nodeType":"YulLiteral","src":"3296:13:54","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"3269:6:54","nodeType":"YulIdentifier","src":"3269:6:54"},"nativeSrc":"3269:41:54","nodeType":"YulFunctionCall","src":"3269:41:54"},"nativeSrc":"3269:41:54","nodeType":"YulExpressionStatement","src":"3269:41:54"},{"nativeSrc":"3319:27:54","nodeType":"YulAssignment","src":"3319:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3331:9:54","nodeType":"YulIdentifier","src":"3331:9:54"},{"kind":"number","nativeSrc":"3342:3:54","nodeType":"YulLiteral","src":"3342:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3327:3:54","nodeType":"YulIdentifier","src":"3327:3:54"},"nativeSrc":"3327:19:54","nodeType":"YulFunctionCall","src":"3327:19:54"},"variableNames":[{"name":"tail","nativeSrc":"3319:4:54","nodeType":"YulIdentifier","src":"3319:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2945:407:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3096:9:54","nodeType":"YulTypedName","src":"3096:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3110:4:54","nodeType":"YulTypedName","src":"3110:4:54","type":""}],"src":"2945:407:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8389__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"invalid acess control manager ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100885760003560e01c8063b4a0bdf31161005b578063b4a0bdf3146100f5578063c4d66de814610113578063e30c397814610126578063f2fde38b1461014457600080fd5b80630e32cb861461008d578063715018a6146100a257806379ba5097146100aa5780638da5cb5b146100b2575b600080fd5b6100a061009b36600461075d565b610157565b005b6100a061016b565b6100a061017f565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60975473ffffffffffffffffffffffffffffffffffffffff166100cc565b6100a061012136600461075d565b610236565b60655473ffffffffffffffffffffffffffffffffffffffff166100cc565b6100a061015236600461075d565b6103cb565b61015f61047b565b610168816104fc565b50565b61017361047b565b61017d600061061e565b565b606554339073ffffffffffffffffffffffffffffffffffffffff16811461022d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101688161061e565b600054610100900460ff16158080156102565750600054600160ff909116105b806102705750303b158015610270575060005460ff166001145b6102fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610224565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561035a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103638261064f565b80156103c757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b6103d361047b565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561043660335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff16331461017d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610224565b73ffffffffffffffffffffffffffffffffffffffff811661059f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610224565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016103be565b606580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610168816106e6565b600054610100900460ff1661015f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610224565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006020828403121561076f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461079357600080fd5b939250505056fea2646970667358221220256552adba942d224ca7e03e641e48a402219bd68eb1527584bfa875779772dd64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x157 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA0 PUSH2 0x16B JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x17F JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x97 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x121 CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x236 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST PUSH2 0x15F PUSH2 0x47B JUMP JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x4FC JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x173 PUSH2 0x47B JUMP JUMPDEST PUSH2 0x17D PUSH1 0x0 PUSH2 0x61E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x22D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x168 DUP2 PUSH2 0x61E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x256 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x270 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x270 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x2FC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x647920696E697469616C697A6564000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x35A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x363 DUP3 PUSH2 0x64F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FF AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x47B JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x436 PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x17D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x224 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x59F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 SWAP3 AND DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP2 ADD PUSH2 0x3BE JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x168 DUP2 PUSH2 0x6E6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E697469616C697A696E67000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x224 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x76F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x793 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 PUSH6 0x52ADBA942D22 0x4C 0xA7 0xE0 RETURNDATACOPY PUSH5 0x1E48A40221 SWAP12 0xD6 DUP15 0xB1 MSTORE PUSH22 0x84BFA875779772DD64736F6C63430008190033000000 ","sourceMap":"198:288:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2102:147:33;;;;;;:::i;:::-;;:::i;:::-;;2071:101:10;;;:::i;2010:206:9:-;;;:::i;1441:85:10:-;1513:6;;;;1441:85;;;504:42:54;492:55;;;474:74;;462:2;447:18;1441:85:10;;;;;;;2345:125:33;2442:21;;;;2345:125;;341:143:39;;;;;;:::i;:::-;;:::i;1123:99:9:-;1202:13;;;;1123:99;;1415:178;;;;;;:::i;:::-;;:::i;2102:147:33:-;1334:13:10;:11;:13::i;:::-;2195:47:33::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;2071:101:10:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2010:206:9:-;1202:13;;929:10:13;;2103:24:9;1202:13;2103:24;;2095:78;;;;;;;1024:2:54;2095:78:9;;;1006:21:54;1063:2;1043:18;;;1036:30;1102:34;1082:18;;;1075:62;1173:11;1153:18;;;1146:39;1202:19;;2095:78:9;;;;;;;;;2183:26;2202:6;2183:18;:26::i;341:143:39:-;3268:19:11;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:11;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:11;1476:19:12;:23;;;3376:66:11;;-1:-1:-1;3425:12:11;;;;;:17;3376:66;3314:201;;;;;;;1434:2:54;3314:201:11;;;1416:21:54;1473:2;1453:18;;;1446:30;1512:34;1492:18;;;1485:62;1583:16;1563:18;;;1556:44;1617:19;;3314:201:11;1232:410:54;3314:201:11;3525:12;:16;;;;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;;;;;;;3551:65;422:55:39::1;456:20;422:33;:55::i;:::-;3640:14:11::0;3636:99;;;3686:5;3670:21;;;;;;3710:14;;-1:-1:-1;1799:36:54;;3710:14:11;;1787:2:54;1772:18;3710:14:11;;;;;;;;3636:99;3258:483;341:143:39;:::o;1415:178:9:-;1334:13:10;:11;:13::i;:::-;1504::9::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:10::0;;;;;1441:85;1568:7:9::1;1543:43;;;;;;;;;;;;1415:178:::0;:::o;1599:130:10:-;1513:6;;1662:23;1513:6;929:10:13;1662:23:10;1654:68;;;;;;;2048:2:54;1654:68:10;;;2030:21:54;;;2067:18;;;2060:30;2126:34;2106:18;;;2099:62;2178:18;;1654:68:10;1846:356:54;2641:425:33;2733:44;;;2725:94;;;;;;;2409:2:54;2725:94:33;;;2391:21:54;2448:2;2428:18;;;2421:30;2487:34;2467:18;;;2460:62;2558:7;2538:18;;;2531:35;2583:19;;2725:94:33;2207:401:54;2725:94:33;2871:21;;;;2903:70;;;;;;;;;;;2988:71;;;2871:21;;;;2848:34:54;;;2913:2;2898:18;;2891:43;;;;2988:71:33;;2760:18:54;2988:71:33;2613:327:54;1777:153:9;1866:13;1859:20;;;;;;1889:34;1914:8;1889:24;:34::i;1619:164:33:-;5363:13:11;;;;;;;5355:69;;;;;;;3147:2:54;5355:69:11;;;3129:21:54;3186:2;3166:18;;;3159:30;3225:34;3205:18;;;3198:62;3296:13;3276:18;;;3269:41;3327:19;;5355:69:11;2945:407:54;2673:187:10;2765:6;;;;2781:17;;;;;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;14:309:54:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:54:o"},"gasEstimates":{"creation":{"codeDepositCost":"400000","executionCost":"436","totalCost":"400436"},"external":{"acceptOwnership()":"infinite","accessControlManager()":"2295","initialize(address)":"infinite","owner()":"2351","pendingOwner()":"2339","renounceOwnership()":"infinite","setAccessControlManager(address)":"28065","transferOwnership(address)":"30371"}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","initialize(address)":"c4d66de8","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\":[{\"internalType\":\"address\",\"name\":\"accessControlManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"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\":\"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\":{\"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.\"},\"initialize(address)\":{\"params\":{\"accessControlManager\":\"Access control manager contract address\"}},\"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 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.\"},\"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.\"}},\"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\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockAccessTest.sol\":\"MockAccessTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"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-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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() external {\\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\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.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 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    /**\\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\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.1) (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 * ```\\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 *\\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\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.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     *\\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 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(\\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        (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 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\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"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\"},\"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\"},\"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/MockAccessTest.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"../Governance/AccessControlledV8.sol\\\";\\nimport \\\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\\\";\\n\\ncontract MockAccessTest is AccessControlledV8 {\\n    /**\\n     * @param accessControlManager Access control manager contract address\\n     */\\n    function initialize(address accessControlManager) external initializer {\\n        __AccessControlled_init_unchained(accessControlManager);\\n    }\\n}\\n\",\"keccak256\":\"0x20b06557c7c2be39c6ea676f6f3d16ff0dbb21e6ebce2a1e7ffe9c9a8a892232\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3190,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":3193,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":3677,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":3062,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":3182,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":2971,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":3050,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":8204,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)8389"},{"astId":8209,"contract":"contracts/test/MockAccessTest.sol:MockAccessTest","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)8389":{"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"}},"version":1}}},"contracts/test/MockXVSVault.sol":{"MockXVSVault":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b5060da80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063782d6fe114602d575b600080fd5b604060383660046061565b600092915050565b6040516bffffffffffffffffffffffff909116815260200160405180910390f35b60008060408385031215607357600080fd5b823573ffffffffffffffffffffffffffffffffffffffff81168114609657600080fd5b94602093909301359350505056fea26469706673582212202f495c0b97bb68858bc09a7e29873a8cf9fa060dd106cca7fff91758fe69d5a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xDA DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x782D6FE1 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 PUSH1 0x38 CALLDATASIZE PUSH1 0x4 PUSH1 0x61 JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH1 0x96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F BLOBHASH TLOAD SIGNEXTEND SWAP8 0xBB PUSH9 0x858BC09A7E29873A8C 0xF9 STATICCALL MOD 0xD 0xD1 MOD 0xCC 0xA7 SELFDESTRUCT 0xF9 OR PC INVALID PUSH10 0xD5A864736F6C63430008 NOT STOP CALLER ","sourceMap":"66:232:40:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getPriorVotes_9259":{"entryPoint":null,"id":9259,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":97,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:606:54","nodeType":"YulBlock","src":"0:606:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"101:290:54","nodeType":"YulBlock","src":"101:290:54","statements":[{"body":{"nativeSrc":"147:16:54","nodeType":"YulBlock","src":"147:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"156:1:54","nodeType":"YulLiteral","src":"156:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"159:1:54","nodeType":"YulLiteral","src":"159:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"149:6:54","nodeType":"YulIdentifier","src":"149:6:54"},"nativeSrc":"149:12:54","nodeType":"YulFunctionCall","src":"149:12:54"},"nativeSrc":"149:12:54","nodeType":"YulExpressionStatement","src":"149:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"122:7:54","nodeType":"YulIdentifier","src":"122:7:54"},{"name":"headStart","nativeSrc":"131:9:54","nodeType":"YulIdentifier","src":"131:9:54"}],"functionName":{"name":"sub","nativeSrc":"118:3:54","nodeType":"YulIdentifier","src":"118:3:54"},"nativeSrc":"118:23:54","nodeType":"YulFunctionCall","src":"118:23:54"},{"kind":"number","nativeSrc":"143:2:54","nodeType":"YulLiteral","src":"143:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"114:3:54","nodeType":"YulIdentifier","src":"114:3:54"},"nativeSrc":"114:32:54","nodeType":"YulFunctionCall","src":"114:32:54"},"nativeSrc":"111:52:54","nodeType":"YulIf","src":"111:52:54"},{"nativeSrc":"172:36:54","nodeType":"YulVariableDeclaration","src":"172:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"198:9:54","nodeType":"YulIdentifier","src":"198:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"185:12:54","nodeType":"YulIdentifier","src":"185:12:54"},"nativeSrc":"185:23:54","nodeType":"YulFunctionCall","src":"185:23:54"},"variables":[{"name":"value","nativeSrc":"176:5:54","nodeType":"YulTypedName","src":"176:5:54","type":""}]},{"body":{"nativeSrc":"294:16:54","nodeType":"YulBlock","src":"294:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"303:1:54","nodeType":"YulLiteral","src":"303:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"306:1:54","nodeType":"YulLiteral","src":"306:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"296:6:54","nodeType":"YulIdentifier","src":"296:6:54"},"nativeSrc":"296:12:54","nodeType":"YulFunctionCall","src":"296:12:54"},"nativeSrc":"296:12:54","nodeType":"YulExpressionStatement","src":"296:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"230:5:54","nodeType":"YulIdentifier","src":"230:5:54"},{"arguments":[{"name":"value","nativeSrc":"241:5:54","nodeType":"YulIdentifier","src":"241:5:54"},{"kind":"number","nativeSrc":"248:42:54","nodeType":"YulLiteral","src":"248:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"237:3:54","nodeType":"YulIdentifier","src":"237:3:54"},"nativeSrc":"237:54:54","nodeType":"YulFunctionCall","src":"237:54:54"}],"functionName":{"name":"eq","nativeSrc":"227:2:54","nodeType":"YulIdentifier","src":"227:2:54"},"nativeSrc":"227:65:54","nodeType":"YulFunctionCall","src":"227:65:54"}],"functionName":{"name":"iszero","nativeSrc":"220:6:54","nodeType":"YulIdentifier","src":"220:6:54"},"nativeSrc":"220:73:54","nodeType":"YulFunctionCall","src":"220:73:54"},"nativeSrc":"217:93:54","nodeType":"YulIf","src":"217:93:54"},{"nativeSrc":"319:15:54","nodeType":"YulAssignment","src":"319:15:54","value":{"name":"value","nativeSrc":"329:5:54","nodeType":"YulIdentifier","src":"329:5:54"},"variableNames":[{"name":"value0","nativeSrc":"319:6:54","nodeType":"YulIdentifier","src":"319:6:54"}]},{"nativeSrc":"343:42:54","nodeType":"YulAssignment","src":"343:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"370:9:54","nodeType":"YulIdentifier","src":"370:9:54"},{"kind":"number","nativeSrc":"381:2:54","nodeType":"YulLiteral","src":"381:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"366:3:54","nodeType":"YulIdentifier","src":"366:3:54"},"nativeSrc":"366:18:54","nodeType":"YulFunctionCall","src":"366:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"353:12:54","nodeType":"YulIdentifier","src":"353:12:54"},"nativeSrc":"353:32:54","nodeType":"YulFunctionCall","src":"353:32:54"},"variableNames":[{"name":"value1","nativeSrc":"343:6:54","nodeType":"YulIdentifier","src":"343:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"14:377:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"59:9:54","nodeType":"YulTypedName","src":"59:9:54","type":""},{"name":"dataEnd","nativeSrc":"70:7:54","nodeType":"YulTypedName","src":"70:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"82:6:54","nodeType":"YulTypedName","src":"82:6:54","type":""},{"name":"value1","nativeSrc":"90:6:54","nodeType":"YulTypedName","src":"90:6:54","type":""}],"src":"14:377:54"},{"body":{"nativeSrc":"495:109:54","nodeType":"YulBlock","src":"495:109:54","statements":[{"nativeSrc":"505:26:54","nodeType":"YulAssignment","src":"505:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"517:9:54","nodeType":"YulIdentifier","src":"517:9:54"},{"kind":"number","nativeSrc":"528:2:54","nodeType":"YulLiteral","src":"528:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"513:3:54","nodeType":"YulIdentifier","src":"513:3:54"},"nativeSrc":"513:18:54","nodeType":"YulFunctionCall","src":"513:18:54"},"variableNames":[{"name":"tail","nativeSrc":"505:4:54","nodeType":"YulIdentifier","src":"505:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"547:9:54","nodeType":"YulIdentifier","src":"547:9:54"},{"arguments":[{"name":"value0","nativeSrc":"562:6:54","nodeType":"YulIdentifier","src":"562:6:54"},{"kind":"number","nativeSrc":"570:26:54","nodeType":"YulLiteral","src":"570:26:54","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"558:3:54","nodeType":"YulIdentifier","src":"558:3:54"},"nativeSrc":"558:39:54","nodeType":"YulFunctionCall","src":"558:39:54"}],"functionName":{"name":"mstore","nativeSrc":"540:6:54","nodeType":"YulIdentifier","src":"540:6:54"},"nativeSrc":"540:58:54","nodeType":"YulFunctionCall","src":"540:58:54"},"nativeSrc":"540:58:54","nodeType":"YulExpressionStatement","src":"540:58:54"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nativeSrc":"396:208:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"464:9:54","nodeType":"YulTypedName","src":"464:9:54","type":""},{"name":"value0","nativeSrc":"475:6:54","nodeType":"YulTypedName","src":"475:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"486:4:54","nodeType":"YulTypedName","src":"486:4:54","type":""}],"src":"396:208:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060285760003560e01c8063782d6fe114602d575b600080fd5b604060383660046061565b600092915050565b6040516bffffffffffffffffffffffff909116815260200160405180910390f35b60008060408385031215607357600080fd5b823573ffffffffffffffffffffffffffffffffffffffff81168114609657600080fd5b94602093909301359350505056fea26469706673582212202f495c0b97bb68858bc09a7e29873a8cf9fa060dd106cca7fff91758fe69d5a864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x782D6FE1 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 PUSH1 0x38 CALLDATASIZE PUSH1 0x4 PUSH1 0x61 JUMP JUMPDEST PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH1 0x96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F BLOBHASH TLOAD SIGNEXTEND SWAP8 0xBB PUSH9 0x858BC09A7E29873A8C 0xF9 STATICCALL MOD 0xD 0xD1 MOD 0xCC 0xA7 SELFDESTRUCT 0xF9 OR PC INVALID PUSH10 0xD5A864736F6C63430008 NOT STOP CALLER ","sourceMap":"66:232:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;135:161;;;;;;:::i;:::-;219:6;135:161;;;;;;;;570:26:54;558:39;;;540:58;;528:2;513:18;135:161:40;;;;;;;14:377:54;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;198:9;185:23;248:42;241:5;237:54;230:5;227:65;217:93;;306:1;303;296:12;217:93;329:5;381:2;366:18;;;;353:32;;-1:-1:-1;;;14:377:54:o"},"gasEstimates":{"creation":{"codeDepositCost":"43600","executionCost":"93","totalCost":"43693"},"external":{"getPriorVotes(address,uint256)":"309"}},"methodIdentifiers":{"getPriorVotes(address,uint256)":"782d6fe1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockXVSVault.sol\":\"MockXVSVault\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"contracts/test/MockXVSVault.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\ncontract MockXVSVault {\\n    /* solhint-disable no-unused-vars */\\n    function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96) {\\n        /* solhint-enable no-unused-vars */\\n        return 0;\\n    }\\n}\\n\",\"keccak256\":\"0x69ac2c6384a690786f0ccba3c5e99501882a24319fcc311923fcbfd54feb10c6\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/test/TestTimelockV8.sol":{"TestTimelockV8":{"abi":[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"CancelTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldDelay","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"NewDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"QueueTransaction","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"GRACE_PERIOD()":{"returns":{"_0":"The duration of the grace period, specified as a uint256 value."}},"MAXIMUM_DELAY()":{"returns":{"_0":"Maximum delay"}},"MINIMUM_DELAY()":{"returns":{"_0":"Minimum delay"}},"acceptAdmin()":{"custom:access":"Sender must be pending admin","custom:event":"Emit NewAdmin with old and new admin"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit CancelTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"}},"executeTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit ExecuteTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Result of function call"}},"queueTransaction(address,uint256,string,bytes,uint256)":{"custom:access":"Sender must be admin","custom:event":"Emit QueueTransaction","params":{"data":"Arguments to be passed to the function when called","eta":"Timestamp after which the transaction can be executed","signature":"Signature of the function to be called","target":"Address of the contract with the method to be called","value":"Native token amount sent with the transaction"},"returns":{"_0":"Hash of the queued transaction"}},"setDelay(uint256)":{"custom:access":"Sender must be Timelock itself","custom:event":"Emit NewDelay with old and new delay","params":{"delay_":"The new delay period for the transaction queue"}},"setPendingAdmin(address)":{"custom:access":"Sender must be Timelock contract itself or admin","custom:event":"Emit NewPendingAdmin with new pending admin","params":{"pendingAdmin_":"Address of the proposed admin"}}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@MAXIMUM_DELAY_9305":{"entryPoint":null,"id":9305,"parameterSlots":0,"returnSlots":1},"@MINIMUM_DELAY_9296":{"entryPoint":null,"id":9296,"parameterSlots":0,"returnSlots":1},"@_8520":{"entryPoint":null,"id":8520,"parameterSlots":2,"returnSlots":0},"@_9278":{"entryPoint":null,"id":9278,"parameterSlots":2,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":346,"id":5466,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_uint256_fromMemory":{"entryPoint":388,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:1216:54","nodeType":"YulBlock","src":"0:1216:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"112:253:54","nodeType":"YulBlock","src":"112:253:54","statements":[{"body":{"nativeSrc":"158:16:54","nodeType":"YulBlock","src":"158:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"167:1:54","nodeType":"YulLiteral","src":"167:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"170:1:54","nodeType":"YulLiteral","src":"170:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"160:6:54","nodeType":"YulIdentifier","src":"160:6:54"},"nativeSrc":"160:12:54","nodeType":"YulFunctionCall","src":"160:12:54"},"nativeSrc":"160:12:54","nodeType":"YulExpressionStatement","src":"160:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"133:7:54","nodeType":"YulIdentifier","src":"133:7:54"},{"name":"headStart","nativeSrc":"142:9:54","nodeType":"YulIdentifier","src":"142:9:54"}],"functionName":{"name":"sub","nativeSrc":"129:3:54","nodeType":"YulIdentifier","src":"129:3:54"},"nativeSrc":"129:23:54","nodeType":"YulFunctionCall","src":"129:23:54"},{"kind":"number","nativeSrc":"154:2:54","nodeType":"YulLiteral","src":"154:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"125:3:54","nodeType":"YulIdentifier","src":"125:3:54"},"nativeSrc":"125:32:54","nodeType":"YulFunctionCall","src":"125:32:54"},"nativeSrc":"122:52:54","nodeType":"YulIf","src":"122:52:54"},{"nativeSrc":"183:29:54","nodeType":"YulVariableDeclaration","src":"183:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"202:9:54","nodeType":"YulIdentifier","src":"202:9:54"}],"functionName":{"name":"mload","nativeSrc":"196:5:54","nodeType":"YulIdentifier","src":"196:5:54"},"nativeSrc":"196:16:54","nodeType":"YulFunctionCall","src":"196:16:54"},"variables":[{"name":"value","nativeSrc":"187:5:54","nodeType":"YulTypedName","src":"187:5:54","type":""}]},{"body":{"nativeSrc":"275:16:54","nodeType":"YulBlock","src":"275:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"284:1:54","nodeType":"YulLiteral","src":"284:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"287:1:54","nodeType":"YulLiteral","src":"287:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"277:6:54","nodeType":"YulIdentifier","src":"277:6:54"},"nativeSrc":"277:12:54","nodeType":"YulFunctionCall","src":"277:12:54"},"nativeSrc":"277:12:54","nodeType":"YulExpressionStatement","src":"277:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"234:5:54","nodeType":"YulIdentifier","src":"234:5:54"},{"arguments":[{"name":"value","nativeSrc":"245:5:54","nodeType":"YulIdentifier","src":"245:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"260:3:54","nodeType":"YulLiteral","src":"260:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"265:1:54","nodeType":"YulLiteral","src":"265:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"256:3:54","nodeType":"YulIdentifier","src":"256:3:54"},"nativeSrc":"256:11:54","nodeType":"YulFunctionCall","src":"256:11:54"},{"kind":"number","nativeSrc":"269:1:54","nodeType":"YulLiteral","src":"269:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"252:3:54","nodeType":"YulIdentifier","src":"252:3:54"},"nativeSrc":"252:19:54","nodeType":"YulFunctionCall","src":"252:19:54"}],"functionName":{"name":"and","nativeSrc":"241:3:54","nodeType":"YulIdentifier","src":"241:3:54"},"nativeSrc":"241:31:54","nodeType":"YulFunctionCall","src":"241:31:54"}],"functionName":{"name":"eq","nativeSrc":"231:2:54","nodeType":"YulIdentifier","src":"231:2:54"},"nativeSrc":"231:42:54","nodeType":"YulFunctionCall","src":"231:42:54"}],"functionName":{"name":"iszero","nativeSrc":"224:6:54","nodeType":"YulIdentifier","src":"224:6:54"},"nativeSrc":"224:50:54","nodeType":"YulFunctionCall","src":"224:50:54"},"nativeSrc":"221:70:54","nodeType":"YulIf","src":"221:70:54"},{"nativeSrc":"300:15:54","nodeType":"YulAssignment","src":"300:15:54","value":{"name":"value","nativeSrc":"310:5:54","nodeType":"YulIdentifier","src":"310:5:54"},"variableNames":[{"name":"value0","nativeSrc":"300:6:54","nodeType":"YulIdentifier","src":"300:6:54"}]},{"nativeSrc":"324:35:54","nodeType":"YulAssignment","src":"324:35:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"344:9:54","nodeType":"YulIdentifier","src":"344:9:54"},{"kind":"number","nativeSrc":"355:2:54","nodeType":"YulLiteral","src":"355:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"340:3:54","nodeType":"YulIdentifier","src":"340:3:54"},"nativeSrc":"340:18:54","nodeType":"YulFunctionCall","src":"340:18:54"}],"functionName":{"name":"mload","nativeSrc":"334:5:54","nodeType":"YulIdentifier","src":"334:5:54"},"nativeSrc":"334:25:54","nodeType":"YulFunctionCall","src":"334:25:54"},"variableNames":[{"name":"value1","nativeSrc":"324:6:54","nodeType":"YulIdentifier","src":"324:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nativeSrc":"14:351:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70:9:54","nodeType":"YulTypedName","src":"70:9:54","type":""},{"name":"dataEnd","nativeSrc":"81:7:54","nodeType":"YulTypedName","src":"81:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"93:6:54","nodeType":"YulTypedName","src":"93:6:54","type":""},{"name":"value1","nativeSrc":"101:6:54","nodeType":"YulTypedName","src":"101:6:54","type":""}],"src":"14:351:54"},{"body":{"nativeSrc":"544:245:54","nodeType":"YulBlock","src":"544:245:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"561:9:54","nodeType":"YulIdentifier","src":"561:9:54"},{"kind":"number","nativeSrc":"572:2:54","nodeType":"YulLiteral","src":"572:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"554:6:54","nodeType":"YulIdentifier","src":"554:6:54"},"nativeSrc":"554:21:54","nodeType":"YulFunctionCall","src":"554:21:54"},"nativeSrc":"554:21:54","nodeType":"YulExpressionStatement","src":"554:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"595:9:54","nodeType":"YulIdentifier","src":"595:9:54"},{"kind":"number","nativeSrc":"606:2:54","nodeType":"YulLiteral","src":"606:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"591:3:54","nodeType":"YulIdentifier","src":"591:3:54"},"nativeSrc":"591:18:54","nodeType":"YulFunctionCall","src":"591:18:54"},{"kind":"number","nativeSrc":"611:2:54","nodeType":"YulLiteral","src":"611:2:54","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"584:6:54","nodeType":"YulIdentifier","src":"584:6:54"},"nativeSrc":"584:30:54","nodeType":"YulFunctionCall","src":"584:30:54"},"nativeSrc":"584:30:54","nodeType":"YulExpressionStatement","src":"584:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"634:9:54","nodeType":"YulIdentifier","src":"634:9:54"},{"kind":"number","nativeSrc":"645:2:54","nodeType":"YulLiteral","src":"645:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"630:3:54","nodeType":"YulIdentifier","src":"630:3:54"},"nativeSrc":"630:18:54","nodeType":"YulFunctionCall","src":"630:18:54"},{"hexValue":"54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d7573","kind":"string","nativeSrc":"650:34:54","nodeType":"YulLiteral","src":"650:34:54","type":"","value":"Timelock::constructor: Delay mus"}],"functionName":{"name":"mstore","nativeSrc":"623:6:54","nodeType":"YulIdentifier","src":"623:6:54"},"nativeSrc":"623:62:54","nodeType":"YulFunctionCall","src":"623:62:54"},"nativeSrc":"623:62:54","nodeType":"YulExpressionStatement","src":"623:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"705:9:54","nodeType":"YulIdentifier","src":"705:9:54"},{"kind":"number","nativeSrc":"716:2:54","nodeType":"YulLiteral","src":"716:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"701:3:54","nodeType":"YulIdentifier","src":"701:3:54"},"nativeSrc":"701:18:54","nodeType":"YulFunctionCall","src":"701:18:54"},{"hexValue":"7420657863656564206d696e696d756d2064656c61792e","kind":"string","nativeSrc":"721:25:54","nodeType":"YulLiteral","src":"721:25:54","type":"","value":"t exceed minimum delay."}],"functionName":{"name":"mstore","nativeSrc":"694:6:54","nodeType":"YulIdentifier","src":"694:6:54"},"nativeSrc":"694:53:54","nodeType":"YulFunctionCall","src":"694:53:54"},"nativeSrc":"694:53:54","nodeType":"YulExpressionStatement","src":"694:53:54"},{"nativeSrc":"756:27:54","nodeType":"YulAssignment","src":"756:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"768:9:54","nodeType":"YulIdentifier","src":"768:9:54"},{"kind":"number","nativeSrc":"779:3:54","nodeType":"YulLiteral","src":"779:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"764:3:54","nodeType":"YulIdentifier","src":"764:3:54"},"nativeSrc":"764:19:54","nodeType":"YulFunctionCall","src":"764:19:54"},"variableNames":[{"name":"tail","nativeSrc":"756:4:54","nodeType":"YulIdentifier","src":"756:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"370:419:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"521:9:54","nodeType":"YulTypedName","src":"521:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"535:4:54","nodeType":"YulTypedName","src":"535:4:54","type":""}],"src":"370:419:54"},{"body":{"nativeSrc":"968:246:54","nodeType":"YulBlock","src":"968:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"985:9:54","nodeType":"YulIdentifier","src":"985:9:54"},{"kind":"number","nativeSrc":"996:2:54","nodeType":"YulLiteral","src":"996:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"978:6:54","nodeType":"YulIdentifier","src":"978:6:54"},"nativeSrc":"978:21:54","nodeType":"YulFunctionCall","src":"978:21:54"},"nativeSrc":"978:21:54","nodeType":"YulExpressionStatement","src":"978:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1019:9:54","nodeType":"YulIdentifier","src":"1019:9:54"},{"kind":"number","nativeSrc":"1030:2:54","nodeType":"YulLiteral","src":"1030:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1015:3:54","nodeType":"YulIdentifier","src":"1015:3:54"},"nativeSrc":"1015:18:54","nodeType":"YulFunctionCall","src":"1015:18:54"},{"kind":"number","nativeSrc":"1035:2:54","nodeType":"YulLiteral","src":"1035:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"1008:6:54","nodeType":"YulIdentifier","src":"1008:6:54"},"nativeSrc":"1008:30:54","nodeType":"YulFunctionCall","src":"1008:30:54"},"nativeSrc":"1008:30:54","nodeType":"YulExpressionStatement","src":"1008:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1058:9:54","nodeType":"YulIdentifier","src":"1058:9:54"},{"kind":"number","nativeSrc":"1069:2:54","nodeType":"YulLiteral","src":"1069:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1054:3:54","nodeType":"YulIdentifier","src":"1054:3:54"},"nativeSrc":"1054:18:54","nodeType":"YulFunctionCall","src":"1054:18:54"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e","kind":"string","nativeSrc":"1074:34:54","nodeType":"YulLiteral","src":"1074:34:54","type":"","value":"Timelock::setDelay: Delay must n"}],"functionName":{"name":"mstore","nativeSrc":"1047:6:54","nodeType":"YulIdentifier","src":"1047:6:54"},"nativeSrc":"1047:62:54","nodeType":"YulFunctionCall","src":"1047:62:54"},"nativeSrc":"1047:62:54","nodeType":"YulExpressionStatement","src":"1047:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1129:9:54","nodeType":"YulIdentifier","src":"1129:9:54"},{"kind":"number","nativeSrc":"1140:2:54","nodeType":"YulLiteral","src":"1140:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1125:3:54","nodeType":"YulIdentifier","src":"1125:3:54"},"nativeSrc":"1125:18:54","nodeType":"YulFunctionCall","src":"1125:18:54"},{"hexValue":"6f7420657863656564206d6178696d756d2064656c61792e","kind":"string","nativeSrc":"1145:26:54","nodeType":"YulLiteral","src":"1145:26:54","type":"","value":"ot exceed maximum delay."}],"functionName":{"name":"mstore","nativeSrc":"1118:6:54","nodeType":"YulIdentifier","src":"1118:6:54"},"nativeSrc":"1118:54:54","nodeType":"YulFunctionCall","src":"1118:54:54"},"nativeSrc":"1118:54:54","nodeType":"YulExpressionStatement","src":"1118:54:54"},{"nativeSrc":"1181:27:54","nodeType":"YulAssignment","src":"1181:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1193:9:54","nodeType":"YulIdentifier","src":"1193:9:54"},{"kind":"number","nativeSrc":"1204:3:54","nodeType":"YulLiteral","src":"1204:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1189:3:54","nodeType":"YulIdentifier","src":"1189:3:54"},"nativeSrc":"1189:19:54","nodeType":"YulFunctionCall","src":"1189:19:54"},"variableNames":[{"name":"tail","nativeSrc":"1181:4:54","nodeType":"YulIdentifier","src":"1181:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"794:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"945:9:54","nodeType":"YulTypedName","src":"945:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"959:4:54","nodeType":"YulTypedName","src":"959:4:54","type":""}],"src":"794:420:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_22e01fcea901594c01d464b6c5f076874d475b75affb5ba136b9bcf9c2e8cf2f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::constructor: Delay mus\")\n        mstore(add(headStart, 96), \"t exceed minimum delay.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must n\")\n        mstore(add(headStart, 96), \"ot exceed maximum delay.\")\n        tail := add(headStart, 128)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161152b38038061152b83398101604081905261002f91610184565b818160018110156100ad5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a636f6e7374727563746f723a2044656c6179206d757360448201527f7420657863656564206d696e696d756d2064656c61792e00000000000000000060648201526084015b60405180910390fd5b610e108111156101255760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e000000000000000060648201526084016100a4565b61012e8261015a565b600080546001600160a01b0319166001600160a01b039390931692909217909155600255506101be9050565b6001600160a01b038116610181576040516342bcdf7f60e11b815260040160405180910390fd5b50565b6000806040838503121561019757600080fd5b82516001600160a01b03811681146101ae57600080fd5b6020939093015192949293505050565b61135e806101cd6000396000f3fe6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e2146101ec578063e177246e14610215578063f2b0653714610235578063f851a4401461027557005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020157005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611055565b6102a2565b6040516100f8919061110c565b60405180910390f35b34801561010d57600080fd5b506100c9610731565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611055565b61083b565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b136600461115d565b610aeb565b3480156101c257600080fd5b506100c96101d1366004611055565b610bfa565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b50610e10610188565b34801561020d57600080fd5b506001610188565b34801561022157600080fd5b506100c961023036600461117f565b610dfb565b34801561024157600080fd5b5061026561025036600461117f565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561028157600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff1633146103375760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161035697969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104115760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e000000606482015260840161032e565b824210156104ad5760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a40161032e565b6104b9610e108461123f565b42111561052e5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e00000000000000000000000000606482015260840161032e565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105ab5785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105e692505050565b87876040516105bb92919061127f565b6040519081900381206105d4918890889060200161128f565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161060f91906112cb565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b5091509150816106c95760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e000000606482015260840161032e565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161071a969594939291906112e7565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107be5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e0000000000000000606482015260840161032e565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108c95760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e00000000000000000000606482015260840161032e565b6002546108d6904261123f565b8210156109715760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a40161032e565b60008888888888888860405160200161099097969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a4c5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e000000000000000000606482015260840161032e565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610ad7908c908c908c908c908c908c906112e7565b60405180910390a398975050505050505050565b33301480610b10575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b825760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e0000000000000000606482015260840161032e565b610b8b81610f93565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c875760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000000606482015260840161032e565b600087878787878787604051602001610ca697969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d615760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e0000000000606482015260840161032e565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610de9908b908b908b908b908b908b906112e7565b60405180910390a35050505050505050565b333014610e705760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e000000000000000000000000000000606482015260840161032e565b6001811015610ee75760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e000000000000000000000000606482015260840161032e565b610e10811115610f5f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e0000000000000000606482015260840161032e565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610fe0576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461100757600080fd5b919050565b60008083601f84011261101e57600080fd5b50813567ffffffffffffffff81111561103657600080fd5b60208301915083602082850101111561104e57600080fd5b9250929050565b600080600080600080600060a0888a03121561107057600080fd5b61107988610fe3565b965060208801359550604088013567ffffffffffffffff8082111561109d57600080fd5b6110a98b838c0161100c565b909750955060608a01359150808211156110c257600080fd5b506110cf8a828b0161100c565b989b979a50959894979596608090950135949350505050565b60005b838110156111035781810151838201526020016110eb565b50506000910152565b602081526000825180602084015261112b8160408501602087016110e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561116f57600080fd5b61117882610fe3565b9392505050565b60006020828403121561119157600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061121760a083018789611198565b828103606084015261122a818688611198565b91505082608083015298975050505050505050565b80820180821115611279577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112dd8184602087016110e8565b9190910192915050565b868152608060208201526000611301608083018789611198565b8281036040840152611314818688611198565b91505082606083015297965050505050505056fea2646970667358221220f2ebbbc2962ab36d932af22dc3db85cd054b82dec65045e01307fcab3adf4b8764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x152B CODESIZE SUB DUP1 PUSH2 0x152B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x184 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 DUP2 LT ISZERO PUSH2 0xAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A636F6E7374727563746F723A2044656C6179206D7573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7420657863656564206D696E696D756D2064656C61792E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE10 DUP2 GT ISZERO PUSH2 0x125 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA4 JUMP JUMPDEST PUSH2 0x12E DUP3 PUSH2 0x15A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x2 SSTORE POP PUSH2 0x1BE SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x181 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 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH2 0x135E DUP1 PUSH2 0x1CD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x56 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x275 JUMPI STOP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x201 JUMPI STOP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x1B6 JUMPI STOP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x116 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x2A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x110C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x731 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x115D JUMP JUMPDEST PUSH2 0xAEB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0xBFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE10 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x117F JUMP JUMPDEST PUSH2 0xDFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x265 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x117F JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A204361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6C206D75737420636F6D652066726F6D2061646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x356 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x411 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774206265656E207175657565642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST DUP3 TIMESTAMP LT ISZERO PUSH2 0x4AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774207375727061737365642074696D6520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6C6F636B2E000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x4B9 PUSH2 0xE10 DUP5 PUSH2 0x123F JUMP JUMPDEST TIMESTAMP GT ISZERO PUSH2 0x52E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206973207374616C652E00000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE PUSH1 0x60 SWAP1 DUP8 SWAP1 SUB PUSH2 0x5AB JUMPI DUP6 DUP6 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 SWAP3 SWAP4 POP PUSH2 0x5E6 SWAP3 POP POP POP JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5BB SWAP3 SWAP2 SWAP1 PUSH2 0x127F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x5D4 SWAP2 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x128F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x60F SWAP2 SWAP1 PUSH2 0x12CB 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 0x64C 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 0x651 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E20657865637574696F6E2072657665727465642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x71A SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x7BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A61636365707441646D696E3A2043616C6C206D757374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6D652066726F6D2070656E64696E6741646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2043616C6C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D75737420636F6D652066726F6D2061646D696E2E00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x8D6 SWAP1 TIMESTAMP PUSH2 0x123F JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x971 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2045737469 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D6174656420657865637574696F6E20626C6F636B206D757374207361746973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x66792064656C61792E0000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x990 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0xA4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A207472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x73616374696F6E20616C7265616479207175657565642E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP1 DUP3 SWAP1 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F SWAP1 PUSH2 0xAD7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ DUP1 PUSH2 0xB10 JUMPI POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657450656E64696E6741646D696E3A2043616C6C20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D75737420636F6D652066726F6D2054696D656C6F636B2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0xB8B DUP2 PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xC87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A2043616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C206D75737420636F6D652066726F6D2061646D696E2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCA6 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xD61 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A20747261 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E73616374696F6E206973206E6F7420717565756564207965742E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP1 DUP3 SWAP1 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 SWAP1 PUSH2 0xDE9 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xE70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2043616C6C206D75737420636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D652066726F6D2054696D656C6F636B2E000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D7573742065 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7863656564206D696E696D756D2064656C61792E000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0xE10 DUP2 GT ISZERO PUSH2 0xF5F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xED0229422AF39D4D7D33F7A27D31D6F5CB20EC628293DA58DD6E8A528ED466BE SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xFE0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1007 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1036 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x104E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1079 DUP9 PUSH2 0xFE3 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x109D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10A9 DUP12 DUP4 DUP13 ADD PUSH2 0x100C JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10CF DUP11 DUP3 DUP12 ADD PUSH2 0x100C JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 SWAP5 SWAP8 SWAP6 SWAP7 PUSH1 0x80 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1103 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10EB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x112B DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x10E8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1178 DUP3 PUSH2 0xFE3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1217 PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x1198 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x122A DUP2 DUP7 DUP9 PUSH2 0x1198 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1279 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x4 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x12DD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x10E8 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1301 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x1198 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x1314 DUP2 DUP7 DUP9 PUSH2 0x1198 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0xEB 0xBB 0xC2 SWAP7 0x2A 0xB3 PUSH14 0x932AF22DC3DB85CD054B82DEC650 GASLIMIT 0xE0 SGT SMOD 0xFC 0xAB GASPRICE 0xDF 0x4B DUP8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"125:422:41:-:0;;;169:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;231:6;239;436:1;2488:6:35;:25;;2480:93;;;;-1:-1:-1;;;2480:93:35;;572:2:54;2480:93:35;;;554:21:54;611:2;591:18;;;584:30;650:34;630:18;;;623:62;721:25;701:18;;;694:53;764:19;;2480:93:35;;;;;;;;;531:7:41;2591:6:35;:25;;2583:94;;;;-1:-1:-1;;;2583:94:35;;996:2:54;2583:94:35;;;978:21:54;1035:2;1015:18;;;1008:30;1074:34;1054:18;;;1047:62;1145:26;1125:18;;;1118:54;1189:19;;2583:94:35;794:420:54;2583:94:35;2687:28;2708:6;2687:20;:28::i;:::-;2726:5;:14;;-1:-1:-1;;;;;;2726:14:35;-1:-1:-1;;;;;2726:14:35;;;;;;;;;;;2750:5;:14;-1:-1:-1;125:422:41;;-1:-1:-1;125:422:41;485:136:24;-1:-1:-1;;;;;548:22:24;;544:75;;589:23;;-1:-1:-1;;;589:23:24;;;;;;;;;;;544:75;485:136;:::o;14:351:54:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:54;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:54:o;794:420::-;125:422:41;;;;;;"},"deployedBytecode":{"functionDebugData":{"@GRACE_PERIOD_9287":{"entryPoint":null,"id":9287,"parameterSlots":0,"returnSlots":1},"@MAXIMUM_DELAY_9305":{"entryPoint":null,"id":9305,"parameterSlots":0,"returnSlots":1},"@MINIMUM_DELAY_9296":{"entryPoint":null,"id":9296,"parameterSlots":0,"returnSlots":1},"@_8524":{"entryPoint":null,"id":8524,"parameterSlots":0,"returnSlots":0},"@acceptAdmin_8625":{"entryPoint":1841,"id":8625,"parameterSlots":0,"returnSlots":0},"@admin_8409":{"entryPoint":null,"id":8409,"parameterSlots":0,"returnSlots":0},"@cancelTransaction_8791":{"entryPoint":3066,"id":8791,"parameterSlots":7,"returnSlots":0},"@delay_8415":{"entryPoint":null,"id":8415,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_5466":{"entryPoint":3987,"id":5466,"parameterSlots":1,"returnSlots":0},"@executeTransaction_8921":{"entryPoint":674,"id":8921,"parameterSlots":7,"returnSlots":1},"@getBlockTimestamp_8931":{"entryPoint":null,"id":8931,"parameterSlots":0,"returnSlots":1},"@pendingAdmin_8412":{"entryPoint":null,"id":8412,"parameterSlots":0,"returnSlots":0},"@queueTransaction_8733":{"entryPoint":2107,"id":8733,"parameterSlots":7,"returnSlots":1},"@queuedTransactions_8420":{"entryPoint":null,"id":8420,"parameterSlots":0,"returnSlots":0},"@setDelay_8567":{"entryPoint":3579,"id":8567,"parameterSlots":1,"returnSlots":0},"@setPendingAdmin_8660":{"entryPoint":2795,"id":8660,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":4067,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":4108,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4445,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256":{"entryPoint":4181,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4479,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":4504,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4751,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4735,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4811,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":4577,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"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":4364,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":4839,"id":null,"parameterSlots":7,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":4671,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4328,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12932:54","nodeType":"YulBlock","src":"0:12932:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"63:147:54","nodeType":"YulBlock","src":"63:147:54","statements":[{"nativeSrc":"73:29:54","nodeType":"YulAssignment","src":"73:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:54","nodeType":"YulIdentifier","src":"95:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:54","nodeType":"YulIdentifier","src":"82:12:54"},"nativeSrc":"82:20:54","nodeType":"YulFunctionCall","src":"82:20:54"},"variableNames":[{"name":"value","nativeSrc":"73:5:54","nodeType":"YulIdentifier","src":"73:5:54"}]},{"body":{"nativeSrc":"188:16:54","nodeType":"YulBlock","src":"188:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:54","nodeType":"YulLiteral","src":"197:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:54","nodeType":"YulLiteral","src":"200:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:54","nodeType":"YulIdentifier","src":"190:6:54"},"nativeSrc":"190:12:54","nodeType":"YulFunctionCall","src":"190:12:54"},"nativeSrc":"190:12:54","nodeType":"YulExpressionStatement","src":"190:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:54","nodeType":"YulIdentifier","src":"124:5:54"},{"arguments":[{"name":"value","nativeSrc":"135:5:54","nodeType":"YulIdentifier","src":"135:5:54"},{"kind":"number","nativeSrc":"142:42:54","nodeType":"YulLiteral","src":"142:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:54","nodeType":"YulIdentifier","src":"131:3:54"},"nativeSrc":"131:54:54","nodeType":"YulFunctionCall","src":"131:54:54"}],"functionName":{"name":"eq","nativeSrc":"121:2:54","nodeType":"YulIdentifier","src":"121:2:54"},"nativeSrc":"121:65:54","nodeType":"YulFunctionCall","src":"121:65:54"}],"functionName":{"name":"iszero","nativeSrc":"114:6:54","nodeType":"YulIdentifier","src":"114:6:54"},"nativeSrc":"114:73:54","nodeType":"YulFunctionCall","src":"114:73:54"},"nativeSrc":"111:93:54","nodeType":"YulIf","src":"111:93:54"}]},"name":"abi_decode_address","nativeSrc":"14:196:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:54","nodeType":"YulTypedName","src":"42:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:54","nodeType":"YulTypedName","src":"53:5:54","type":""}],"src":"14:196:54"},{"body":{"nativeSrc":"288:275:54","nodeType":"YulBlock","src":"288:275:54","statements":[{"body":{"nativeSrc":"337:16:54","nodeType":"YulBlock","src":"337:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"346:1:54","nodeType":"YulLiteral","src":"346:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"349:1:54","nodeType":"YulLiteral","src":"349:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"339:6:54","nodeType":"YulIdentifier","src":"339:6:54"},"nativeSrc":"339:12:54","nodeType":"YulFunctionCall","src":"339:12:54"},"nativeSrc":"339:12:54","nodeType":"YulExpressionStatement","src":"339:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"316:6:54","nodeType":"YulIdentifier","src":"316:6:54"},{"kind":"number","nativeSrc":"324:4:54","nodeType":"YulLiteral","src":"324:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"312:3:54","nodeType":"YulIdentifier","src":"312:3:54"},"nativeSrc":"312:17:54","nodeType":"YulFunctionCall","src":"312:17:54"},{"name":"end","nativeSrc":"331:3:54","nodeType":"YulIdentifier","src":"331:3:54"}],"functionName":{"name":"slt","nativeSrc":"308:3:54","nodeType":"YulIdentifier","src":"308:3:54"},"nativeSrc":"308:27:54","nodeType":"YulFunctionCall","src":"308:27:54"}],"functionName":{"name":"iszero","nativeSrc":"301:6:54","nodeType":"YulIdentifier","src":"301:6:54"},"nativeSrc":"301:35:54","nodeType":"YulFunctionCall","src":"301:35:54"},"nativeSrc":"298:55:54","nodeType":"YulIf","src":"298:55:54"},{"nativeSrc":"362:30:54","nodeType":"YulAssignment","src":"362:30:54","value":{"arguments":[{"name":"offset","nativeSrc":"385:6:54","nodeType":"YulIdentifier","src":"385:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"372:12:54","nodeType":"YulIdentifier","src":"372:12:54"},"nativeSrc":"372:20:54","nodeType":"YulFunctionCall","src":"372:20:54"},"variableNames":[{"name":"length","nativeSrc":"362:6:54","nodeType":"YulIdentifier","src":"362:6:54"}]},{"body":{"nativeSrc":"435:16:54","nodeType":"YulBlock","src":"435:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"444:1:54","nodeType":"YulLiteral","src":"444:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"447:1:54","nodeType":"YulLiteral","src":"447:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"437:6:54","nodeType":"YulIdentifier","src":"437:6:54"},"nativeSrc":"437:12:54","nodeType":"YulFunctionCall","src":"437:12:54"},"nativeSrc":"437:12:54","nodeType":"YulExpressionStatement","src":"437:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"407:6:54","nodeType":"YulIdentifier","src":"407:6:54"},{"kind":"number","nativeSrc":"415:18:54","nodeType":"YulLiteral","src":"415:18:54","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"404:2:54","nodeType":"YulIdentifier","src":"404:2:54"},"nativeSrc":"404:30:54","nodeType":"YulFunctionCall","src":"404:30:54"},"nativeSrc":"401:50:54","nodeType":"YulIf","src":"401:50:54"},{"nativeSrc":"460:29:54","nodeType":"YulAssignment","src":"460:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"476:6:54","nodeType":"YulIdentifier","src":"476:6:54"},{"kind":"number","nativeSrc":"484:4:54","nodeType":"YulLiteral","src":"484:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"472:3:54","nodeType":"YulIdentifier","src":"472:3:54"},"nativeSrc":"472:17:54","nodeType":"YulFunctionCall","src":"472:17:54"},"variableNames":[{"name":"arrayPos","nativeSrc":"460:8:54","nodeType":"YulIdentifier","src":"460:8:54"}]},{"body":{"nativeSrc":"541:16:54","nodeType":"YulBlock","src":"541:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"550:1:54","nodeType":"YulLiteral","src":"550:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"553:1:54","nodeType":"YulLiteral","src":"553:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"543:6:54","nodeType":"YulIdentifier","src":"543:6:54"},"nativeSrc":"543:12:54","nodeType":"YulFunctionCall","src":"543:12:54"},"nativeSrc":"543:12:54","nodeType":"YulExpressionStatement","src":"543:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"512:6:54","nodeType":"YulIdentifier","src":"512:6:54"},{"name":"length","nativeSrc":"520:6:54","nodeType":"YulIdentifier","src":"520:6:54"}],"functionName":{"name":"add","nativeSrc":"508:3:54","nodeType":"YulIdentifier","src":"508:3:54"},"nativeSrc":"508:19:54","nodeType":"YulFunctionCall","src":"508:19:54"},{"kind":"number","nativeSrc":"529:4:54","nodeType":"YulLiteral","src":"529:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"504:3:54","nodeType":"YulIdentifier","src":"504:3:54"},"nativeSrc":"504:30:54","nodeType":"YulFunctionCall","src":"504:30:54"},{"name":"end","nativeSrc":"536:3:54","nodeType":"YulIdentifier","src":"536:3:54"}],"functionName":{"name":"gt","nativeSrc":"501:2:54","nodeType":"YulIdentifier","src":"501:2:54"},"nativeSrc":"501:39:54","nodeType":"YulFunctionCall","src":"501:39:54"},"nativeSrc":"498:59:54","nodeType":"YulIf","src":"498:59:54"}]},"name":"abi_decode_string_calldata","nativeSrc":"215:348:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"251:6:54","nodeType":"YulTypedName","src":"251:6:54","type":""},{"name":"end","nativeSrc":"259:3:54","nodeType":"YulTypedName","src":"259:3:54","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"267:8:54","nodeType":"YulTypedName","src":"267:8:54","type":""},{"name":"length","nativeSrc":"277:6:54","nodeType":"YulTypedName","src":"277:6:54","type":""}],"src":"215:348:54"},{"body":{"nativeSrc":"745:755:54","nodeType":"YulBlock","src":"745:755:54","statements":[{"body":{"nativeSrc":"792:16:54","nodeType":"YulBlock","src":"792:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"801:1:54","nodeType":"YulLiteral","src":"801:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"804:1:54","nodeType":"YulLiteral","src":"804:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"794:6:54","nodeType":"YulIdentifier","src":"794:6:54"},"nativeSrc":"794:12:54","nodeType":"YulFunctionCall","src":"794:12:54"},"nativeSrc":"794:12:54","nodeType":"YulExpressionStatement","src":"794:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"766:7:54","nodeType":"YulIdentifier","src":"766:7:54"},{"name":"headStart","nativeSrc":"775:9:54","nodeType":"YulIdentifier","src":"775:9:54"}],"functionName":{"name":"sub","nativeSrc":"762:3:54","nodeType":"YulIdentifier","src":"762:3:54"},"nativeSrc":"762:23:54","nodeType":"YulFunctionCall","src":"762:23:54"},{"kind":"number","nativeSrc":"787:3:54","nodeType":"YulLiteral","src":"787:3:54","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"758:3:54","nodeType":"YulIdentifier","src":"758:3:54"},"nativeSrc":"758:33:54","nodeType":"YulFunctionCall","src":"758:33:54"},"nativeSrc":"755:53:54","nodeType":"YulIf","src":"755:53:54"},{"nativeSrc":"817:39:54","nodeType":"YulAssignment","src":"817:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"846:9:54","nodeType":"YulIdentifier","src":"846:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"827:18:54","nodeType":"YulIdentifier","src":"827:18:54"},"nativeSrc":"827:29:54","nodeType":"YulFunctionCall","src":"827:29:54"},"variableNames":[{"name":"value0","nativeSrc":"817:6:54","nodeType":"YulIdentifier","src":"817:6:54"}]},{"nativeSrc":"865:42:54","nodeType":"YulAssignment","src":"865:42:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"892:9:54","nodeType":"YulIdentifier","src":"892:9:54"},{"kind":"number","nativeSrc":"903:2:54","nodeType":"YulLiteral","src":"903:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"888:3:54","nodeType":"YulIdentifier","src":"888:3:54"},"nativeSrc":"888:18:54","nodeType":"YulFunctionCall","src":"888:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"875:12:54","nodeType":"YulIdentifier","src":"875:12:54"},"nativeSrc":"875:32:54","nodeType":"YulFunctionCall","src":"875:32:54"},"variableNames":[{"name":"value1","nativeSrc":"865:6:54","nodeType":"YulIdentifier","src":"865:6:54"}]},{"nativeSrc":"916:46:54","nodeType":"YulVariableDeclaration","src":"916:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"947:9:54","nodeType":"YulIdentifier","src":"947:9:54"},{"kind":"number","nativeSrc":"958:2:54","nodeType":"YulLiteral","src":"958:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"943:3:54","nodeType":"YulIdentifier","src":"943:3:54"},"nativeSrc":"943:18:54","nodeType":"YulFunctionCall","src":"943:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"930:12:54","nodeType":"YulIdentifier","src":"930:12:54"},"nativeSrc":"930:32:54","nodeType":"YulFunctionCall","src":"930:32:54"},"variables":[{"name":"offset","nativeSrc":"920:6:54","nodeType":"YulTypedName","src":"920:6:54","type":""}]},{"nativeSrc":"971:28:54","nodeType":"YulVariableDeclaration","src":"971:28:54","value":{"kind":"number","nativeSrc":"981:18:54","nodeType":"YulLiteral","src":"981:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"975:2:54","nodeType":"YulTypedName","src":"975:2:54","type":""}]},{"body":{"nativeSrc":"1026:16:54","nodeType":"YulBlock","src":"1026:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1035:1:54","nodeType":"YulLiteral","src":"1035:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1038:1:54","nodeType":"YulLiteral","src":"1038:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1028:6:54","nodeType":"YulIdentifier","src":"1028:6:54"},"nativeSrc":"1028:12:54","nodeType":"YulFunctionCall","src":"1028:12:54"},"nativeSrc":"1028:12:54","nodeType":"YulExpressionStatement","src":"1028:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1014:6:54","nodeType":"YulIdentifier","src":"1014:6:54"},{"name":"_1","nativeSrc":"1022:2:54","nodeType":"YulIdentifier","src":"1022:2:54"}],"functionName":{"name":"gt","nativeSrc":"1011:2:54","nodeType":"YulIdentifier","src":"1011:2:54"},"nativeSrc":"1011:14:54","nodeType":"YulFunctionCall","src":"1011:14:54"},"nativeSrc":"1008:34:54","nodeType":"YulIf","src":"1008:34:54"},{"nativeSrc":"1051:85:54","nodeType":"YulVariableDeclaration","src":"1051:85:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1108:9:54","nodeType":"YulIdentifier","src":"1108:9:54"},{"name":"offset","nativeSrc":"1119:6:54","nodeType":"YulIdentifier","src":"1119:6:54"}],"functionName":{"name":"add","nativeSrc":"1104:3:54","nodeType":"YulIdentifier","src":"1104:3:54"},"nativeSrc":"1104:22:54","nodeType":"YulFunctionCall","src":"1104:22:54"},{"name":"dataEnd","nativeSrc":"1128:7:54","nodeType":"YulIdentifier","src":"1128:7:54"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1077:26:54","nodeType":"YulIdentifier","src":"1077:26:54"},"nativeSrc":"1077:59:54","nodeType":"YulFunctionCall","src":"1077:59:54"},"variables":[{"name":"value2_1","nativeSrc":"1055:8:54","nodeType":"YulTypedName","src":"1055:8:54","type":""},{"name":"value3_1","nativeSrc":"1065:8:54","nodeType":"YulTypedName","src":"1065:8:54","type":""}]},{"nativeSrc":"1145:18:54","nodeType":"YulAssignment","src":"1145:18:54","value":{"name":"value2_1","nativeSrc":"1155:8:54","nodeType":"YulIdentifier","src":"1155:8:54"},"variableNames":[{"name":"value2","nativeSrc":"1145:6:54","nodeType":"YulIdentifier","src":"1145:6:54"}]},{"nativeSrc":"1172:18:54","nodeType":"YulAssignment","src":"1172:18:54","value":{"name":"value3_1","nativeSrc":"1182:8:54","nodeType":"YulIdentifier","src":"1182:8:54"},"variableNames":[{"name":"value3","nativeSrc":"1172:6:54","nodeType":"YulIdentifier","src":"1172:6:54"}]},{"nativeSrc":"1199:48:54","nodeType":"YulVariableDeclaration","src":"1199:48:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1232:9:54","nodeType":"YulIdentifier","src":"1232:9:54"},{"kind":"number","nativeSrc":"1243:2:54","nodeType":"YulLiteral","src":"1243:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1228:3:54","nodeType":"YulIdentifier","src":"1228:3:54"},"nativeSrc":"1228:18:54","nodeType":"YulFunctionCall","src":"1228:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1215:12:54","nodeType":"YulIdentifier","src":"1215:12:54"},"nativeSrc":"1215:32:54","nodeType":"YulFunctionCall","src":"1215:32:54"},"variables":[{"name":"offset_1","nativeSrc":"1203:8:54","nodeType":"YulTypedName","src":"1203:8:54","type":""}]},{"body":{"nativeSrc":"1276:16:54","nodeType":"YulBlock","src":"1276:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:54","nodeType":"YulLiteral","src":"1285:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:54","nodeType":"YulLiteral","src":"1288:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1278:6:54","nodeType":"YulIdentifier","src":"1278:6:54"},"nativeSrc":"1278:12:54","nodeType":"YulFunctionCall","src":"1278:12:54"},"nativeSrc":"1278:12:54","nodeType":"YulExpressionStatement","src":"1278:12:54"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1262:8:54","nodeType":"YulIdentifier","src":"1262:8:54"},{"name":"_1","nativeSrc":"1272:2:54","nodeType":"YulIdentifier","src":"1272:2:54"}],"functionName":{"name":"gt","nativeSrc":"1259:2:54","nodeType":"YulIdentifier","src":"1259:2:54"},"nativeSrc":"1259:16:54","nodeType":"YulFunctionCall","src":"1259:16:54"},"nativeSrc":"1256:36:54","nodeType":"YulIf","src":"1256:36:54"},{"nativeSrc":"1301:87:54","nodeType":"YulVariableDeclaration","src":"1301:87:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1358:9:54","nodeType":"YulIdentifier","src":"1358:9:54"},{"name":"offset_1","nativeSrc":"1369:8:54","nodeType":"YulIdentifier","src":"1369:8:54"}],"functionName":{"name":"add","nativeSrc":"1354:3:54","nodeType":"YulIdentifier","src":"1354:3:54"},"nativeSrc":"1354:24:54","nodeType":"YulFunctionCall","src":"1354:24:54"},{"name":"dataEnd","nativeSrc":"1380:7:54","nodeType":"YulIdentifier","src":"1380:7:54"}],"functionName":{"name":"abi_decode_string_calldata","nativeSrc":"1327:26:54","nodeType":"YulIdentifier","src":"1327:26:54"},"nativeSrc":"1327:61:54","nodeType":"YulFunctionCall","src":"1327:61:54"},"variables":[{"name":"value4_1","nativeSrc":"1305:8:54","nodeType":"YulTypedName","src":"1305:8:54","type":""},{"name":"value5_1","nativeSrc":"1315:8:54","nodeType":"YulTypedName","src":"1315:8:54","type":""}]},{"nativeSrc":"1397:18:54","nodeType":"YulAssignment","src":"1397:18:54","value":{"name":"value4_1","nativeSrc":"1407:8:54","nodeType":"YulIdentifier","src":"1407:8:54"},"variableNames":[{"name":"value4","nativeSrc":"1397:6:54","nodeType":"YulIdentifier","src":"1397:6:54"}]},{"nativeSrc":"1424:18:54","nodeType":"YulAssignment","src":"1424:18:54","value":{"name":"value5_1","nativeSrc":"1434:8:54","nodeType":"YulIdentifier","src":"1434:8:54"},"variableNames":[{"name":"value5","nativeSrc":"1424:6:54","nodeType":"YulIdentifier","src":"1424:6:54"}]},{"nativeSrc":"1451:43:54","nodeType":"YulAssignment","src":"1451:43:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1478:9:54","nodeType":"YulIdentifier","src":"1478:9:54"},{"kind":"number","nativeSrc":"1489:3:54","nodeType":"YulLiteral","src":"1489:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1474:3:54","nodeType":"YulIdentifier","src":"1474:3:54"},"nativeSrc":"1474:19:54","nodeType":"YulFunctionCall","src":"1474:19:54"}],"functionName":{"name":"calldataload","nativeSrc":"1461:12:54","nodeType":"YulIdentifier","src":"1461:12:54"},"nativeSrc":"1461:33:54","nodeType":"YulFunctionCall","src":"1461:33:54"},"variableNames":[{"name":"value6","nativeSrc":"1451:6:54","nodeType":"YulIdentifier","src":"1451:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256","nativeSrc":"568:932:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"663:9:54","nodeType":"YulTypedName","src":"663:9:54","type":""},{"name":"dataEnd","nativeSrc":"674:7:54","nodeType":"YulTypedName","src":"674:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"686:6:54","nodeType":"YulTypedName","src":"686:6:54","type":""},{"name":"value1","nativeSrc":"694:6:54","nodeType":"YulTypedName","src":"694:6:54","type":""},{"name":"value2","nativeSrc":"702:6:54","nodeType":"YulTypedName","src":"702:6:54","type":""},{"name":"value3","nativeSrc":"710:6:54","nodeType":"YulTypedName","src":"710:6:54","type":""},{"name":"value4","nativeSrc":"718:6:54","nodeType":"YulTypedName","src":"718:6:54","type":""},{"name":"value5","nativeSrc":"726:6:54","nodeType":"YulTypedName","src":"726:6:54","type":""},{"name":"value6","nativeSrc":"734:6:54","nodeType":"YulTypedName","src":"734:6:54","type":""}],"src":"568:932:54"},{"body":{"nativeSrc":"1571:184:54","nodeType":"YulBlock","src":"1571:184:54","statements":[{"nativeSrc":"1581:10:54","nodeType":"YulVariableDeclaration","src":"1581:10:54","value":{"kind":"number","nativeSrc":"1590:1:54","nodeType":"YulLiteral","src":"1590:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1585:1:54","nodeType":"YulTypedName","src":"1585:1:54","type":""}]},{"body":{"nativeSrc":"1650:63:54","nodeType":"YulBlock","src":"1650:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1675:3:54","nodeType":"YulIdentifier","src":"1675:3:54"},{"name":"i","nativeSrc":"1680:1:54","nodeType":"YulIdentifier","src":"1680:1:54"}],"functionName":{"name":"add","nativeSrc":"1671:3:54","nodeType":"YulIdentifier","src":"1671:3:54"},"nativeSrc":"1671:11:54","nodeType":"YulFunctionCall","src":"1671:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1694:3:54","nodeType":"YulIdentifier","src":"1694:3:54"},{"name":"i","nativeSrc":"1699:1:54","nodeType":"YulIdentifier","src":"1699:1:54"}],"functionName":{"name":"add","nativeSrc":"1690:3:54","nodeType":"YulIdentifier","src":"1690:3:54"},"nativeSrc":"1690:11:54","nodeType":"YulFunctionCall","src":"1690:11:54"}],"functionName":{"name":"mload","nativeSrc":"1684:5:54","nodeType":"YulIdentifier","src":"1684:5:54"},"nativeSrc":"1684:18:54","nodeType":"YulFunctionCall","src":"1684:18:54"}],"functionName":{"name":"mstore","nativeSrc":"1664:6:54","nodeType":"YulIdentifier","src":"1664:6:54"},"nativeSrc":"1664:39:54","nodeType":"YulFunctionCall","src":"1664:39:54"},"nativeSrc":"1664:39:54","nodeType":"YulExpressionStatement","src":"1664:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1611:1:54","nodeType":"YulIdentifier","src":"1611:1:54"},{"name":"length","nativeSrc":"1614:6:54","nodeType":"YulIdentifier","src":"1614:6:54"}],"functionName":{"name":"lt","nativeSrc":"1608:2:54","nodeType":"YulIdentifier","src":"1608:2:54"},"nativeSrc":"1608:13:54","nodeType":"YulFunctionCall","src":"1608:13:54"},"nativeSrc":"1600:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"1622:19:54","nodeType":"YulBlock","src":"1622:19:54","statements":[{"nativeSrc":"1624:15:54","nodeType":"YulAssignment","src":"1624:15:54","value":{"arguments":[{"name":"i","nativeSrc":"1633:1:54","nodeType":"YulIdentifier","src":"1633:1:54"},{"kind":"number","nativeSrc":"1636:2:54","nodeType":"YulLiteral","src":"1636:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1629:3:54","nodeType":"YulIdentifier","src":"1629:3:54"},"nativeSrc":"1629:10:54","nodeType":"YulFunctionCall","src":"1629:10:54"},"variableNames":[{"name":"i","nativeSrc":"1624:1:54","nodeType":"YulIdentifier","src":"1624:1:54"}]}]},"pre":{"nativeSrc":"1604:3:54","nodeType":"YulBlock","src":"1604:3:54","statements":[]},"src":"1600:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1733:3:54","nodeType":"YulIdentifier","src":"1733:3:54"},{"name":"length","nativeSrc":"1738:6:54","nodeType":"YulIdentifier","src":"1738:6:54"}],"functionName":{"name":"add","nativeSrc":"1729:3:54","nodeType":"YulIdentifier","src":"1729:3:54"},"nativeSrc":"1729:16:54","nodeType":"YulFunctionCall","src":"1729:16:54"},{"kind":"number","nativeSrc":"1747:1:54","nodeType":"YulLiteral","src":"1747:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1722:6:54","nodeType":"YulIdentifier","src":"1722:6:54"},"nativeSrc":"1722:27:54","nodeType":"YulFunctionCall","src":"1722:27:54"},"nativeSrc":"1722:27:54","nodeType":"YulExpressionStatement","src":"1722:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1505:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1549:3:54","nodeType":"YulTypedName","src":"1549:3:54","type":""},{"name":"dst","nativeSrc":"1554:3:54","nodeType":"YulTypedName","src":"1554:3:54","type":""},{"name":"length","nativeSrc":"1559:6:54","nodeType":"YulTypedName","src":"1559:6:54","type":""}],"src":"1505:250:54"},{"body":{"nativeSrc":"1879:334:54","nodeType":"YulBlock","src":"1879:334:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1896:9:54","nodeType":"YulIdentifier","src":"1896:9:54"},{"kind":"number","nativeSrc":"1907:2:54","nodeType":"YulLiteral","src":"1907:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1889:6:54","nodeType":"YulIdentifier","src":"1889:6:54"},"nativeSrc":"1889:21:54","nodeType":"YulFunctionCall","src":"1889:21:54"},"nativeSrc":"1889:21:54","nodeType":"YulExpressionStatement","src":"1889:21:54"},{"nativeSrc":"1919:27:54","nodeType":"YulVariableDeclaration","src":"1919:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"1939:6:54","nodeType":"YulIdentifier","src":"1939:6:54"}],"functionName":{"name":"mload","nativeSrc":"1933:5:54","nodeType":"YulIdentifier","src":"1933:5:54"},"nativeSrc":"1933:13:54","nodeType":"YulFunctionCall","src":"1933:13:54"},"variables":[{"name":"length","nativeSrc":"1923:6:54","nodeType":"YulTypedName","src":"1923:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1966:9:54","nodeType":"YulIdentifier","src":"1966:9:54"},{"kind":"number","nativeSrc":"1977:2:54","nodeType":"YulLiteral","src":"1977:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1962:3:54","nodeType":"YulIdentifier","src":"1962:3:54"},"nativeSrc":"1962:18:54","nodeType":"YulFunctionCall","src":"1962:18:54"},{"name":"length","nativeSrc":"1982:6:54","nodeType":"YulIdentifier","src":"1982:6:54"}],"functionName":{"name":"mstore","nativeSrc":"1955:6:54","nodeType":"YulIdentifier","src":"1955:6:54"},"nativeSrc":"1955:34:54","nodeType":"YulFunctionCall","src":"1955:34:54"},"nativeSrc":"1955:34:54","nodeType":"YulExpressionStatement","src":"1955:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2037:6:54","nodeType":"YulIdentifier","src":"2037:6:54"},{"kind":"number","nativeSrc":"2045:2:54","nodeType":"YulLiteral","src":"2045:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2033:3:54","nodeType":"YulIdentifier","src":"2033:3:54"},"nativeSrc":"2033:15:54","nodeType":"YulFunctionCall","src":"2033:15:54"},{"arguments":[{"name":"headStart","nativeSrc":"2054:9:54","nodeType":"YulIdentifier","src":"2054:9:54"},{"kind":"number","nativeSrc":"2065:2:54","nodeType":"YulLiteral","src":"2065:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2050:3:54","nodeType":"YulIdentifier","src":"2050:3:54"},"nativeSrc":"2050:18:54","nodeType":"YulFunctionCall","src":"2050:18:54"},{"name":"length","nativeSrc":"2070:6:54","nodeType":"YulIdentifier","src":"2070:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1998:34:54","nodeType":"YulIdentifier","src":"1998:34:54"},"nativeSrc":"1998:79:54","nodeType":"YulFunctionCall","src":"1998:79:54"},"nativeSrc":"1998:79:54","nodeType":"YulExpressionStatement","src":"1998:79:54"},{"nativeSrc":"2086:121:54","nodeType":"YulAssignment","src":"2086:121:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2102:9:54","nodeType":"YulIdentifier","src":"2102:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2121:6:54","nodeType":"YulIdentifier","src":"2121:6:54"},{"kind":"number","nativeSrc":"2129:2:54","nodeType":"YulLiteral","src":"2129:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2117:3:54","nodeType":"YulIdentifier","src":"2117:3:54"},"nativeSrc":"2117:15:54","nodeType":"YulFunctionCall","src":"2117:15:54"},{"kind":"number","nativeSrc":"2134:66:54","nodeType":"YulLiteral","src":"2134:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"2113:3:54","nodeType":"YulIdentifier","src":"2113:3:54"},"nativeSrc":"2113:88:54","nodeType":"YulFunctionCall","src":"2113:88:54"}],"functionName":{"name":"add","nativeSrc":"2098:3:54","nodeType":"YulIdentifier","src":"2098:3:54"},"nativeSrc":"2098:104:54","nodeType":"YulFunctionCall","src":"2098:104:54"},{"kind":"number","nativeSrc":"2204:2:54","nodeType":"YulLiteral","src":"2204:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2094:3:54","nodeType":"YulIdentifier","src":"2094:3:54"},"nativeSrc":"2094:113:54","nodeType":"YulFunctionCall","src":"2094:113:54"},"variableNames":[{"name":"tail","nativeSrc":"2086:4:54","nodeType":"YulIdentifier","src":"2086:4:54"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"1760:453:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1848:9:54","nodeType":"YulTypedName","src":"1848:9:54","type":""},{"name":"value0","nativeSrc":"1859:6:54","nodeType":"YulTypedName","src":"1859:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1870:4:54","nodeType":"YulTypedName","src":"1870:4:54","type":""}],"src":"1760:453:54"},{"body":{"nativeSrc":"2319:125:54","nodeType":"YulBlock","src":"2319:125:54","statements":[{"nativeSrc":"2329:26:54","nodeType":"YulAssignment","src":"2329:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2341:9:54","nodeType":"YulIdentifier","src":"2341:9:54"},{"kind":"number","nativeSrc":"2352:2:54","nodeType":"YulLiteral","src":"2352:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2337:3:54","nodeType":"YulIdentifier","src":"2337:3:54"},"nativeSrc":"2337:18:54","nodeType":"YulFunctionCall","src":"2337:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2329:4:54","nodeType":"YulIdentifier","src":"2329:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2371:9:54","nodeType":"YulIdentifier","src":"2371:9:54"},{"arguments":[{"name":"value0","nativeSrc":"2386:6:54","nodeType":"YulIdentifier","src":"2386:6:54"},{"kind":"number","nativeSrc":"2394:42:54","nodeType":"YulLiteral","src":"2394:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2382:3:54","nodeType":"YulIdentifier","src":"2382:3:54"},"nativeSrc":"2382:55:54","nodeType":"YulFunctionCall","src":"2382:55:54"}],"functionName":{"name":"mstore","nativeSrc":"2364:6:54","nodeType":"YulIdentifier","src":"2364:6:54"},"nativeSrc":"2364:74:54","nodeType":"YulFunctionCall","src":"2364:74:54"},"nativeSrc":"2364:74:54","nodeType":"YulExpressionStatement","src":"2364:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2218:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2288:9:54","nodeType":"YulTypedName","src":"2288:9:54","type":""},{"name":"value0","nativeSrc":"2299:6:54","nodeType":"YulTypedName","src":"2299:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2310:4:54","nodeType":"YulTypedName","src":"2310:4:54","type":""}],"src":"2218:226:54"},{"body":{"nativeSrc":"2550:76:54","nodeType":"YulBlock","src":"2550:76:54","statements":[{"nativeSrc":"2560:26:54","nodeType":"YulAssignment","src":"2560:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2572:9:54","nodeType":"YulIdentifier","src":"2572:9:54"},{"kind":"number","nativeSrc":"2583:2:54","nodeType":"YulLiteral","src":"2583:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2568:3:54","nodeType":"YulIdentifier","src":"2568:3:54"},"nativeSrc":"2568:18:54","nodeType":"YulFunctionCall","src":"2568:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2560:4:54","nodeType":"YulIdentifier","src":"2560:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2602:9:54","nodeType":"YulIdentifier","src":"2602:9:54"},{"name":"value0","nativeSrc":"2613:6:54","nodeType":"YulIdentifier","src":"2613:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2595:6:54","nodeType":"YulIdentifier","src":"2595:6:54"},"nativeSrc":"2595:25:54","nodeType":"YulFunctionCall","src":"2595:25:54"},"nativeSrc":"2595:25:54","nodeType":"YulExpressionStatement","src":"2595:25:54"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2449:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2519:9:54","nodeType":"YulTypedName","src":"2519:9:54","type":""},{"name":"value0","nativeSrc":"2530:6:54","nodeType":"YulTypedName","src":"2530:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2541:4:54","nodeType":"YulTypedName","src":"2541:4:54","type":""}],"src":"2449:177:54"},{"body":{"nativeSrc":"2701:116:54","nodeType":"YulBlock","src":"2701:116:54","statements":[{"body":{"nativeSrc":"2747:16:54","nodeType":"YulBlock","src":"2747:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2756:1:54","nodeType":"YulLiteral","src":"2756:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2759:1:54","nodeType":"YulLiteral","src":"2759:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2749:6:54","nodeType":"YulIdentifier","src":"2749:6:54"},"nativeSrc":"2749:12:54","nodeType":"YulFunctionCall","src":"2749:12:54"},"nativeSrc":"2749:12:54","nodeType":"YulExpressionStatement","src":"2749:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2722:7:54","nodeType":"YulIdentifier","src":"2722:7:54"},{"name":"headStart","nativeSrc":"2731:9:54","nodeType":"YulIdentifier","src":"2731:9:54"}],"functionName":{"name":"sub","nativeSrc":"2718:3:54","nodeType":"YulIdentifier","src":"2718:3:54"},"nativeSrc":"2718:23:54","nodeType":"YulFunctionCall","src":"2718:23:54"},{"kind":"number","nativeSrc":"2743:2:54","nodeType":"YulLiteral","src":"2743:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2714:3:54","nodeType":"YulIdentifier","src":"2714:3:54"},"nativeSrc":"2714:32:54","nodeType":"YulFunctionCall","src":"2714:32:54"},"nativeSrc":"2711:52:54","nodeType":"YulIf","src":"2711:52:54"},{"nativeSrc":"2772:39:54","nodeType":"YulAssignment","src":"2772:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2801:9:54","nodeType":"YulIdentifier","src":"2801:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2782:18:54","nodeType":"YulIdentifier","src":"2782:18:54"},"nativeSrc":"2782:29:54","nodeType":"YulFunctionCall","src":"2782:29:54"},"variableNames":[{"name":"value0","nativeSrc":"2772:6:54","nodeType":"YulIdentifier","src":"2772:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2631:186:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2667:9:54","nodeType":"YulTypedName","src":"2667:9:54","type":""},{"name":"dataEnd","nativeSrc":"2678:7:54","nodeType":"YulTypedName","src":"2678:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2690:6:54","nodeType":"YulTypedName","src":"2690:6:54","type":""}],"src":"2631:186:54"},{"body":{"nativeSrc":"2923:76:54","nodeType":"YulBlock","src":"2923:76:54","statements":[{"nativeSrc":"2933:26:54","nodeType":"YulAssignment","src":"2933:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2945:9:54","nodeType":"YulIdentifier","src":"2945:9:54"},{"kind":"number","nativeSrc":"2956:2:54","nodeType":"YulLiteral","src":"2956:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2941:3:54","nodeType":"YulIdentifier","src":"2941:3:54"},"nativeSrc":"2941:18:54","nodeType":"YulFunctionCall","src":"2941:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2933:4:54","nodeType":"YulIdentifier","src":"2933:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2975:9:54","nodeType":"YulIdentifier","src":"2975:9:54"},{"name":"value0","nativeSrc":"2986:6:54","nodeType":"YulIdentifier","src":"2986:6:54"}],"functionName":{"name":"mstore","nativeSrc":"2968:6:54","nodeType":"YulIdentifier","src":"2968:6:54"},"nativeSrc":"2968:25:54","nodeType":"YulFunctionCall","src":"2968:25:54"},"nativeSrc":"2968:25:54","nodeType":"YulExpressionStatement","src":"2968:25:54"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2822:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2892:9:54","nodeType":"YulTypedName","src":"2892:9:54","type":""},{"name":"value0","nativeSrc":"2903:6:54","nodeType":"YulTypedName","src":"2903:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2914:4:54","nodeType":"YulTypedName","src":"2914:4:54","type":""}],"src":"2822:177:54"},{"body":{"nativeSrc":"3074:110:54","nodeType":"YulBlock","src":"3074:110:54","statements":[{"body":{"nativeSrc":"3120:16:54","nodeType":"YulBlock","src":"3120:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3129:1:54","nodeType":"YulLiteral","src":"3129:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3132:1:54","nodeType":"YulLiteral","src":"3132:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3122:6:54","nodeType":"YulIdentifier","src":"3122:6:54"},"nativeSrc":"3122:12:54","nodeType":"YulFunctionCall","src":"3122:12:54"},"nativeSrc":"3122:12:54","nodeType":"YulExpressionStatement","src":"3122:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3095:7:54","nodeType":"YulIdentifier","src":"3095:7:54"},{"name":"headStart","nativeSrc":"3104:9:54","nodeType":"YulIdentifier","src":"3104:9:54"}],"functionName":{"name":"sub","nativeSrc":"3091:3:54","nodeType":"YulIdentifier","src":"3091:3:54"},"nativeSrc":"3091:23:54","nodeType":"YulFunctionCall","src":"3091:23:54"},{"kind":"number","nativeSrc":"3116:2:54","nodeType":"YulLiteral","src":"3116:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3087:3:54","nodeType":"YulIdentifier","src":"3087:3:54"},"nativeSrc":"3087:32:54","nodeType":"YulFunctionCall","src":"3087:32:54"},"nativeSrc":"3084:52:54","nodeType":"YulIf","src":"3084:52:54"},{"nativeSrc":"3145:33:54","nodeType":"YulAssignment","src":"3145:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3168:9:54","nodeType":"YulIdentifier","src":"3168:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"3155:12:54","nodeType":"YulIdentifier","src":"3155:12:54"},"nativeSrc":"3155:23:54","nodeType":"YulFunctionCall","src":"3155:23:54"},"variableNames":[{"name":"value0","nativeSrc":"3145:6:54","nodeType":"YulIdentifier","src":"3145:6:54"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3004:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3040:9:54","nodeType":"YulTypedName","src":"3040:9:54","type":""},{"name":"dataEnd","nativeSrc":"3051:7:54","nodeType":"YulTypedName","src":"3051:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3063:6:54","nodeType":"YulTypedName","src":"3063:6:54","type":""}],"src":"3004:180:54"},{"body":{"nativeSrc":"3259:110:54","nodeType":"YulBlock","src":"3259:110:54","statements":[{"body":{"nativeSrc":"3305:16:54","nodeType":"YulBlock","src":"3305:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3314:1:54","nodeType":"YulLiteral","src":"3314:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3317:1:54","nodeType":"YulLiteral","src":"3317:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3307:6:54","nodeType":"YulIdentifier","src":"3307:6:54"},"nativeSrc":"3307:12:54","nodeType":"YulFunctionCall","src":"3307:12:54"},"nativeSrc":"3307:12:54","nodeType":"YulExpressionStatement","src":"3307:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3280:7:54","nodeType":"YulIdentifier","src":"3280:7:54"},{"name":"headStart","nativeSrc":"3289:9:54","nodeType":"YulIdentifier","src":"3289:9:54"}],"functionName":{"name":"sub","nativeSrc":"3276:3:54","nodeType":"YulIdentifier","src":"3276:3:54"},"nativeSrc":"3276:23:54","nodeType":"YulFunctionCall","src":"3276:23:54"},{"kind":"number","nativeSrc":"3301:2:54","nodeType":"YulLiteral","src":"3301:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3272:3:54","nodeType":"YulIdentifier","src":"3272:3:54"},"nativeSrc":"3272:32:54","nodeType":"YulFunctionCall","src":"3272:32:54"},"nativeSrc":"3269:52:54","nodeType":"YulIf","src":"3269:52:54"},{"nativeSrc":"3330:33:54","nodeType":"YulAssignment","src":"3330:33:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3353:9:54","nodeType":"YulIdentifier","src":"3353:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"3340:12:54","nodeType":"YulIdentifier","src":"3340:12:54"},"nativeSrc":"3340:23:54","nodeType":"YulFunctionCall","src":"3340:23:54"},"variableNames":[{"name":"value0","nativeSrc":"3330:6:54","nodeType":"YulIdentifier","src":"3330:6:54"}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"3189:180:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3225:9:54","nodeType":"YulTypedName","src":"3225:9:54","type":""},{"name":"dataEnd","nativeSrc":"3236:7:54","nodeType":"YulTypedName","src":"3236:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3248:6:54","nodeType":"YulTypedName","src":"3248:6:54","type":""}],"src":"3189:180:54"},{"body":{"nativeSrc":"3469:92:54","nodeType":"YulBlock","src":"3469:92:54","statements":[{"nativeSrc":"3479:26:54","nodeType":"YulAssignment","src":"3479:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3491:9:54","nodeType":"YulIdentifier","src":"3491:9:54"},{"kind":"number","nativeSrc":"3502:2:54","nodeType":"YulLiteral","src":"3502:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3487:3:54","nodeType":"YulIdentifier","src":"3487:3:54"},"nativeSrc":"3487:18:54","nodeType":"YulFunctionCall","src":"3487:18:54"},"variableNames":[{"name":"tail","nativeSrc":"3479:4:54","nodeType":"YulIdentifier","src":"3479:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3521:9:54","nodeType":"YulIdentifier","src":"3521:9:54"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3546:6:54","nodeType":"YulIdentifier","src":"3546:6:54"}],"functionName":{"name":"iszero","nativeSrc":"3539:6:54","nodeType":"YulIdentifier","src":"3539:6:54"},"nativeSrc":"3539:14:54","nodeType":"YulFunctionCall","src":"3539:14:54"}],"functionName":{"name":"iszero","nativeSrc":"3532:6:54","nodeType":"YulIdentifier","src":"3532:6:54"},"nativeSrc":"3532:22:54","nodeType":"YulFunctionCall","src":"3532:22:54"}],"functionName":{"name":"mstore","nativeSrc":"3514:6:54","nodeType":"YulIdentifier","src":"3514:6:54"},"nativeSrc":"3514:41:54","nodeType":"YulFunctionCall","src":"3514:41:54"},"nativeSrc":"3514:41:54","nodeType":"YulExpressionStatement","src":"3514:41:54"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3374:187:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3438:9:54","nodeType":"YulTypedName","src":"3438:9:54","type":""},{"name":"value0","nativeSrc":"3449:6:54","nodeType":"YulTypedName","src":"3449:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3460:4:54","nodeType":"YulTypedName","src":"3460:4:54","type":""}],"src":"3374:187:54"},{"body":{"nativeSrc":"3740:246:54","nodeType":"YulBlock","src":"3740:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3757:9:54","nodeType":"YulIdentifier","src":"3757:9:54"},{"kind":"number","nativeSrc":"3768:2:54","nodeType":"YulLiteral","src":"3768:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3750:6:54","nodeType":"YulIdentifier","src":"3750:6:54"},"nativeSrc":"3750:21:54","nodeType":"YulFunctionCall","src":"3750:21:54"},"nativeSrc":"3750:21:54","nodeType":"YulExpressionStatement","src":"3750:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3791:9:54","nodeType":"YulIdentifier","src":"3791:9:54"},{"kind":"number","nativeSrc":"3802:2:54","nodeType":"YulLiteral","src":"3802:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3787:3:54","nodeType":"YulIdentifier","src":"3787:3:54"},"nativeSrc":"3787:18:54","nodeType":"YulFunctionCall","src":"3787:18:54"},{"kind":"number","nativeSrc":"3807:2:54","nodeType":"YulLiteral","src":"3807:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"3780:6:54","nodeType":"YulIdentifier","src":"3780:6:54"},"nativeSrc":"3780:30:54","nodeType":"YulFunctionCall","src":"3780:30:54"},"nativeSrc":"3780:30:54","nodeType":"YulExpressionStatement","src":"3780:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3830:9:54","nodeType":"YulIdentifier","src":"3830:9:54"},{"kind":"number","nativeSrc":"3841:2:54","nodeType":"YulLiteral","src":"3841:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3826:3:54","nodeType":"YulIdentifier","src":"3826:3:54"},"nativeSrc":"3826:18:54","nodeType":"YulFunctionCall","src":"3826:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a204361","kind":"string","nativeSrc":"3846:34:54","nodeType":"YulLiteral","src":"3846:34:54","type":"","value":"Timelock::executeTransaction: Ca"}],"functionName":{"name":"mstore","nativeSrc":"3819:6:54","nodeType":"YulIdentifier","src":"3819:6:54"},"nativeSrc":"3819:62:54","nodeType":"YulFunctionCall","src":"3819:62:54"},"nativeSrc":"3819:62:54","nodeType":"YulExpressionStatement","src":"3819:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3901:9:54","nodeType":"YulIdentifier","src":"3901:9:54"},{"kind":"number","nativeSrc":"3912:2:54","nodeType":"YulLiteral","src":"3912:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3897:3:54","nodeType":"YulIdentifier","src":"3897:3:54"},"nativeSrc":"3897:18:54","nodeType":"YulFunctionCall","src":"3897:18:54"},{"hexValue":"6c6c206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"3917:26:54","nodeType":"YulLiteral","src":"3917:26:54","type":"","value":"ll must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"3890:6:54","nodeType":"YulIdentifier","src":"3890:6:54"},"nativeSrc":"3890:54:54","nodeType":"YulFunctionCall","src":"3890:54:54"},"nativeSrc":"3890:54:54","nodeType":"YulExpressionStatement","src":"3890:54:54"},{"nativeSrc":"3953:27:54","nodeType":"YulAssignment","src":"3953:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3965:9:54","nodeType":"YulIdentifier","src":"3965:9:54"},{"kind":"number","nativeSrc":"3976:3:54","nodeType":"YulLiteral","src":"3976:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3961:3:54","nodeType":"YulIdentifier","src":"3961:3:54"},"nativeSrc":"3961:19:54","nodeType":"YulFunctionCall","src":"3961:19:54"},"variableNames":[{"name":"tail","nativeSrc":"3953:4:54","nodeType":"YulIdentifier","src":"3953:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3566:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3717:9:54","nodeType":"YulTypedName","src":"3717:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3731:4:54","nodeType":"YulTypedName","src":"3731:4:54","type":""}],"src":"3566:420:54"},{"body":{"nativeSrc":"4058:259:54","nodeType":"YulBlock","src":"4058:259:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4075:3:54","nodeType":"YulIdentifier","src":"4075:3:54"},{"name":"length","nativeSrc":"4080:6:54","nodeType":"YulIdentifier","src":"4080:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4068:6:54","nodeType":"YulIdentifier","src":"4068:6:54"},"nativeSrc":"4068:19:54","nodeType":"YulFunctionCall","src":"4068:19:54"},"nativeSrc":"4068:19:54","nodeType":"YulExpressionStatement","src":"4068:19:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4113:3:54","nodeType":"YulIdentifier","src":"4113:3:54"},{"kind":"number","nativeSrc":"4118:4:54","nodeType":"YulLiteral","src":"4118:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4109:3:54","nodeType":"YulIdentifier","src":"4109:3:54"},"nativeSrc":"4109:14:54","nodeType":"YulFunctionCall","src":"4109:14:54"},{"name":"start","nativeSrc":"4125:5:54","nodeType":"YulIdentifier","src":"4125:5:54"},{"name":"length","nativeSrc":"4132:6:54","nodeType":"YulIdentifier","src":"4132:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"4096:12:54","nodeType":"YulIdentifier","src":"4096:12:54"},"nativeSrc":"4096:43:54","nodeType":"YulFunctionCall","src":"4096:43:54"},"nativeSrc":"4096:43:54","nodeType":"YulExpressionStatement","src":"4096:43:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4163:3:54","nodeType":"YulIdentifier","src":"4163:3:54"},{"name":"length","nativeSrc":"4168:6:54","nodeType":"YulIdentifier","src":"4168:6:54"}],"functionName":{"name":"add","nativeSrc":"4159:3:54","nodeType":"YulIdentifier","src":"4159:3:54"},"nativeSrc":"4159:16:54","nodeType":"YulFunctionCall","src":"4159:16:54"},{"kind":"number","nativeSrc":"4177:4:54","nodeType":"YulLiteral","src":"4177:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4155:3:54","nodeType":"YulIdentifier","src":"4155:3:54"},"nativeSrc":"4155:27:54","nodeType":"YulFunctionCall","src":"4155:27:54"},{"kind":"number","nativeSrc":"4184:1:54","nodeType":"YulLiteral","src":"4184:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4148:6:54","nodeType":"YulIdentifier","src":"4148:6:54"},"nativeSrc":"4148:38:54","nodeType":"YulFunctionCall","src":"4148:38:54"},"nativeSrc":"4148:38:54","nodeType":"YulExpressionStatement","src":"4148:38:54"},{"nativeSrc":"4195:116:54","nodeType":"YulAssignment","src":"4195:116:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4210:3:54","nodeType":"YulIdentifier","src":"4210:3:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4223:6:54","nodeType":"YulIdentifier","src":"4223:6:54"},{"kind":"number","nativeSrc":"4231:2:54","nodeType":"YulLiteral","src":"4231:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4219:3:54","nodeType":"YulIdentifier","src":"4219:3:54"},"nativeSrc":"4219:15:54","nodeType":"YulFunctionCall","src":"4219:15:54"},{"kind":"number","nativeSrc":"4236:66:54","nodeType":"YulLiteral","src":"4236:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4215:3:54","nodeType":"YulIdentifier","src":"4215:3:54"},"nativeSrc":"4215:88:54","nodeType":"YulFunctionCall","src":"4215:88:54"}],"functionName":{"name":"add","nativeSrc":"4206:3:54","nodeType":"YulIdentifier","src":"4206:3:54"},"nativeSrc":"4206:98:54","nodeType":"YulFunctionCall","src":"4206:98:54"},{"kind":"number","nativeSrc":"4306:4:54","nodeType":"YulLiteral","src":"4306:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4202:3:54","nodeType":"YulIdentifier","src":"4202:3:54"},"nativeSrc":"4202:109:54","nodeType":"YulFunctionCall","src":"4202:109:54"},"variableNames":[{"name":"end","nativeSrc":"4195:3:54","nodeType":"YulIdentifier","src":"4195:3:54"}]}]},"name":"abi_encode_string_calldata","nativeSrc":"3991:326:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"4027:5:54","nodeType":"YulTypedName","src":"4027:5:54","type":""},{"name":"length","nativeSrc":"4034:6:54","nodeType":"YulTypedName","src":"4034:6:54","type":""},{"name":"pos","nativeSrc":"4042:3:54","nodeType":"YulTypedName","src":"4042:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4050:3:54","nodeType":"YulTypedName","src":"4050:3:54","type":""}],"src":"3991:326:54"},{"body":{"nativeSrc":"4593:429:54","nodeType":"YulBlock","src":"4593:429:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4610:9:54","nodeType":"YulIdentifier","src":"4610:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4625:6:54","nodeType":"YulIdentifier","src":"4625:6:54"},{"kind":"number","nativeSrc":"4633:42:54","nodeType":"YulLiteral","src":"4633:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4621:3:54","nodeType":"YulIdentifier","src":"4621:3:54"},"nativeSrc":"4621:55:54","nodeType":"YulFunctionCall","src":"4621:55:54"}],"functionName":{"name":"mstore","nativeSrc":"4603:6:54","nodeType":"YulIdentifier","src":"4603:6:54"},"nativeSrc":"4603:74:54","nodeType":"YulFunctionCall","src":"4603:74:54"},"nativeSrc":"4603:74:54","nodeType":"YulExpressionStatement","src":"4603:74:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4697:9:54","nodeType":"YulIdentifier","src":"4697:9:54"},{"kind":"number","nativeSrc":"4708:2:54","nodeType":"YulLiteral","src":"4708:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4693:3:54","nodeType":"YulIdentifier","src":"4693:3:54"},"nativeSrc":"4693:18:54","nodeType":"YulFunctionCall","src":"4693:18:54"},{"name":"value1","nativeSrc":"4713:6:54","nodeType":"YulIdentifier","src":"4713:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4686:6:54","nodeType":"YulIdentifier","src":"4686:6:54"},"nativeSrc":"4686:34:54","nodeType":"YulFunctionCall","src":"4686:34:54"},"nativeSrc":"4686:34:54","nodeType":"YulExpressionStatement","src":"4686:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4740:9:54","nodeType":"YulIdentifier","src":"4740:9:54"},{"kind":"number","nativeSrc":"4751:2:54","nodeType":"YulLiteral","src":"4751:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4736:3:54","nodeType":"YulIdentifier","src":"4736:3:54"},"nativeSrc":"4736:18:54","nodeType":"YulFunctionCall","src":"4736:18:54"},{"kind":"number","nativeSrc":"4756:3:54","nodeType":"YulLiteral","src":"4756:3:54","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"4729:6:54","nodeType":"YulIdentifier","src":"4729:6:54"},"nativeSrc":"4729:31:54","nodeType":"YulFunctionCall","src":"4729:31:54"},"nativeSrc":"4729:31:54","nodeType":"YulExpressionStatement","src":"4729:31:54"},{"nativeSrc":"4769:77:54","nodeType":"YulVariableDeclaration","src":"4769:77:54","value":{"arguments":[{"name":"value2","nativeSrc":"4810:6:54","nodeType":"YulIdentifier","src":"4810:6:54"},{"name":"value3","nativeSrc":"4818:6:54","nodeType":"YulIdentifier","src":"4818:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"4830:9:54","nodeType":"YulIdentifier","src":"4830:9:54"},{"kind":"number","nativeSrc":"4841:3:54","nodeType":"YulLiteral","src":"4841:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"4826:3:54","nodeType":"YulIdentifier","src":"4826:3:54"},"nativeSrc":"4826:19:54","nodeType":"YulFunctionCall","src":"4826:19:54"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"4783:26:54","nodeType":"YulIdentifier","src":"4783:26:54"},"nativeSrc":"4783:63:54","nodeType":"YulFunctionCall","src":"4783:63:54"},"variables":[{"name":"tail_1","nativeSrc":"4773:6:54","nodeType":"YulTypedName","src":"4773:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4866:9:54","nodeType":"YulIdentifier","src":"4866:9:54"},{"kind":"number","nativeSrc":"4877:2:54","nodeType":"YulLiteral","src":"4877:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4862:3:54","nodeType":"YulIdentifier","src":"4862:3:54"},"nativeSrc":"4862:18:54","nodeType":"YulFunctionCall","src":"4862:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"4886:6:54","nodeType":"YulIdentifier","src":"4886:6:54"},{"name":"headStart","nativeSrc":"4894:9:54","nodeType":"YulIdentifier","src":"4894:9:54"}],"functionName":{"name":"sub","nativeSrc":"4882:3:54","nodeType":"YulIdentifier","src":"4882:3:54"},"nativeSrc":"4882:22:54","nodeType":"YulFunctionCall","src":"4882:22:54"}],"functionName":{"name":"mstore","nativeSrc":"4855:6:54","nodeType":"YulIdentifier","src":"4855:6:54"},"nativeSrc":"4855:50:54","nodeType":"YulFunctionCall","src":"4855:50:54"},"nativeSrc":"4855:50:54","nodeType":"YulExpressionStatement","src":"4855:50:54"},{"nativeSrc":"4914:58:54","nodeType":"YulAssignment","src":"4914:58:54","value":{"arguments":[{"name":"value4","nativeSrc":"4949:6:54","nodeType":"YulIdentifier","src":"4949:6:54"},{"name":"value5","nativeSrc":"4957:6:54","nodeType":"YulIdentifier","src":"4957:6:54"},{"name":"tail_1","nativeSrc":"4965:6:54","nodeType":"YulIdentifier","src":"4965:6:54"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"4922:26:54","nodeType":"YulIdentifier","src":"4922:26:54"},"nativeSrc":"4922:50:54","nodeType":"YulFunctionCall","src":"4922:50:54"},"variableNames":[{"name":"tail","nativeSrc":"4914:4:54","nodeType":"YulIdentifier","src":"4914:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4992:9:54","nodeType":"YulIdentifier","src":"4992:9:54"},{"kind":"number","nativeSrc":"5003:3:54","nodeType":"YulLiteral","src":"5003:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4988:3:54","nodeType":"YulIdentifier","src":"4988:3:54"},"nativeSrc":"4988:19:54","nodeType":"YulFunctionCall","src":"4988:19:54"},{"name":"value6","nativeSrc":"5009:6:54","nodeType":"YulIdentifier","src":"5009:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4981:6:54","nodeType":"YulIdentifier","src":"4981:6:54"},"nativeSrc":"4981:35:54","nodeType":"YulFunctionCall","src":"4981:35:54"},"nativeSrc":"4981:35:54","nodeType":"YulExpressionStatement","src":"4981:35:54"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"4322:700:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4514:9:54","nodeType":"YulTypedName","src":"4514:9:54","type":""},{"name":"value6","nativeSrc":"4525:6:54","nodeType":"YulTypedName","src":"4525:6:54","type":""},{"name":"value5","nativeSrc":"4533:6:54","nodeType":"YulTypedName","src":"4533:6:54","type":""},{"name":"value4","nativeSrc":"4541:6:54","nodeType":"YulTypedName","src":"4541:6:54","type":""},{"name":"value3","nativeSrc":"4549:6:54","nodeType":"YulTypedName","src":"4549:6:54","type":""},{"name":"value2","nativeSrc":"4557:6:54","nodeType":"YulTypedName","src":"4557:6:54","type":""},{"name":"value1","nativeSrc":"4565:6:54","nodeType":"YulTypedName","src":"4565:6:54","type":""},{"name":"value0","nativeSrc":"4573:6:54","nodeType":"YulTypedName","src":"4573:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4584:4:54","nodeType":"YulTypedName","src":"4584:4:54","type":""}],"src":"4322:700:54"},{"body":{"nativeSrc":"5201:251:54","nodeType":"YulBlock","src":"5201:251:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5218:9:54","nodeType":"YulIdentifier","src":"5218:9:54"},{"kind":"number","nativeSrc":"5229:2:54","nodeType":"YulLiteral","src":"5229:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5211:6:54","nodeType":"YulIdentifier","src":"5211:6:54"},"nativeSrc":"5211:21:54","nodeType":"YulFunctionCall","src":"5211:21:54"},"nativeSrc":"5211:21:54","nodeType":"YulExpressionStatement","src":"5211:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5252:9:54","nodeType":"YulIdentifier","src":"5252:9:54"},{"kind":"number","nativeSrc":"5263:2:54","nodeType":"YulLiteral","src":"5263:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5248:3:54","nodeType":"YulIdentifier","src":"5248:3:54"},"nativeSrc":"5248:18:54","nodeType":"YulFunctionCall","src":"5248:18:54"},{"kind":"number","nativeSrc":"5268:2:54","nodeType":"YulLiteral","src":"5268:2:54","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"5241:6:54","nodeType":"YulIdentifier","src":"5241:6:54"},"nativeSrc":"5241:30:54","nodeType":"YulFunctionCall","src":"5241:30:54"},"nativeSrc":"5241:30:54","nodeType":"YulExpressionStatement","src":"5241:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5291:9:54","nodeType":"YulIdentifier","src":"5291:9:54"},{"kind":"number","nativeSrc":"5302:2:54","nodeType":"YulLiteral","src":"5302:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5287:3:54","nodeType":"YulIdentifier","src":"5287:3:54"},"nativeSrc":"5287:18:54","nodeType":"YulFunctionCall","src":"5287:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"5307:34:54","nodeType":"YulLiteral","src":"5307:34:54","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"5280:6:54","nodeType":"YulIdentifier","src":"5280:6:54"},"nativeSrc":"5280:62:54","nodeType":"YulFunctionCall","src":"5280:62:54"},"nativeSrc":"5280:62:54","nodeType":"YulExpressionStatement","src":"5280:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5362:9:54","nodeType":"YulIdentifier","src":"5362:9:54"},{"kind":"number","nativeSrc":"5373:2:54","nodeType":"YulLiteral","src":"5373:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5358:3:54","nodeType":"YulIdentifier","src":"5358:3:54"},"nativeSrc":"5358:18:54","nodeType":"YulFunctionCall","src":"5358:18:54"},{"hexValue":"616e73616374696f6e206861736e2774206265656e207175657565642e","kind":"string","nativeSrc":"5378:31:54","nodeType":"YulLiteral","src":"5378:31:54","type":"","value":"ansaction hasn't been queued."}],"functionName":{"name":"mstore","nativeSrc":"5351:6:54","nodeType":"YulIdentifier","src":"5351:6:54"},"nativeSrc":"5351:59:54","nodeType":"YulFunctionCall","src":"5351:59:54"},"nativeSrc":"5351:59:54","nodeType":"YulExpressionStatement","src":"5351:59:54"},{"nativeSrc":"5419:27:54","nodeType":"YulAssignment","src":"5419:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5431:9:54","nodeType":"YulIdentifier","src":"5431:9:54"},{"kind":"number","nativeSrc":"5442:3:54","nodeType":"YulLiteral","src":"5442:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5427:3:54","nodeType":"YulIdentifier","src":"5427:3:54"},"nativeSrc":"5427:19:54","nodeType":"YulFunctionCall","src":"5427:19:54"},"variableNames":[{"name":"tail","nativeSrc":"5419:4:54","nodeType":"YulIdentifier","src":"5419:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5027:425:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5178:9:54","nodeType":"YulTypedName","src":"5178:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5192:4:54","nodeType":"YulTypedName","src":"5192:4:54","type":""}],"src":"5027:425:54"},{"body":{"nativeSrc":"5631:299:54","nodeType":"YulBlock","src":"5631:299:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5648:9:54","nodeType":"YulIdentifier","src":"5648:9:54"},{"kind":"number","nativeSrc":"5659:2:54","nodeType":"YulLiteral","src":"5659:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5641:6:54","nodeType":"YulIdentifier","src":"5641:6:54"},"nativeSrc":"5641:21:54","nodeType":"YulFunctionCall","src":"5641:21:54"},"nativeSrc":"5641:21:54","nodeType":"YulExpressionStatement","src":"5641:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5682:9:54","nodeType":"YulIdentifier","src":"5682:9:54"},{"kind":"number","nativeSrc":"5693:2:54","nodeType":"YulLiteral","src":"5693:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5678:3:54","nodeType":"YulIdentifier","src":"5678:3:54"},"nativeSrc":"5678:18:54","nodeType":"YulFunctionCall","src":"5678:18:54"},{"kind":"number","nativeSrc":"5698:2:54","nodeType":"YulLiteral","src":"5698:2:54","type":"","value":"69"}],"functionName":{"name":"mstore","nativeSrc":"5671:6:54","nodeType":"YulIdentifier","src":"5671:6:54"},"nativeSrc":"5671:30:54","nodeType":"YulFunctionCall","src":"5671:30:54"},"nativeSrc":"5671:30:54","nodeType":"YulExpressionStatement","src":"5671:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5721:9:54","nodeType":"YulIdentifier","src":"5721:9:54"},{"kind":"number","nativeSrc":"5732:2:54","nodeType":"YulLiteral","src":"5732:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5717:3:54","nodeType":"YulIdentifier","src":"5717:3:54"},"nativeSrc":"5717:18:54","nodeType":"YulFunctionCall","src":"5717:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"5737:34:54","nodeType":"YulLiteral","src":"5737:34:54","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"5710:6:54","nodeType":"YulIdentifier","src":"5710:6:54"},"nativeSrc":"5710:62:54","nodeType":"YulFunctionCall","src":"5710:62:54"},"nativeSrc":"5710:62:54","nodeType":"YulExpressionStatement","src":"5710:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5792:9:54","nodeType":"YulIdentifier","src":"5792:9:54"},{"kind":"number","nativeSrc":"5803:2:54","nodeType":"YulLiteral","src":"5803:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5788:3:54","nodeType":"YulIdentifier","src":"5788:3:54"},"nativeSrc":"5788:18:54","nodeType":"YulFunctionCall","src":"5788:18:54"},{"hexValue":"616e73616374696f6e206861736e2774207375727061737365642074696d6520","kind":"string","nativeSrc":"5808:34:54","nodeType":"YulLiteral","src":"5808:34:54","type":"","value":"ansaction hasn't surpassed time "}],"functionName":{"name":"mstore","nativeSrc":"5781:6:54","nodeType":"YulIdentifier","src":"5781:6:54"},"nativeSrc":"5781:62:54","nodeType":"YulFunctionCall","src":"5781:62:54"},"nativeSrc":"5781:62:54","nodeType":"YulExpressionStatement","src":"5781:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5863:9:54","nodeType":"YulIdentifier","src":"5863:9:54"},{"kind":"number","nativeSrc":"5874:3:54","nodeType":"YulLiteral","src":"5874:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5859:3:54","nodeType":"YulIdentifier","src":"5859:3:54"},"nativeSrc":"5859:19:54","nodeType":"YulFunctionCall","src":"5859:19:54"},{"hexValue":"6c6f636b2e","kind":"string","nativeSrc":"5880:7:54","nodeType":"YulLiteral","src":"5880:7:54","type":"","value":"lock."}],"functionName":{"name":"mstore","nativeSrc":"5852:6:54","nodeType":"YulIdentifier","src":"5852:6:54"},"nativeSrc":"5852:36:54","nodeType":"YulFunctionCall","src":"5852:36:54"},"nativeSrc":"5852:36:54","nodeType":"YulExpressionStatement","src":"5852:36:54"},{"nativeSrc":"5897:27:54","nodeType":"YulAssignment","src":"5897:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5909:9:54","nodeType":"YulIdentifier","src":"5909:9:54"},{"kind":"number","nativeSrc":"5920:3:54","nodeType":"YulLiteral","src":"5920:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5905:3:54","nodeType":"YulIdentifier","src":"5905:3:54"},"nativeSrc":"5905:19:54","nodeType":"YulFunctionCall","src":"5905:19:54"},"variableNames":[{"name":"tail","nativeSrc":"5897:4:54","nodeType":"YulIdentifier","src":"5897:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5457:473:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5608:9:54","nodeType":"YulTypedName","src":"5608:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5622:4:54","nodeType":"YulTypedName","src":"5622:4:54","type":""}],"src":"5457:473:54"},{"body":{"nativeSrc":"5983:231:54","nodeType":"YulBlock","src":"5983:231:54","statements":[{"nativeSrc":"5993:16:54","nodeType":"YulAssignment","src":"5993:16:54","value":{"arguments":[{"name":"x","nativeSrc":"6004:1:54","nodeType":"YulIdentifier","src":"6004:1:54"},{"name":"y","nativeSrc":"6007:1:54","nodeType":"YulIdentifier","src":"6007:1:54"}],"functionName":{"name":"add","nativeSrc":"6000:3:54","nodeType":"YulIdentifier","src":"6000:3:54"},"nativeSrc":"6000:9:54","nodeType":"YulFunctionCall","src":"6000:9:54"},"variableNames":[{"name":"sum","nativeSrc":"5993:3:54","nodeType":"YulIdentifier","src":"5993:3:54"}]},{"body":{"nativeSrc":"6040:168:54","nodeType":"YulBlock","src":"6040:168:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6061:1:54","nodeType":"YulLiteral","src":"6061:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6064:77:54","nodeType":"YulLiteral","src":"6064:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6054:6:54","nodeType":"YulIdentifier","src":"6054:6:54"},"nativeSrc":"6054:88:54","nodeType":"YulFunctionCall","src":"6054:88:54"},"nativeSrc":"6054:88:54","nodeType":"YulExpressionStatement","src":"6054:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6162:1:54","nodeType":"YulLiteral","src":"6162:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"6165:4:54","nodeType":"YulLiteral","src":"6165:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6155:6:54","nodeType":"YulIdentifier","src":"6155:6:54"},"nativeSrc":"6155:15:54","nodeType":"YulFunctionCall","src":"6155:15:54"},"nativeSrc":"6155:15:54","nodeType":"YulExpressionStatement","src":"6155:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6190:1:54","nodeType":"YulLiteral","src":"6190:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"6193:4:54","nodeType":"YulLiteral","src":"6193:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6183:6:54","nodeType":"YulIdentifier","src":"6183:6:54"},"nativeSrc":"6183:15:54","nodeType":"YulFunctionCall","src":"6183:15:54"},"nativeSrc":"6183:15:54","nodeType":"YulExpressionStatement","src":"6183:15:54"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6024:1:54","nodeType":"YulIdentifier","src":"6024:1:54"},{"name":"sum","nativeSrc":"6027:3:54","nodeType":"YulIdentifier","src":"6027:3:54"}],"functionName":{"name":"gt","nativeSrc":"6021:2:54","nodeType":"YulIdentifier","src":"6021:2:54"},"nativeSrc":"6021:10:54","nodeType":"YulFunctionCall","src":"6021:10:54"},"nativeSrc":"6018:190:54","nodeType":"YulIf","src":"6018:190:54"}]},"name":"checked_add_t_uint256","nativeSrc":"5935:279:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"5966:1:54","nodeType":"YulTypedName","src":"5966:1:54","type":""},{"name":"y","nativeSrc":"5969:1:54","nodeType":"YulTypedName","src":"5969:1:54","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"5975:3:54","nodeType":"YulTypedName","src":"5975:3:54","type":""}],"src":"5935:279:54"},{"body":{"nativeSrc":"6393:241:54","nodeType":"YulBlock","src":"6393:241:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6410:9:54","nodeType":"YulIdentifier","src":"6410:9:54"},{"kind":"number","nativeSrc":"6421:2:54","nodeType":"YulLiteral","src":"6421:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6403:6:54","nodeType":"YulIdentifier","src":"6403:6:54"},"nativeSrc":"6403:21:54","nodeType":"YulFunctionCall","src":"6403:21:54"},"nativeSrc":"6403:21:54","nodeType":"YulExpressionStatement","src":"6403:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6444:9:54","nodeType":"YulIdentifier","src":"6444:9:54"},{"kind":"number","nativeSrc":"6455:2:54","nodeType":"YulLiteral","src":"6455:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6440:3:54","nodeType":"YulIdentifier","src":"6440:3:54"},"nativeSrc":"6440:18:54","nodeType":"YulFunctionCall","src":"6440:18:54"},{"kind":"number","nativeSrc":"6460:2:54","nodeType":"YulLiteral","src":"6460:2:54","type":"","value":"51"}],"functionName":{"name":"mstore","nativeSrc":"6433:6:54","nodeType":"YulIdentifier","src":"6433:6:54"},"nativeSrc":"6433:30:54","nodeType":"YulFunctionCall","src":"6433:30:54"},"nativeSrc":"6433:30:54","nodeType":"YulExpressionStatement","src":"6433:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6483:9:54","nodeType":"YulIdentifier","src":"6483:9:54"},{"kind":"number","nativeSrc":"6494:2:54","nodeType":"YulLiteral","src":"6494:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6479:3:54","nodeType":"YulIdentifier","src":"6479:3:54"},"nativeSrc":"6479:18:54","nodeType":"YulFunctionCall","src":"6479:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"6499:34:54","nodeType":"YulLiteral","src":"6499:34:54","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"6472:6:54","nodeType":"YulIdentifier","src":"6472:6:54"},"nativeSrc":"6472:62:54","nodeType":"YulFunctionCall","src":"6472:62:54"},"nativeSrc":"6472:62:54","nodeType":"YulExpressionStatement","src":"6472:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6554:9:54","nodeType":"YulIdentifier","src":"6554:9:54"},{"kind":"number","nativeSrc":"6565:2:54","nodeType":"YulLiteral","src":"6565:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6550:3:54","nodeType":"YulIdentifier","src":"6550:3:54"},"nativeSrc":"6550:18:54","nodeType":"YulFunctionCall","src":"6550:18:54"},{"hexValue":"616e73616374696f6e206973207374616c652e","kind":"string","nativeSrc":"6570:21:54","nodeType":"YulLiteral","src":"6570:21:54","type":"","value":"ansaction is stale."}],"functionName":{"name":"mstore","nativeSrc":"6543:6:54","nodeType":"YulIdentifier","src":"6543:6:54"},"nativeSrc":"6543:49:54","nodeType":"YulFunctionCall","src":"6543:49:54"},"nativeSrc":"6543:49:54","nodeType":"YulExpressionStatement","src":"6543:49:54"},{"nativeSrc":"6601:27:54","nodeType":"YulAssignment","src":"6601:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"6613:9:54","nodeType":"YulIdentifier","src":"6613:9:54"},{"kind":"number","nativeSrc":"6624:3:54","nodeType":"YulLiteral","src":"6624:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6609:3:54","nodeType":"YulIdentifier","src":"6609:3:54"},"nativeSrc":"6609:19:54","nodeType":"YulFunctionCall","src":"6609:19:54"},"variableNames":[{"name":"tail","nativeSrc":"6601:4:54","nodeType":"YulIdentifier","src":"6601:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6219:415:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6370:9:54","nodeType":"YulTypedName","src":"6370:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6384:4:54","nodeType":"YulTypedName","src":"6384:4:54","type":""}],"src":"6219:415:54"},{"body":{"nativeSrc":"6786:124:54","nodeType":"YulBlock","src":"6786:124:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6809:3:54","nodeType":"YulIdentifier","src":"6809:3:54"},{"name":"value0","nativeSrc":"6814:6:54","nodeType":"YulIdentifier","src":"6814:6:54"},{"name":"value1","nativeSrc":"6822:6:54","nodeType":"YulIdentifier","src":"6822:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"6796:12:54","nodeType":"YulIdentifier","src":"6796:12:54"},"nativeSrc":"6796:33:54","nodeType":"YulFunctionCall","src":"6796:33:54"},"nativeSrc":"6796:33:54","nodeType":"YulExpressionStatement","src":"6796:33:54"},{"nativeSrc":"6838:26:54","nodeType":"YulVariableDeclaration","src":"6838:26:54","value":{"arguments":[{"name":"pos","nativeSrc":"6852:3:54","nodeType":"YulIdentifier","src":"6852:3:54"},{"name":"value1","nativeSrc":"6857:6:54","nodeType":"YulIdentifier","src":"6857:6:54"}],"functionName":{"name":"add","nativeSrc":"6848:3:54","nodeType":"YulIdentifier","src":"6848:3:54"},"nativeSrc":"6848:16:54","nodeType":"YulFunctionCall","src":"6848:16:54"},"variables":[{"name":"_1","nativeSrc":"6842:2:54","nodeType":"YulTypedName","src":"6842:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"6880:2:54","nodeType":"YulIdentifier","src":"6880:2:54"},{"kind":"number","nativeSrc":"6884:1:54","nodeType":"YulLiteral","src":"6884:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6873:6:54","nodeType":"YulIdentifier","src":"6873:6:54"},"nativeSrc":"6873:13:54","nodeType":"YulFunctionCall","src":"6873:13:54"},"nativeSrc":"6873:13:54","nodeType":"YulExpressionStatement","src":"6873:13:54"},{"nativeSrc":"6895:9:54","nodeType":"YulAssignment","src":"6895:9:54","value":{"name":"_1","nativeSrc":"6902:2:54","nodeType":"YulIdentifier","src":"6902:2:54"},"variableNames":[{"name":"end","nativeSrc":"6895:3:54","nodeType":"YulIdentifier","src":"6895:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"6639:271:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6754:3:54","nodeType":"YulTypedName","src":"6754:3:54","type":""},{"name":"value1","nativeSrc":"6759:6:54","nodeType":"YulTypedName","src":"6759:6:54","type":""},{"name":"value0","nativeSrc":"6767:6:54","nodeType":"YulTypedName","src":"6767:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6778:3:54","nodeType":"YulTypedName","src":"6778:3:54","type":""}],"src":"6639:271:54"},{"body":{"nativeSrc":"7088:241:54","nodeType":"YulBlock","src":"7088:241:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7105:3:54","nodeType":"YulIdentifier","src":"7105:3:54"},{"arguments":[{"name":"value0","nativeSrc":"7114:6:54","nodeType":"YulIdentifier","src":"7114:6:54"},{"kind":"number","nativeSrc":"7122:66:54","nodeType":"YulLiteral","src":"7122:66:54","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"7110:3:54","nodeType":"YulIdentifier","src":"7110:3:54"},"nativeSrc":"7110:79:54","nodeType":"YulFunctionCall","src":"7110:79:54"}],"functionName":{"name":"mstore","nativeSrc":"7098:6:54","nodeType":"YulIdentifier","src":"7098:6:54"},"nativeSrc":"7098:92:54","nodeType":"YulFunctionCall","src":"7098:92:54"},"nativeSrc":"7098:92:54","nodeType":"YulExpressionStatement","src":"7098:92:54"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7216:3:54","nodeType":"YulIdentifier","src":"7216:3:54"},{"kind":"number","nativeSrc":"7221:1:54","nodeType":"YulLiteral","src":"7221:1:54","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7212:3:54","nodeType":"YulIdentifier","src":"7212:3:54"},"nativeSrc":"7212:11:54","nodeType":"YulFunctionCall","src":"7212:11:54"},{"name":"value1","nativeSrc":"7225:6:54","nodeType":"YulIdentifier","src":"7225:6:54"},{"name":"value2","nativeSrc":"7233:6:54","nodeType":"YulIdentifier","src":"7233:6:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"7199:12:54","nodeType":"YulIdentifier","src":"7199:12:54"},"nativeSrc":"7199:41:54","nodeType":"YulFunctionCall","src":"7199:41:54"},"nativeSrc":"7199:41:54","nodeType":"YulExpressionStatement","src":"7199:41:54"},{"nativeSrc":"7249:34:54","nodeType":"YulVariableDeclaration","src":"7249:34:54","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7267:3:54","nodeType":"YulIdentifier","src":"7267:3:54"},{"name":"value2","nativeSrc":"7272:6:54","nodeType":"YulIdentifier","src":"7272:6:54"}],"functionName":{"name":"add","nativeSrc":"7263:3:54","nodeType":"YulIdentifier","src":"7263:3:54"},"nativeSrc":"7263:16:54","nodeType":"YulFunctionCall","src":"7263:16:54"},{"kind":"number","nativeSrc":"7281:1:54","nodeType":"YulLiteral","src":"7281:1:54","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7259:3:54","nodeType":"YulIdentifier","src":"7259:3:54"},"nativeSrc":"7259:24:54","nodeType":"YulFunctionCall","src":"7259:24:54"},"variables":[{"name":"_1","nativeSrc":"7253:2:54","nodeType":"YulTypedName","src":"7253:2:54","type":""}]},{"expression":{"arguments":[{"name":"_1","nativeSrc":"7299:2:54","nodeType":"YulIdentifier","src":"7299:2:54"},{"kind":"number","nativeSrc":"7303:1:54","nodeType":"YulLiteral","src":"7303:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7292:6:54","nodeType":"YulIdentifier","src":"7292:6:54"},"nativeSrc":"7292:13:54","nodeType":"YulFunctionCall","src":"7292:13:54"},"nativeSrc":"7292:13:54","nodeType":"YulExpressionStatement","src":"7292:13:54"},{"nativeSrc":"7314:9:54","nodeType":"YulAssignment","src":"7314:9:54","value":{"name":"_1","nativeSrc":"7321:2:54","nodeType":"YulIdentifier","src":"7321:2:54"},"variableNames":[{"name":"end","nativeSrc":"7314:3:54","nodeType":"YulIdentifier","src":"7314:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"6915:414:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7048:3:54","nodeType":"YulTypedName","src":"7048:3:54","type":""},{"name":"value2","nativeSrc":"7053:6:54","nodeType":"YulTypedName","src":"7053:6:54","type":""},{"name":"value1","nativeSrc":"7061:6:54","nodeType":"YulTypedName","src":"7061:6:54","type":""},{"name":"value0","nativeSrc":"7069:6:54","nodeType":"YulTypedName","src":"7069:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7080:3:54","nodeType":"YulTypedName","src":"7080:3:54","type":""}],"src":"6915:414:54"},{"body":{"nativeSrc":"7471:150:54","nodeType":"YulBlock","src":"7471:150:54","statements":[{"nativeSrc":"7481:27:54","nodeType":"YulVariableDeclaration","src":"7481:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"7501:6:54","nodeType":"YulIdentifier","src":"7501:6:54"}],"functionName":{"name":"mload","nativeSrc":"7495:5:54","nodeType":"YulIdentifier","src":"7495:5:54"},"nativeSrc":"7495:13:54","nodeType":"YulFunctionCall","src":"7495:13:54"},"variables":[{"name":"length","nativeSrc":"7485:6:54","nodeType":"YulTypedName","src":"7485:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"7556:6:54","nodeType":"YulIdentifier","src":"7556:6:54"},{"kind":"number","nativeSrc":"7564:4:54","nodeType":"YulLiteral","src":"7564:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7552:3:54","nodeType":"YulIdentifier","src":"7552:3:54"},"nativeSrc":"7552:17:54","nodeType":"YulFunctionCall","src":"7552:17:54"},{"name":"pos","nativeSrc":"7571:3:54","nodeType":"YulIdentifier","src":"7571:3:54"},{"name":"length","nativeSrc":"7576:6:54","nodeType":"YulIdentifier","src":"7576:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7517:34:54","nodeType":"YulIdentifier","src":"7517:34:54"},"nativeSrc":"7517:66:54","nodeType":"YulFunctionCall","src":"7517:66:54"},"nativeSrc":"7517:66:54","nodeType":"YulExpressionStatement","src":"7517:66:54"},{"nativeSrc":"7592:23:54","nodeType":"YulAssignment","src":"7592:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"7603:3:54","nodeType":"YulIdentifier","src":"7603:3:54"},{"name":"length","nativeSrc":"7608:6:54","nodeType":"YulIdentifier","src":"7608:6:54"}],"functionName":{"name":"add","nativeSrc":"7599:3:54","nodeType":"YulIdentifier","src":"7599:3:54"},"nativeSrc":"7599:16:54","nodeType":"YulFunctionCall","src":"7599:16:54"},"variableNames":[{"name":"end","nativeSrc":"7592:3:54","nodeType":"YulIdentifier","src":"7592:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7334:287:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7447:3:54","nodeType":"YulTypedName","src":"7447:3:54","type":""},{"name":"value0","nativeSrc":"7452:6:54","nodeType":"YulTypedName","src":"7452:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7463:3:54","nodeType":"YulTypedName","src":"7463:3:54","type":""}],"src":"7334:287:54"},{"body":{"nativeSrc":"7800:251:54","nodeType":"YulBlock","src":"7800:251:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7817:9:54","nodeType":"YulIdentifier","src":"7817:9:54"},{"kind":"number","nativeSrc":"7828:2:54","nodeType":"YulLiteral","src":"7828:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7810:6:54","nodeType":"YulIdentifier","src":"7810:6:54"},"nativeSrc":"7810:21:54","nodeType":"YulFunctionCall","src":"7810:21:54"},"nativeSrc":"7810:21:54","nodeType":"YulExpressionStatement","src":"7810:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7851:9:54","nodeType":"YulIdentifier","src":"7851:9:54"},{"kind":"number","nativeSrc":"7862:2:54","nodeType":"YulLiteral","src":"7862:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7847:3:54","nodeType":"YulIdentifier","src":"7847:3:54"},"nativeSrc":"7847:18:54","nodeType":"YulFunctionCall","src":"7847:18:54"},{"kind":"number","nativeSrc":"7867:2:54","nodeType":"YulLiteral","src":"7867:2:54","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"7840:6:54","nodeType":"YulIdentifier","src":"7840:6:54"},"nativeSrc":"7840:30:54","nodeType":"YulFunctionCall","src":"7840:30:54"},"nativeSrc":"7840:30:54","nodeType":"YulExpressionStatement","src":"7840:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7890:9:54","nodeType":"YulIdentifier","src":"7890:9:54"},{"kind":"number","nativeSrc":"7901:2:54","nodeType":"YulLiteral","src":"7901:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7886:3:54","nodeType":"YulIdentifier","src":"7886:3:54"},"nativeSrc":"7886:18:54","nodeType":"YulFunctionCall","src":"7886:18:54"},{"hexValue":"54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a205472","kind":"string","nativeSrc":"7906:34:54","nodeType":"YulLiteral","src":"7906:34:54","type":"","value":"Timelock::executeTransaction: Tr"}],"functionName":{"name":"mstore","nativeSrc":"7879:6:54","nodeType":"YulIdentifier","src":"7879:6:54"},"nativeSrc":"7879:62:54","nodeType":"YulFunctionCall","src":"7879:62:54"},"nativeSrc":"7879:62:54","nodeType":"YulExpressionStatement","src":"7879:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7961:9:54","nodeType":"YulIdentifier","src":"7961:9:54"},{"kind":"number","nativeSrc":"7972:2:54","nodeType":"YulLiteral","src":"7972:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7957:3:54","nodeType":"YulIdentifier","src":"7957:3:54"},"nativeSrc":"7957:18:54","nodeType":"YulFunctionCall","src":"7957:18:54"},{"hexValue":"616e73616374696f6e20657865637574696f6e2072657665727465642e","kind":"string","nativeSrc":"7977:31:54","nodeType":"YulLiteral","src":"7977:31:54","type":"","value":"ansaction execution reverted."}],"functionName":{"name":"mstore","nativeSrc":"7950:6:54","nodeType":"YulIdentifier","src":"7950:6:54"},"nativeSrc":"7950:59:54","nodeType":"YulFunctionCall","src":"7950:59:54"},"nativeSrc":"7950:59:54","nodeType":"YulExpressionStatement","src":"7950:59:54"},{"nativeSrc":"8018:27:54","nodeType":"YulAssignment","src":"8018:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"8030:9:54","nodeType":"YulIdentifier","src":"8030:9:54"},{"kind":"number","nativeSrc":"8041:3:54","nodeType":"YulLiteral","src":"8041:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8026:3:54","nodeType":"YulIdentifier","src":"8026:3:54"},"nativeSrc":"8026:19:54","nodeType":"YulFunctionCall","src":"8026:19:54"},"variableNames":[{"name":"tail","nativeSrc":"8018:4:54","nodeType":"YulIdentifier","src":"8018:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7626:425:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7777:9:54","nodeType":"YulTypedName","src":"7777:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7791:4:54","nodeType":"YulTypedName","src":"7791:4:54","type":""}],"src":"7626:425:54"},{"body":{"nativeSrc":"8299:336:54","nodeType":"YulBlock","src":"8299:336:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8316:9:54","nodeType":"YulIdentifier","src":"8316:9:54"},{"name":"value0","nativeSrc":"8327:6:54","nodeType":"YulIdentifier","src":"8327:6:54"}],"functionName":{"name":"mstore","nativeSrc":"8309:6:54","nodeType":"YulIdentifier","src":"8309:6:54"},"nativeSrc":"8309:25:54","nodeType":"YulFunctionCall","src":"8309:25:54"},"nativeSrc":"8309:25:54","nodeType":"YulExpressionStatement","src":"8309:25:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8354:9:54","nodeType":"YulIdentifier","src":"8354:9:54"},{"kind":"number","nativeSrc":"8365:2:54","nodeType":"YulLiteral","src":"8365:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8350:3:54","nodeType":"YulIdentifier","src":"8350:3:54"},"nativeSrc":"8350:18:54","nodeType":"YulFunctionCall","src":"8350:18:54"},{"kind":"number","nativeSrc":"8370:3:54","nodeType":"YulLiteral","src":"8370:3:54","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"8343:6:54","nodeType":"YulIdentifier","src":"8343:6:54"},"nativeSrc":"8343:31:54","nodeType":"YulFunctionCall","src":"8343:31:54"},"nativeSrc":"8343:31:54","nodeType":"YulExpressionStatement","src":"8343:31:54"},{"nativeSrc":"8383:77:54","nodeType":"YulVariableDeclaration","src":"8383:77:54","value":{"arguments":[{"name":"value1","nativeSrc":"8424:6:54","nodeType":"YulIdentifier","src":"8424:6:54"},{"name":"value2","nativeSrc":"8432:6:54","nodeType":"YulIdentifier","src":"8432:6:54"},{"arguments":[{"name":"headStart","nativeSrc":"8444:9:54","nodeType":"YulIdentifier","src":"8444:9:54"},{"kind":"number","nativeSrc":"8455:3:54","nodeType":"YulLiteral","src":"8455:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8440:3:54","nodeType":"YulIdentifier","src":"8440:3:54"},"nativeSrc":"8440:19:54","nodeType":"YulFunctionCall","src":"8440:19:54"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8397:26:54","nodeType":"YulIdentifier","src":"8397:26:54"},"nativeSrc":"8397:63:54","nodeType":"YulFunctionCall","src":"8397:63:54"},"variables":[{"name":"tail_1","nativeSrc":"8387:6:54","nodeType":"YulTypedName","src":"8387:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8480:9:54","nodeType":"YulIdentifier","src":"8480:9:54"},{"kind":"number","nativeSrc":"8491:2:54","nodeType":"YulLiteral","src":"8491:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8476:3:54","nodeType":"YulIdentifier","src":"8476:3:54"},"nativeSrc":"8476:18:54","nodeType":"YulFunctionCall","src":"8476:18:54"},{"arguments":[{"name":"tail_1","nativeSrc":"8500:6:54","nodeType":"YulIdentifier","src":"8500:6:54"},{"name":"headStart","nativeSrc":"8508:9:54","nodeType":"YulIdentifier","src":"8508:9:54"}],"functionName":{"name":"sub","nativeSrc":"8496:3:54","nodeType":"YulIdentifier","src":"8496:3:54"},"nativeSrc":"8496:22:54","nodeType":"YulFunctionCall","src":"8496:22:54"}],"functionName":{"name":"mstore","nativeSrc":"8469:6:54","nodeType":"YulIdentifier","src":"8469:6:54"},"nativeSrc":"8469:50:54","nodeType":"YulFunctionCall","src":"8469:50:54"},"nativeSrc":"8469:50:54","nodeType":"YulExpressionStatement","src":"8469:50:54"},{"nativeSrc":"8528:58:54","nodeType":"YulAssignment","src":"8528:58:54","value":{"arguments":[{"name":"value3","nativeSrc":"8563:6:54","nodeType":"YulIdentifier","src":"8563:6:54"},{"name":"value4","nativeSrc":"8571:6:54","nodeType":"YulIdentifier","src":"8571:6:54"},{"name":"tail_1","nativeSrc":"8579:6:54","nodeType":"YulIdentifier","src":"8579:6:54"}],"functionName":{"name":"abi_encode_string_calldata","nativeSrc":"8536:26:54","nodeType":"YulIdentifier","src":"8536:26:54"},"nativeSrc":"8536:50:54","nodeType":"YulFunctionCall","src":"8536:50:54"},"variableNames":[{"name":"tail","nativeSrc":"8528:4:54","nodeType":"YulIdentifier","src":"8528:4:54"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8606:9:54","nodeType":"YulIdentifier","src":"8606:9:54"},{"kind":"number","nativeSrc":"8617:2:54","nodeType":"YulLiteral","src":"8617:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8602:3:54","nodeType":"YulIdentifier","src":"8602:3:54"},"nativeSrc":"8602:18:54","nodeType":"YulFunctionCall","src":"8602:18:54"},{"name":"value5","nativeSrc":"8622:6:54","nodeType":"YulIdentifier","src":"8622:6:54"}],"functionName":{"name":"mstore","nativeSrc":"8595:6:54","nodeType":"YulIdentifier","src":"8595:6:54"},"nativeSrc":"8595:34:54","nodeType":"YulFunctionCall","src":"8595:34:54"},"nativeSrc":"8595:34:54","nodeType":"YulExpressionStatement","src":"8595:34:54"}]},"name":"abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"8056:579:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8228:9:54","nodeType":"YulTypedName","src":"8228:9:54","type":""},{"name":"value5","nativeSrc":"8239:6:54","nodeType":"YulTypedName","src":"8239:6:54","type":""},{"name":"value4","nativeSrc":"8247:6:54","nodeType":"YulTypedName","src":"8247:6:54","type":""},{"name":"value3","nativeSrc":"8255:6:54","nodeType":"YulTypedName","src":"8255:6:54","type":""},{"name":"value2","nativeSrc":"8263:6:54","nodeType":"YulTypedName","src":"8263:6:54","type":""},{"name":"value1","nativeSrc":"8271:6:54","nodeType":"YulTypedName","src":"8271:6:54","type":""},{"name":"value0","nativeSrc":"8279:6:54","nodeType":"YulTypedName","src":"8279:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8290:4:54","nodeType":"YulTypedName","src":"8290:4:54","type":""}],"src":"8056:579:54"},{"body":{"nativeSrc":"8814:246:54","nodeType":"YulBlock","src":"8814:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8831:9:54","nodeType":"YulIdentifier","src":"8831:9:54"},{"kind":"number","nativeSrc":"8842:2:54","nodeType":"YulLiteral","src":"8842:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8824:6:54","nodeType":"YulIdentifier","src":"8824:6:54"},"nativeSrc":"8824:21:54","nodeType":"YulFunctionCall","src":"8824:21:54"},"nativeSrc":"8824:21:54","nodeType":"YulExpressionStatement","src":"8824:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8865:9:54","nodeType":"YulIdentifier","src":"8865:9:54"},{"kind":"number","nativeSrc":"8876:2:54","nodeType":"YulLiteral","src":"8876:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8861:3:54","nodeType":"YulIdentifier","src":"8861:3:54"},"nativeSrc":"8861:18:54","nodeType":"YulFunctionCall","src":"8861:18:54"},{"kind":"number","nativeSrc":"8881:2:54","nodeType":"YulLiteral","src":"8881:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"8854:6:54","nodeType":"YulIdentifier","src":"8854:6:54"},"nativeSrc":"8854:30:54","nodeType":"YulFunctionCall","src":"8854:30:54"},"nativeSrc":"8854:30:54","nodeType":"YulExpressionStatement","src":"8854:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8904:9:54","nodeType":"YulIdentifier","src":"8904:9:54"},{"kind":"number","nativeSrc":"8915:2:54","nodeType":"YulLiteral","src":"8915:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8900:3:54","nodeType":"YulIdentifier","src":"8900:3:54"},"nativeSrc":"8900:18:54","nodeType":"YulFunctionCall","src":"8900:18:54"},{"hexValue":"54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d757374","kind":"string","nativeSrc":"8920:34:54","nodeType":"YulLiteral","src":"8920:34:54","type":"","value":"Timelock::acceptAdmin: Call must"}],"functionName":{"name":"mstore","nativeSrc":"8893:6:54","nodeType":"YulIdentifier","src":"8893:6:54"},"nativeSrc":"8893:62:54","nodeType":"YulFunctionCall","src":"8893:62:54"},"nativeSrc":"8893:62:54","nodeType":"YulExpressionStatement","src":"8893:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8975:9:54","nodeType":"YulIdentifier","src":"8975:9:54"},{"kind":"number","nativeSrc":"8986:2:54","nodeType":"YulLiteral","src":"8986:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8971:3:54","nodeType":"YulIdentifier","src":"8971:3:54"},"nativeSrc":"8971:18:54","nodeType":"YulFunctionCall","src":"8971:18:54"},{"hexValue":"20636f6d652066726f6d2070656e64696e6741646d696e2e","kind":"string","nativeSrc":"8991:26:54","nodeType":"YulLiteral","src":"8991:26:54","type":"","value":" come from pendingAdmin."}],"functionName":{"name":"mstore","nativeSrc":"8964:6:54","nodeType":"YulIdentifier","src":"8964:6:54"},"nativeSrc":"8964:54:54","nodeType":"YulFunctionCall","src":"8964:54:54"},"nativeSrc":"8964:54:54","nodeType":"YulExpressionStatement","src":"8964:54:54"},{"nativeSrc":"9027:27:54","nodeType":"YulAssignment","src":"9027:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9039:9:54","nodeType":"YulIdentifier","src":"9039:9:54"},{"kind":"number","nativeSrc":"9050:3:54","nodeType":"YulLiteral","src":"9050:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9035:3:54","nodeType":"YulIdentifier","src":"9035:3:54"},"nativeSrc":"9035:19:54","nodeType":"YulFunctionCall","src":"9035:19:54"},"variableNames":[{"name":"tail","nativeSrc":"9027:4:54","nodeType":"YulIdentifier","src":"9027:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8640:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8791:9:54","nodeType":"YulTypedName","src":"8791:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8805:4:54","nodeType":"YulTypedName","src":"8805:4:54","type":""}],"src":"8640:420:54"},{"body":{"nativeSrc":"9239:244:54","nodeType":"YulBlock","src":"9239:244:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9256:9:54","nodeType":"YulIdentifier","src":"9256:9:54"},{"kind":"number","nativeSrc":"9267:2:54","nodeType":"YulLiteral","src":"9267:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9249:6:54","nodeType":"YulIdentifier","src":"9249:6:54"},"nativeSrc":"9249:21:54","nodeType":"YulFunctionCall","src":"9249:21:54"},"nativeSrc":"9249:21:54","nodeType":"YulExpressionStatement","src":"9249:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9290:9:54","nodeType":"YulIdentifier","src":"9290:9:54"},{"kind":"number","nativeSrc":"9301:2:54","nodeType":"YulLiteral","src":"9301:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9286:3:54","nodeType":"YulIdentifier","src":"9286:3:54"},"nativeSrc":"9286:18:54","nodeType":"YulFunctionCall","src":"9286:18:54"},{"kind":"number","nativeSrc":"9306:2:54","nodeType":"YulLiteral","src":"9306:2:54","type":"","value":"54"}],"functionName":{"name":"mstore","nativeSrc":"9279:6:54","nodeType":"YulIdentifier","src":"9279:6:54"},"nativeSrc":"9279:30:54","nodeType":"YulFunctionCall","src":"9279:30:54"},"nativeSrc":"9279:30:54","nodeType":"YulExpressionStatement","src":"9279:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9329:9:54","nodeType":"YulIdentifier","src":"9329:9:54"},{"kind":"number","nativeSrc":"9340:2:54","nodeType":"YulLiteral","src":"9340:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9325:3:54","nodeType":"YulIdentifier","src":"9325:3:54"},"nativeSrc":"9325:18:54","nodeType":"YulFunctionCall","src":"9325:18:54"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c","kind":"string","nativeSrc":"9345:34:54","nodeType":"YulLiteral","src":"9345:34:54","type":"","value":"Timelock::queueTransaction: Call"}],"functionName":{"name":"mstore","nativeSrc":"9318:6:54","nodeType":"YulIdentifier","src":"9318:6:54"},"nativeSrc":"9318:62:54","nodeType":"YulFunctionCall","src":"9318:62:54"},"nativeSrc":"9318:62:54","nodeType":"YulExpressionStatement","src":"9318:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9400:9:54","nodeType":"YulIdentifier","src":"9400:9:54"},{"kind":"number","nativeSrc":"9411:2:54","nodeType":"YulLiteral","src":"9411:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9396:3:54","nodeType":"YulIdentifier","src":"9396:3:54"},"nativeSrc":"9396:18:54","nodeType":"YulFunctionCall","src":"9396:18:54"},{"hexValue":"206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"9416:24:54","nodeType":"YulLiteral","src":"9416:24:54","type":"","value":" must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"9389:6:54","nodeType":"YulIdentifier","src":"9389:6:54"},"nativeSrc":"9389:52:54","nodeType":"YulFunctionCall","src":"9389:52:54"},"nativeSrc":"9389:52:54","nodeType":"YulExpressionStatement","src":"9389:52:54"},{"nativeSrc":"9450:27:54","nodeType":"YulAssignment","src":"9450:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9462:9:54","nodeType":"YulIdentifier","src":"9462:9:54"},{"kind":"number","nativeSrc":"9473:3:54","nodeType":"YulLiteral","src":"9473:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9458:3:54","nodeType":"YulIdentifier","src":"9458:3:54"},"nativeSrc":"9458:19:54","nodeType":"YulFunctionCall","src":"9458:19:54"},"variableNames":[{"name":"tail","nativeSrc":"9450:4:54","nodeType":"YulIdentifier","src":"9450:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9065:418:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9216:9:54","nodeType":"YulTypedName","src":"9216:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9230:4:54","nodeType":"YulTypedName","src":"9230:4:54","type":""}],"src":"9065:418:54"},{"body":{"nativeSrc":"9662:303:54","nodeType":"YulBlock","src":"9662:303:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9679:9:54","nodeType":"YulIdentifier","src":"9679:9:54"},{"kind":"number","nativeSrc":"9690:2:54","nodeType":"YulLiteral","src":"9690:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9672:6:54","nodeType":"YulIdentifier","src":"9672:6:54"},"nativeSrc":"9672:21:54","nodeType":"YulFunctionCall","src":"9672:21:54"},"nativeSrc":"9672:21:54","nodeType":"YulExpressionStatement","src":"9672:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9713:9:54","nodeType":"YulIdentifier","src":"9713:9:54"},{"kind":"number","nativeSrc":"9724:2:54","nodeType":"YulLiteral","src":"9724:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9709:3:54","nodeType":"YulIdentifier","src":"9709:3:54"},"nativeSrc":"9709:18:54","nodeType":"YulFunctionCall","src":"9709:18:54"},{"kind":"number","nativeSrc":"9729:2:54","nodeType":"YulLiteral","src":"9729:2:54","type":"","value":"73"}],"functionName":{"name":"mstore","nativeSrc":"9702:6:54","nodeType":"YulIdentifier","src":"9702:6:54"},"nativeSrc":"9702:30:54","nodeType":"YulFunctionCall","src":"9702:30:54"},"nativeSrc":"9702:30:54","nodeType":"YulExpressionStatement","src":"9702:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9752:9:54","nodeType":"YulIdentifier","src":"9752:9:54"},{"kind":"number","nativeSrc":"9763:2:54","nodeType":"YulLiteral","src":"9763:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9748:3:54","nodeType":"YulIdentifier","src":"9748:3:54"},"nativeSrc":"9748:18:54","nodeType":"YulFunctionCall","src":"9748:18:54"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2045737469","kind":"string","nativeSrc":"9768:34:54","nodeType":"YulLiteral","src":"9768:34:54","type":"","value":"Timelock::queueTransaction: Esti"}],"functionName":{"name":"mstore","nativeSrc":"9741:6:54","nodeType":"YulIdentifier","src":"9741:6:54"},"nativeSrc":"9741:62:54","nodeType":"YulFunctionCall","src":"9741:62:54"},"nativeSrc":"9741:62:54","nodeType":"YulExpressionStatement","src":"9741:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9823:9:54","nodeType":"YulIdentifier","src":"9823:9:54"},{"kind":"number","nativeSrc":"9834:2:54","nodeType":"YulLiteral","src":"9834:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9819:3:54","nodeType":"YulIdentifier","src":"9819:3:54"},"nativeSrc":"9819:18:54","nodeType":"YulFunctionCall","src":"9819:18:54"},{"hexValue":"6d6174656420657865637574696f6e20626c6f636b206d757374207361746973","kind":"string","nativeSrc":"9839:34:54","nodeType":"YulLiteral","src":"9839:34:54","type":"","value":"mated execution block must satis"}],"functionName":{"name":"mstore","nativeSrc":"9812:6:54","nodeType":"YulIdentifier","src":"9812:6:54"},"nativeSrc":"9812:62:54","nodeType":"YulFunctionCall","src":"9812:62:54"},"nativeSrc":"9812:62:54","nodeType":"YulExpressionStatement","src":"9812:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9894:9:54","nodeType":"YulIdentifier","src":"9894:9:54"},{"kind":"number","nativeSrc":"9905:3:54","nodeType":"YulLiteral","src":"9905:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9890:3:54","nodeType":"YulIdentifier","src":"9890:3:54"},"nativeSrc":"9890:19:54","nodeType":"YulFunctionCall","src":"9890:19:54"},{"hexValue":"66792064656c61792e","kind":"string","nativeSrc":"9911:11:54","nodeType":"YulLiteral","src":"9911:11:54","type":"","value":"fy delay."}],"functionName":{"name":"mstore","nativeSrc":"9883:6:54","nodeType":"YulIdentifier","src":"9883:6:54"},"nativeSrc":"9883:40:54","nodeType":"YulFunctionCall","src":"9883:40:54"},"nativeSrc":"9883:40:54","nodeType":"YulExpressionStatement","src":"9883:40:54"},{"nativeSrc":"9932:27:54","nodeType":"YulAssignment","src":"9932:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"9944:9:54","nodeType":"YulIdentifier","src":"9944:9:54"},{"kind":"number","nativeSrc":"9955:3:54","nodeType":"YulLiteral","src":"9955:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9940:3:54","nodeType":"YulIdentifier","src":"9940:3:54"},"nativeSrc":"9940:19:54","nodeType":"YulFunctionCall","src":"9940:19:54"},"variableNames":[{"name":"tail","nativeSrc":"9932:4:54","nodeType":"YulIdentifier","src":"9932:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9488:477:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9639:9:54","nodeType":"YulTypedName","src":"9639:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9653:4:54","nodeType":"YulTypedName","src":"9653:4:54","type":""}],"src":"9488:477:54"},{"body":{"nativeSrc":"10144:245:54","nodeType":"YulBlock","src":"10144:245:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10161:9:54","nodeType":"YulIdentifier","src":"10161:9:54"},{"kind":"number","nativeSrc":"10172:2:54","nodeType":"YulLiteral","src":"10172:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10154:6:54","nodeType":"YulIdentifier","src":"10154:6:54"},"nativeSrc":"10154:21:54","nodeType":"YulFunctionCall","src":"10154:21:54"},"nativeSrc":"10154:21:54","nodeType":"YulExpressionStatement","src":"10154:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10195:9:54","nodeType":"YulIdentifier","src":"10195:9:54"},{"kind":"number","nativeSrc":"10206:2:54","nodeType":"YulLiteral","src":"10206:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10191:3:54","nodeType":"YulIdentifier","src":"10191:3:54"},"nativeSrc":"10191:18:54","nodeType":"YulFunctionCall","src":"10191:18:54"},{"kind":"number","nativeSrc":"10211:2:54","nodeType":"YulLiteral","src":"10211:2:54","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"10184:6:54","nodeType":"YulIdentifier","src":"10184:6:54"},"nativeSrc":"10184:30:54","nodeType":"YulFunctionCall","src":"10184:30:54"},"nativeSrc":"10184:30:54","nodeType":"YulExpressionStatement","src":"10184:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10234:9:54","nodeType":"YulIdentifier","src":"10234:9:54"},{"kind":"number","nativeSrc":"10245:2:54","nodeType":"YulLiteral","src":"10245:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10230:3:54","nodeType":"YulIdentifier","src":"10230:3:54"},"nativeSrc":"10230:18:54","nodeType":"YulFunctionCall","src":"10230:18:54"},{"hexValue":"54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e","kind":"string","nativeSrc":"10250:34:54","nodeType":"YulLiteral","src":"10250:34:54","type":"","value":"Timelock::queueTransaction: tran"}],"functionName":{"name":"mstore","nativeSrc":"10223:6:54","nodeType":"YulIdentifier","src":"10223:6:54"},"nativeSrc":"10223:62:54","nodeType":"YulFunctionCall","src":"10223:62:54"},"nativeSrc":"10223:62:54","nodeType":"YulExpressionStatement","src":"10223:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:54","nodeType":"YulIdentifier","src":"10305:9:54"},{"kind":"number","nativeSrc":"10316:2:54","nodeType":"YulLiteral","src":"10316:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10301:3:54","nodeType":"YulIdentifier","src":"10301:3:54"},"nativeSrc":"10301:18:54","nodeType":"YulFunctionCall","src":"10301:18:54"},{"hexValue":"73616374696f6e20616c7265616479207175657565642e","kind":"string","nativeSrc":"10321:25:54","nodeType":"YulLiteral","src":"10321:25:54","type":"","value":"saction already queued."}],"functionName":{"name":"mstore","nativeSrc":"10294:6:54","nodeType":"YulIdentifier","src":"10294:6:54"},"nativeSrc":"10294:53:54","nodeType":"YulFunctionCall","src":"10294:53:54"},"nativeSrc":"10294:53:54","nodeType":"YulExpressionStatement","src":"10294:53:54"},{"nativeSrc":"10356:27:54","nodeType":"YulAssignment","src":"10356:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10368:9:54","nodeType":"YulIdentifier","src":"10368:9:54"},{"kind":"number","nativeSrc":"10379:3:54","nodeType":"YulLiteral","src":"10379:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10364:3:54","nodeType":"YulIdentifier","src":"10364:3:54"},"nativeSrc":"10364:19:54","nodeType":"YulFunctionCall","src":"10364:19:54"},"variableNames":[{"name":"tail","nativeSrc":"10356:4:54","nodeType":"YulIdentifier","src":"10356:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9970:419:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10121:9:54","nodeType":"YulTypedName","src":"10121:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10135:4:54","nodeType":"YulTypedName","src":"10135:4:54","type":""}],"src":"9970:419:54"},{"body":{"nativeSrc":"10568:246:54","nodeType":"YulBlock","src":"10568:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10585:9:54","nodeType":"YulIdentifier","src":"10585:9:54"},{"kind":"number","nativeSrc":"10596:2:54","nodeType":"YulLiteral","src":"10596:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10578:6:54","nodeType":"YulIdentifier","src":"10578:6:54"},"nativeSrc":"10578:21:54","nodeType":"YulFunctionCall","src":"10578:21:54"},"nativeSrc":"10578:21:54","nodeType":"YulExpressionStatement","src":"10578:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10619:9:54","nodeType":"YulIdentifier","src":"10619:9:54"},{"kind":"number","nativeSrc":"10630:2:54","nodeType":"YulLiteral","src":"10630:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10615:3:54","nodeType":"YulIdentifier","src":"10615:3:54"},"nativeSrc":"10615:18:54","nodeType":"YulFunctionCall","src":"10615:18:54"},{"kind":"number","nativeSrc":"10635:2:54","nodeType":"YulLiteral","src":"10635:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"10608:6:54","nodeType":"YulIdentifier","src":"10608:6:54"},"nativeSrc":"10608:30:54","nodeType":"YulFunctionCall","src":"10608:30:54"},"nativeSrc":"10608:30:54","nodeType":"YulExpressionStatement","src":"10608:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10658:9:54","nodeType":"YulIdentifier","src":"10658:9:54"},{"kind":"number","nativeSrc":"10669:2:54","nodeType":"YulLiteral","src":"10669:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10654:3:54","nodeType":"YulIdentifier","src":"10654:3:54"},"nativeSrc":"10654:18:54","nodeType":"YulFunctionCall","src":"10654:18:54"},{"hexValue":"54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c20","kind":"string","nativeSrc":"10674:34:54","nodeType":"YulLiteral","src":"10674:34:54","type":"","value":"Timelock::setPendingAdmin: Call "}],"functionName":{"name":"mstore","nativeSrc":"10647:6:54","nodeType":"YulIdentifier","src":"10647:6:54"},"nativeSrc":"10647:62:54","nodeType":"YulFunctionCall","src":"10647:62:54"},"nativeSrc":"10647:62:54","nodeType":"YulExpressionStatement","src":"10647:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10729:9:54","nodeType":"YulIdentifier","src":"10729:9:54"},{"kind":"number","nativeSrc":"10740:2:54","nodeType":"YulLiteral","src":"10740:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10725:3:54","nodeType":"YulIdentifier","src":"10725:3:54"},"nativeSrc":"10725:18:54","nodeType":"YulFunctionCall","src":"10725:18:54"},{"hexValue":"6d75737420636f6d652066726f6d2054696d656c6f636b2e","kind":"string","nativeSrc":"10745:26:54","nodeType":"YulLiteral","src":"10745:26:54","type":"","value":"must come from Timelock."}],"functionName":{"name":"mstore","nativeSrc":"10718:6:54","nodeType":"YulIdentifier","src":"10718:6:54"},"nativeSrc":"10718:54:54","nodeType":"YulFunctionCall","src":"10718:54:54"},"nativeSrc":"10718:54:54","nodeType":"YulExpressionStatement","src":"10718:54:54"},{"nativeSrc":"10781:27:54","nodeType":"YulAssignment","src":"10781:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"10793:9:54","nodeType":"YulIdentifier","src":"10793:9:54"},{"kind":"number","nativeSrc":"10804:3:54","nodeType":"YulLiteral","src":"10804:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10789:3:54","nodeType":"YulIdentifier","src":"10789:3:54"},"nativeSrc":"10789:19:54","nodeType":"YulFunctionCall","src":"10789:19:54"},"variableNames":[{"name":"tail","nativeSrc":"10781:4:54","nodeType":"YulIdentifier","src":"10781:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10394:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10545:9:54","nodeType":"YulTypedName","src":"10545:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10559:4:54","nodeType":"YulTypedName","src":"10559:4:54","type":""}],"src":"10394:420:54"},{"body":{"nativeSrc":"10993:245:54","nodeType":"YulBlock","src":"10993:245:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11010:9:54","nodeType":"YulIdentifier","src":"11010:9:54"},{"kind":"number","nativeSrc":"11021:2:54","nodeType":"YulLiteral","src":"11021:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11003:6:54","nodeType":"YulIdentifier","src":"11003:6:54"},"nativeSrc":"11003:21:54","nodeType":"YulFunctionCall","src":"11003:21:54"},"nativeSrc":"11003:21:54","nodeType":"YulExpressionStatement","src":"11003:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11044:9:54","nodeType":"YulIdentifier","src":"11044:9:54"},{"kind":"number","nativeSrc":"11055:2:54","nodeType":"YulLiteral","src":"11055:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11040:3:54","nodeType":"YulIdentifier","src":"11040:3:54"},"nativeSrc":"11040:18:54","nodeType":"YulFunctionCall","src":"11040:18:54"},{"kind":"number","nativeSrc":"11060:2:54","nodeType":"YulLiteral","src":"11060:2:54","type":"","value":"55"}],"functionName":{"name":"mstore","nativeSrc":"11033:6:54","nodeType":"YulIdentifier","src":"11033:6:54"},"nativeSrc":"11033:30:54","nodeType":"YulFunctionCall","src":"11033:30:54"},"nativeSrc":"11033:30:54","nodeType":"YulExpressionStatement","src":"11033:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11083:9:54","nodeType":"YulIdentifier","src":"11083:9:54"},{"kind":"number","nativeSrc":"11094:2:54","nodeType":"YulLiteral","src":"11094:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11079:3:54","nodeType":"YulIdentifier","src":"11079:3:54"},"nativeSrc":"11079:18:54","nodeType":"YulFunctionCall","src":"11079:18:54"},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c","kind":"string","nativeSrc":"11099:34:54","nodeType":"YulLiteral","src":"11099:34:54","type":"","value":"Timelock::cancelTransaction: Cal"}],"functionName":{"name":"mstore","nativeSrc":"11072:6:54","nodeType":"YulIdentifier","src":"11072:6:54"},"nativeSrc":"11072:62:54","nodeType":"YulFunctionCall","src":"11072:62:54"},"nativeSrc":"11072:62:54","nodeType":"YulExpressionStatement","src":"11072:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11154:9:54","nodeType":"YulIdentifier","src":"11154:9:54"},{"kind":"number","nativeSrc":"11165:2:54","nodeType":"YulLiteral","src":"11165:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11150:3:54","nodeType":"YulIdentifier","src":"11150:3:54"},"nativeSrc":"11150:18:54","nodeType":"YulFunctionCall","src":"11150:18:54"},{"hexValue":"6c206d75737420636f6d652066726f6d2061646d696e2e","kind":"string","nativeSrc":"11170:25:54","nodeType":"YulLiteral","src":"11170:25:54","type":"","value":"l must come from admin."}],"functionName":{"name":"mstore","nativeSrc":"11143:6:54","nodeType":"YulIdentifier","src":"11143:6:54"},"nativeSrc":"11143:53:54","nodeType":"YulFunctionCall","src":"11143:53:54"},"nativeSrc":"11143:53:54","nodeType":"YulExpressionStatement","src":"11143:53:54"},{"nativeSrc":"11205:27:54","nodeType":"YulAssignment","src":"11205:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11217:9:54","nodeType":"YulIdentifier","src":"11217:9:54"},{"kind":"number","nativeSrc":"11228:3:54","nodeType":"YulLiteral","src":"11228:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11213:3:54","nodeType":"YulIdentifier","src":"11213:3:54"},"nativeSrc":"11213:19:54","nodeType":"YulFunctionCall","src":"11213:19:54"},"variableNames":[{"name":"tail","nativeSrc":"11205:4:54","nodeType":"YulIdentifier","src":"11205:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10819:419:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10970:9:54","nodeType":"YulTypedName","src":"10970:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10984:4:54","nodeType":"YulTypedName","src":"10984:4:54","type":""}],"src":"10819:419:54"},{"body":{"nativeSrc":"11417:249:54","nodeType":"YulBlock","src":"11417:249:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11434:9:54","nodeType":"YulIdentifier","src":"11434:9:54"},{"kind":"number","nativeSrc":"11445:2:54","nodeType":"YulLiteral","src":"11445:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11427:6:54","nodeType":"YulIdentifier","src":"11427:6:54"},"nativeSrc":"11427:21:54","nodeType":"YulFunctionCall","src":"11427:21:54"},"nativeSrc":"11427:21:54","nodeType":"YulExpressionStatement","src":"11427:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11468:9:54","nodeType":"YulIdentifier","src":"11468:9:54"},{"kind":"number","nativeSrc":"11479:2:54","nodeType":"YulLiteral","src":"11479:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11464:3:54","nodeType":"YulIdentifier","src":"11464:3:54"},"nativeSrc":"11464:18:54","nodeType":"YulFunctionCall","src":"11464:18:54"},{"kind":"number","nativeSrc":"11484:2:54","nodeType":"YulLiteral","src":"11484:2:54","type":"","value":"59"}],"functionName":{"name":"mstore","nativeSrc":"11457:6:54","nodeType":"YulIdentifier","src":"11457:6:54"},"nativeSrc":"11457:30:54","nodeType":"YulFunctionCall","src":"11457:30:54"},"nativeSrc":"11457:30:54","nodeType":"YulExpressionStatement","src":"11457:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11507:9:54","nodeType":"YulIdentifier","src":"11507:9:54"},{"kind":"number","nativeSrc":"11518:2:54","nodeType":"YulLiteral","src":"11518:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11503:3:54","nodeType":"YulIdentifier","src":"11503:3:54"},"nativeSrc":"11503:18:54","nodeType":"YulFunctionCall","src":"11503:18:54"},{"hexValue":"54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a20747261","kind":"string","nativeSrc":"11523:34:54","nodeType":"YulLiteral","src":"11523:34:54","type":"","value":"Timelock::cancelTransaction: tra"}],"functionName":{"name":"mstore","nativeSrc":"11496:6:54","nodeType":"YulIdentifier","src":"11496:6:54"},"nativeSrc":"11496:62:54","nodeType":"YulFunctionCall","src":"11496:62:54"},"nativeSrc":"11496:62:54","nodeType":"YulExpressionStatement","src":"11496:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11578:9:54","nodeType":"YulIdentifier","src":"11578:9:54"},{"kind":"number","nativeSrc":"11589:2:54","nodeType":"YulLiteral","src":"11589:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11574:3:54","nodeType":"YulIdentifier","src":"11574:3:54"},"nativeSrc":"11574:18:54","nodeType":"YulFunctionCall","src":"11574:18:54"},{"hexValue":"6e73616374696f6e206973206e6f7420717565756564207965742e","kind":"string","nativeSrc":"11594:29:54","nodeType":"YulLiteral","src":"11594:29:54","type":"","value":"nsaction is not queued yet."}],"functionName":{"name":"mstore","nativeSrc":"11567:6:54","nodeType":"YulIdentifier","src":"11567:6:54"},"nativeSrc":"11567:57:54","nodeType":"YulFunctionCall","src":"11567:57:54"},"nativeSrc":"11567:57:54","nodeType":"YulExpressionStatement","src":"11567:57:54"},{"nativeSrc":"11633:27:54","nodeType":"YulAssignment","src":"11633:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"11645:9:54","nodeType":"YulIdentifier","src":"11645:9:54"},{"kind":"number","nativeSrc":"11656:3:54","nodeType":"YulLiteral","src":"11656:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11641:3:54","nodeType":"YulIdentifier","src":"11641:3:54"},"nativeSrc":"11641:19:54","nodeType":"YulFunctionCall","src":"11641:19:54"},"variableNames":[{"name":"tail","nativeSrc":"11633:4:54","nodeType":"YulIdentifier","src":"11633:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11243:423:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11394:9:54","nodeType":"YulTypedName","src":"11394:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11408:4:54","nodeType":"YulTypedName","src":"11408:4:54","type":""}],"src":"11243:423:54"},{"body":{"nativeSrc":"11845:239:54","nodeType":"YulBlock","src":"11845:239:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11862:9:54","nodeType":"YulIdentifier","src":"11862:9:54"},{"kind":"number","nativeSrc":"11873:2:54","nodeType":"YulLiteral","src":"11873:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11855:6:54","nodeType":"YulIdentifier","src":"11855:6:54"},"nativeSrc":"11855:21:54","nodeType":"YulFunctionCall","src":"11855:21:54"},"nativeSrc":"11855:21:54","nodeType":"YulExpressionStatement","src":"11855:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11896:9:54","nodeType":"YulIdentifier","src":"11896:9:54"},{"kind":"number","nativeSrc":"11907:2:54","nodeType":"YulLiteral","src":"11907:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11892:3:54","nodeType":"YulIdentifier","src":"11892:3:54"},"nativeSrc":"11892:18:54","nodeType":"YulFunctionCall","src":"11892:18:54"},{"kind":"number","nativeSrc":"11912:2:54","nodeType":"YulLiteral","src":"11912:2:54","type":"","value":"49"}],"functionName":{"name":"mstore","nativeSrc":"11885:6:54","nodeType":"YulIdentifier","src":"11885:6:54"},"nativeSrc":"11885:30:54","nodeType":"YulFunctionCall","src":"11885:30:54"},"nativeSrc":"11885:30:54","nodeType":"YulExpressionStatement","src":"11885:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11935:9:54","nodeType":"YulIdentifier","src":"11935:9:54"},{"kind":"number","nativeSrc":"11946:2:54","nodeType":"YulLiteral","src":"11946:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11931:3:54","nodeType":"YulIdentifier","src":"11931:3:54"},"nativeSrc":"11931:18:54","nodeType":"YulFunctionCall","src":"11931:18:54"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f","kind":"string","nativeSrc":"11951:34:54","nodeType":"YulLiteral","src":"11951:34:54","type":"","value":"Timelock::setDelay: Call must co"}],"functionName":{"name":"mstore","nativeSrc":"11924:6:54","nodeType":"YulIdentifier","src":"11924:6:54"},"nativeSrc":"11924:62:54","nodeType":"YulFunctionCall","src":"11924:62:54"},"nativeSrc":"11924:62:54","nodeType":"YulExpressionStatement","src":"11924:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12006:9:54","nodeType":"YulIdentifier","src":"12006:9:54"},{"kind":"number","nativeSrc":"12017:2:54","nodeType":"YulLiteral","src":"12017:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12002:3:54","nodeType":"YulIdentifier","src":"12002:3:54"},"nativeSrc":"12002:18:54","nodeType":"YulFunctionCall","src":"12002:18:54"},{"hexValue":"6d652066726f6d2054696d656c6f636b2e","kind":"string","nativeSrc":"12022:19:54","nodeType":"YulLiteral","src":"12022:19:54","type":"","value":"me from Timelock."}],"functionName":{"name":"mstore","nativeSrc":"11995:6:54","nodeType":"YulIdentifier","src":"11995:6:54"},"nativeSrc":"11995:47:54","nodeType":"YulFunctionCall","src":"11995:47:54"},"nativeSrc":"11995:47:54","nodeType":"YulExpressionStatement","src":"11995:47:54"},{"nativeSrc":"12051:27:54","nodeType":"YulAssignment","src":"12051:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12063:9:54","nodeType":"YulIdentifier","src":"12063:9:54"},{"kind":"number","nativeSrc":"12074:3:54","nodeType":"YulLiteral","src":"12074:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12059:3:54","nodeType":"YulIdentifier","src":"12059:3:54"},"nativeSrc":"12059:19:54","nodeType":"YulFunctionCall","src":"12059:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12051:4:54","nodeType":"YulIdentifier","src":"12051:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11671:413:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11822:9:54","nodeType":"YulTypedName","src":"11822:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11836:4:54","nodeType":"YulTypedName","src":"11836:4:54","type":""}],"src":"11671:413:54"},{"body":{"nativeSrc":"12263:242:54","nodeType":"YulBlock","src":"12263:242:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12280:9:54","nodeType":"YulIdentifier","src":"12280:9:54"},{"kind":"number","nativeSrc":"12291:2:54","nodeType":"YulLiteral","src":"12291:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12273:6:54","nodeType":"YulIdentifier","src":"12273:6:54"},"nativeSrc":"12273:21:54","nodeType":"YulFunctionCall","src":"12273:21:54"},"nativeSrc":"12273:21:54","nodeType":"YulExpressionStatement","src":"12273:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12314:9:54","nodeType":"YulIdentifier","src":"12314:9:54"},{"kind":"number","nativeSrc":"12325:2:54","nodeType":"YulLiteral","src":"12325:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12310:3:54","nodeType":"YulIdentifier","src":"12310:3:54"},"nativeSrc":"12310:18:54","nodeType":"YulFunctionCall","src":"12310:18:54"},{"kind":"number","nativeSrc":"12330:2:54","nodeType":"YulLiteral","src":"12330:2:54","type":"","value":"52"}],"functionName":{"name":"mstore","nativeSrc":"12303:6:54","nodeType":"YulIdentifier","src":"12303:6:54"},"nativeSrc":"12303:30:54","nodeType":"YulFunctionCall","src":"12303:30:54"},"nativeSrc":"12303:30:54","nodeType":"YulExpressionStatement","src":"12303:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12353:9:54","nodeType":"YulIdentifier","src":"12353:9:54"},{"kind":"number","nativeSrc":"12364:2:54","nodeType":"YulLiteral","src":"12364:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12349:3:54","nodeType":"YulIdentifier","src":"12349:3:54"},"nativeSrc":"12349:18:54","nodeType":"YulFunctionCall","src":"12349:18:54"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d7573742065","kind":"string","nativeSrc":"12369:34:54","nodeType":"YulLiteral","src":"12369:34:54","type":"","value":"Timelock::setDelay: Delay must e"}],"functionName":{"name":"mstore","nativeSrc":"12342:6:54","nodeType":"YulIdentifier","src":"12342:6:54"},"nativeSrc":"12342:62:54","nodeType":"YulFunctionCall","src":"12342:62:54"},"nativeSrc":"12342:62:54","nodeType":"YulExpressionStatement","src":"12342:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12424:9:54","nodeType":"YulIdentifier","src":"12424:9:54"},{"kind":"number","nativeSrc":"12435:2:54","nodeType":"YulLiteral","src":"12435:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12420:3:54","nodeType":"YulIdentifier","src":"12420:3:54"},"nativeSrc":"12420:18:54","nodeType":"YulFunctionCall","src":"12420:18:54"},{"hexValue":"7863656564206d696e696d756d2064656c61792e","kind":"string","nativeSrc":"12440:22:54","nodeType":"YulLiteral","src":"12440:22:54","type":"","value":"xceed minimum delay."}],"functionName":{"name":"mstore","nativeSrc":"12413:6:54","nodeType":"YulIdentifier","src":"12413:6:54"},"nativeSrc":"12413:50:54","nodeType":"YulFunctionCall","src":"12413:50:54"},"nativeSrc":"12413:50:54","nodeType":"YulExpressionStatement","src":"12413:50:54"},{"nativeSrc":"12472:27:54","nodeType":"YulAssignment","src":"12472:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12484:9:54","nodeType":"YulIdentifier","src":"12484:9:54"},{"kind":"number","nativeSrc":"12495:3:54","nodeType":"YulLiteral","src":"12495:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12480:3:54","nodeType":"YulIdentifier","src":"12480:3:54"},"nativeSrc":"12480:19:54","nodeType":"YulFunctionCall","src":"12480:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12472:4:54","nodeType":"YulIdentifier","src":"12472:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12089:416:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12240:9:54","nodeType":"YulTypedName","src":"12240:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12254:4:54","nodeType":"YulTypedName","src":"12254:4:54","type":""}],"src":"12089:416:54"},{"body":{"nativeSrc":"12684:246:54","nodeType":"YulBlock","src":"12684:246:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12701:9:54","nodeType":"YulIdentifier","src":"12701:9:54"},{"kind":"number","nativeSrc":"12712:2:54","nodeType":"YulLiteral","src":"12712:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12694:6:54","nodeType":"YulIdentifier","src":"12694:6:54"},"nativeSrc":"12694:21:54","nodeType":"YulFunctionCall","src":"12694:21:54"},"nativeSrc":"12694:21:54","nodeType":"YulExpressionStatement","src":"12694:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12735:9:54","nodeType":"YulIdentifier","src":"12735:9:54"},{"kind":"number","nativeSrc":"12746:2:54","nodeType":"YulLiteral","src":"12746:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12731:3:54","nodeType":"YulIdentifier","src":"12731:3:54"},"nativeSrc":"12731:18:54","nodeType":"YulFunctionCall","src":"12731:18:54"},{"kind":"number","nativeSrc":"12751:2:54","nodeType":"YulLiteral","src":"12751:2:54","type":"","value":"56"}],"functionName":{"name":"mstore","nativeSrc":"12724:6:54","nodeType":"YulIdentifier","src":"12724:6:54"},"nativeSrc":"12724:30:54","nodeType":"YulFunctionCall","src":"12724:30:54"},"nativeSrc":"12724:30:54","nodeType":"YulExpressionStatement","src":"12724:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12774:9:54","nodeType":"YulIdentifier","src":"12774:9:54"},{"kind":"number","nativeSrc":"12785:2:54","nodeType":"YulLiteral","src":"12785:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12770:3:54","nodeType":"YulIdentifier","src":"12770:3:54"},"nativeSrc":"12770:18:54","nodeType":"YulFunctionCall","src":"12770:18:54"},{"hexValue":"54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e","kind":"string","nativeSrc":"12790:34:54","nodeType":"YulLiteral","src":"12790:34:54","type":"","value":"Timelock::setDelay: Delay must n"}],"functionName":{"name":"mstore","nativeSrc":"12763:6:54","nodeType":"YulIdentifier","src":"12763:6:54"},"nativeSrc":"12763:62:54","nodeType":"YulFunctionCall","src":"12763:62:54"},"nativeSrc":"12763:62:54","nodeType":"YulExpressionStatement","src":"12763:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12845:9:54","nodeType":"YulIdentifier","src":"12845:9:54"},{"kind":"number","nativeSrc":"12856:2:54","nodeType":"YulLiteral","src":"12856:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12841:3:54","nodeType":"YulIdentifier","src":"12841:3:54"},"nativeSrc":"12841:18:54","nodeType":"YulFunctionCall","src":"12841:18:54"},{"hexValue":"6f7420657863656564206d6178696d756d2064656c61792e","kind":"string","nativeSrc":"12861:26:54","nodeType":"YulLiteral","src":"12861:26:54","type":"","value":"ot exceed maximum delay."}],"functionName":{"name":"mstore","nativeSrc":"12834:6:54","nodeType":"YulIdentifier","src":"12834:6:54"},"nativeSrc":"12834:54:54","nodeType":"YulFunctionCall","src":"12834:54:54"},"nativeSrc":"12834:54:54","nodeType":"YulExpressionStatement","src":"12834:54:54"},{"nativeSrc":"12897:27:54","nodeType":"YulAssignment","src":"12897:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"12909:9:54","nodeType":"YulIdentifier","src":"12909:9:54"},{"kind":"number","nativeSrc":"12920:3:54","nodeType":"YulLiteral","src":"12920:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12905:3:54","nodeType":"YulIdentifier","src":"12905:3:54"},"nativeSrc":"12905:19:54","nodeType":"YulFunctionCall","src":"12905:19:54"},"variableNames":[{"name":"tail","nativeSrc":"12897:4:54","nodeType":"YulIdentifier","src":"12897:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12510:420:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12661:9:54","nodeType":"YulTypedName","src":"12661:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12675:4:54","nodeType":"YulTypedName","src":"12675:4:54","type":""}],"src":"12510:420:54"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256t_string_calldata_ptrt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 128))\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    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_stringliteral_0cbc65ac44dc8b90b8bc4c38c9c6ad704bfeb2c8170538058496c0e805dfa947__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Ca\")\n        mstore(add(headStart, 96), \"ll must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value4, value5, tail_1)\n        mstore(add(headStart, 128), value6)\n    }\n    function abi_encode_tuple_t_stringliteral_7e3bf24eec453753018af1214443c72d8abb3050b249b2b3b9bb2adb04310650__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction hasn't been queued.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_381d72a875dbcf282eb0ce43951c66b6c4d7dadc6fdeb9294add773d09cd1687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 69)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction hasn't surpassed time \")\n        mstore(add(headStart, 128), \"lock.\")\n        tail := add(headStart, 160)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_2c4a83afbdcff2c4ba869dacfa7dabb27b12f774a0707feae827e36773b8166c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction is stale.\")\n        tail := add(headStart, 128)\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        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        mstore(pos, and(value0, 0xffffffff00000000000000000000000000000000000000000000000000000000))\n        calldatacopy(add(pos, 4), value1, value2)\n        let _1 := add(add(pos, value2), 4)\n        mstore(_1, 0)\n        end := _1\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        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_c8cfef133518ef6ab39ac5f19562a74f4f875e9130c8117d51f88a557b6e72c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"Timelock::executeTransaction: Tr\")\n        mstore(add(headStart, 96), \"ansaction execution reverted.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_string_calldata_ptr_t_bytes_calldata_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_string_calldata(value1, value2, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value3, value4, tail_1)\n        mstore(add(headStart, 96), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_a6d22532620e2c2df8ce400b3f4754629da5ed6321258d3add10ae5aba9450b3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::acceptAdmin: Call must\")\n        mstore(add(headStart, 96), \" come from pendingAdmin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b9bd2ade56c0bd4d6738b7a39a90e136f8901e8e7945a3d237050075ad6fd749__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 54)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: Call\")\n        mstore(add(headStart, 96), \" must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d8f8e6fa46b62e55e6ef89f0d71d2a706a902748f37198aeb3e192bf7bca348c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 73)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: Esti\")\n        mstore(add(headStart, 96), \"mated execution block must satis\")\n        mstore(add(headStart, 128), \"fy delay.\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_c3dc77f6ede7b6195dca0ab15e49736c813ce698624fe501da985707f241d9c7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::queueTransaction: tran\")\n        mstore(add(headStart, 96), \"saction already queued.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b7a0aaea4203d5a5318b76c13dcb2afd3f7e9e71cd6f5f022040411bd080d815__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setPendingAdmin: Call \")\n        mstore(add(headStart, 96), \"must come from Timelock.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_135e413b08c779b9b925daaaf6178471ba60ebd33d413d809c76a0d4e8beaf3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"Timelock::cancelTransaction: Cal\")\n        mstore(add(headStart, 96), \"l must come from admin.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_5dff9a8bd683a1f8a197320db69edd3e2d2988378442d324202dc24789d949f5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"Timelock::cancelTransaction: tra\")\n        mstore(add(headStart, 96), \"nsaction is not queued yet.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e810dcfb9ec7662fa74f0c58d14b8ca36ebffcb4d6cdf3e54d58e4096597d95d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Call must co\")\n        mstore(add(headStart, 96), \"me from Timelock.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4198c63548ffd3e47f06dc876a374eb662a4ea6ff5509a211e07dd2b49998b1d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 52)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must e\")\n        mstore(add(headStart, 96), \"xceed minimum delay.\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_762218313af08cfa6c9b8eda00385502eefaa529f9945044fd2dee54ff5cefe0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"Timelock::setDelay: Delay must n\")\n        mstore(add(headStart, 96), \"ot exceed maximum delay.\")\n        tail := add(headStart, 128)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100c95760003560e01c80636a42b8f811610079578063c1a287e211610056578063c1a287e2146101ec578063e177246e14610215578063f2b0653714610235578063f851a4401461027557005b80636a42b8f8146101d65780637d645fab146101ec578063b1b43ae51461020157005b80633a66f901116100a75780633a66f901146101685780634dd18bf514610196578063591fcdfe146101b657005b80630825f38f146100cb5780630e18b681146101015780632678224714610116575b005b3480156100d757600080fd5b506100eb6100e6366004611055565b6102a2565b6040516100f8919061110c565b60405180910390f35b34801561010d57600080fd5b506100c9610731565b34801561012257600080fd5b506001546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b34801561017457600080fd5b50610188610183366004611055565b61083b565b6040519081526020016100f8565b3480156101a257600080fd5b506100c96101b136600461115d565b610aeb565b3480156101c257600080fd5b506100c96101d1366004611055565b610bfa565b3480156101e257600080fd5b5061018860025481565b3480156101f857600080fd5b50610e10610188565b34801561020d57600080fd5b506001610188565b34801561022157600080fd5b506100c961023036600461117f565b610dfb565b34801561024157600080fd5b5061026561025036600461117f565b60036020526000908152604090205460ff1681565b60405190151581526020016100f8565b34801561028157600080fd5b506000546101439073ffffffffffffffffffffffffffffffffffffffff1681565b60005460609073ffffffffffffffffffffffffffffffffffffffff1633146103375760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20436160448201527f6c6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000060648201526084015b60405180910390fd5b60008888888888888860405160200161035697969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff166104115760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774206265656e207175657565642e000000606482015260840161032e565b824210156104ad5760405162461bcd60e51b815260206004820152604560248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060648201527f6c6f636b2e000000000000000000000000000000000000000000000000000000608482015260a40161032e565b6104b9610e108461123f565b42111561052e5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e206973207374616c652e00000000000000000000000000606482015260840161032e565b600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556060908790036105ab5785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506105e692505050565b87876040516105bb92919061127f565b6040519081900381206105d4918890889060200161128f565b60405160208183030381529060405290505b6000808b73ffffffffffffffffffffffffffffffffffffffff168b8460405161060f91906112cb565b60006040518083038185875af1925050503d806000811461064c576040519150601f19603f3d011682016040523d82523d6000602084013e610651565b606091505b5091509150816106c95760405162461bcd60e51b815260206004820152603d60248201527f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a20547260448201527f616e73616374696f6e20657865637574696f6e2072657665727465642e000000606482015260840161032e565b8b73ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78d8d8d8d8d8d60405161071a969594939291906112e7565b60405180910390a39b9a5050505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107be5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a61636365707441646d696e3a2043616c6c206d75737460448201527f20636f6d652066726f6d2070656e64696e6741646d696e2e0000000000000000606482015260840161032e565b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc91a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600180549091169055565b6000805473ffffffffffffffffffffffffffffffffffffffff1633146108c95760405162461bcd60e51b815260206004820152603660248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a2043616c6c60448201527f206d75737420636f6d652066726f6d2061646d696e2e00000000000000000000606482015260840161032e565b6002546108d6904261123f565b8210156109715760405162461bcd60e51b815260206004820152604960248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a204573746960448201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360648201527f66792064656c61792e0000000000000000000000000000000000000000000000608482015260a40161032e565b60008888888888888860405160200161099097969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff1615610a4c5760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a207472616e60448201527f73616374696f6e20616c7265616479207175657565642e000000000000000000606482015260840161032e565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555173ffffffffffffffffffffffffffffffffffffffff8a169082907f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f90610ad7908c908c908c908c908c908c906112e7565b60405180910390a398975050505050505050565b33301480610b10575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610b825760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657450656e64696e6741646d696e3a2043616c6c2060448201527f6d75737420636f6d652066726f6d2054696d656c6f636b2e0000000000000000606482015260840161032e565b610b8b81610f93565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a75690600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c875760405162461bcd60e51b815260206004820152603760248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2043616c60448201527f6c206d75737420636f6d652066726f6d2061646d696e2e000000000000000000606482015260840161032e565b600087878787878787604051602001610ca697969594939291906111e1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301206000818152600390935291205490915060ff16610d615760405162461bcd60e51b815260206004820152603b60248201527f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a2074726160448201527f6e73616374696f6e206973206e6f7420717565756564207965742e0000000000606482015260840161032e565b6000818152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555173ffffffffffffffffffffffffffffffffffffffff89169082907f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf8790610de9908b908b908b908b908b908b906112e7565b60405180910390a35050505050505050565b333014610e705760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b3a3a73657444656c61793a2043616c6c206d75737420636f60448201527f6d652066726f6d2054696d656c6f636b2e000000000000000000000000000000606482015260840161032e565b6001811015610ee75760405162461bcd60e51b815260206004820152603460248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206560448201527f7863656564206d696e696d756d2064656c61792e000000000000000000000000606482015260840161032e565b610e10811115610f5f5760405162461bcd60e51b815260206004820152603860248201527f54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e60448201527f6f7420657863656564206d6178696d756d2064656c61792e0000000000000000606482015260840161032e565b6002546040518291907fed0229422af39d4d7d33f7a27d31d6f5cb20ec628293da58dd6e8a528ed466be90600090a3600255565b73ffffffffffffffffffffffffffffffffffffffff8116610fe0576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff8116811461100757600080fd5b919050565b60008083601f84011261101e57600080fd5b50813567ffffffffffffffff81111561103657600080fd5b60208301915083602082850101111561104e57600080fd5b9250929050565b600080600080600080600060a0888a03121561107057600080fd5b61107988610fe3565b965060208801359550604088013567ffffffffffffffff8082111561109d57600080fd5b6110a98b838c0161100c565b909750955060608a01359150808211156110c257600080fd5b506110cf8a828b0161100c565b989b979a50959894979596608090950135949350505050565b60005b838110156111035781810151838201526020016110eb565b50506000910152565b602081526000825180602084015261112b8160408501602087016110e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561116f57600080fd5b61117882610fe3565b9392505050565b60006020828403121561119157600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8816815286602082015260a06040820152600061121760a083018789611198565b828103606084015261122a818688611198565b91505082608083015298975050505050505050565b80820180821115611279577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8183823760009101908152919050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152818360048301376000910160040190815292915050565b600082516112dd8184602087016110e8565b9190910192915050565b868152608060208201526000611301608083018789611198565b8281036040840152611314818688611198565b91505082606083015297965050505050505056fea2646970667358221220f2ebbbc2962ab36d932af22dc3db85cd054b82dec65045e01307fcab3adf4b8764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6A42B8F8 GT PUSH2 0x79 JUMPI DUP1 PUSH4 0xC1A287E2 GT PUSH2 0x56 JUMPI DUP1 PUSH4 0xC1A287E2 EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xE177246E EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xF2B06537 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x275 JUMPI STOP JUMPDEST DUP1 PUSH4 0x6A42B8F8 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x7D645FAB EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0xB1B43AE5 EQ PUSH2 0x201 JUMPI STOP JUMPDEST DUP1 PUSH4 0x3A66F901 GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3A66F901 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x4DD18BF5 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0x591FCDFE EQ PUSH2 0x1B6 JUMPI STOP JUMPDEST DUP1 PUSH4 0x825F38F EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xE18B681 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x116 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x2A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x110C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x731 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x83B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x115D JUMP JUMPDEST PUSH2 0xAEB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0xBFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE10 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH2 0x188 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC9 PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x117F JUMP JUMPDEST PUSH2 0xDFB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x265 PUSH2 0x250 CALLDATASIZE PUSH1 0x4 PUSH2 0x117F JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x143 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A204361 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6C206D75737420636F6D652066726F6D2061646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x356 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x411 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774206265656E207175657565642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST DUP3 TIMESTAMP LT ISZERO PUSH2 0x4AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206861736E2774207375727061737365642074696D6520 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6C6F636B2E000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x4B9 PUSH2 0xE10 DUP5 PUSH2 0x123F JUMP JUMPDEST TIMESTAMP GT ISZERO PUSH2 0x52E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E206973207374616C652E00000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE PUSH1 0x60 SWAP1 DUP8 SWAP1 SUB PUSH2 0x5AB JUMPI DUP6 DUP6 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 SWAP3 SWAP4 POP PUSH2 0x5E6 SWAP3 POP POP POP JUMP JUMPDEST DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5BB SWAP3 SWAP2 SWAP1 PUSH2 0x127F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x5D4 SWAP2 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x128F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x60F SWAP2 SWAP1 PUSH2 0x12CB 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 0x64C 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 0x651 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x6C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A657865637574655472616E73616374696F6E3A205472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E73616374696F6E20657865637574696F6E2072657665727465642E000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xA560E3198060A2F10670C1EC5B403077EA6AE93CA8DE1C32B451DC1A943CD6E7 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH2 0x71A SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x7BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A61636365707441646D696E3A2043616C6C206D757374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20636F6D652066726F6D2070656E64696E6741646D696E2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD CALLER SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2043616C6C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x206D75737420636F6D652066726F6D2061646D696E2E00000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x8D6 SWAP1 TIMESTAMP PUSH2 0x123F JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x971 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x49 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A2045737469 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D6174656420657865637574696F6E20626C6F636B206D757374207361746973 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x66792064656C61792E0000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x990 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0xA4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A71756575655472616E73616374696F6E3A207472616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x73616374696F6E20616C7265616479207175657565642E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP1 DUP3 SWAP1 PUSH32 0x76E2796DC3A81D57B0E8504B647FEBCBEEB5F4AF818E164F11EEF8131A6A763F SWAP1 PUSH2 0xAD7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ DUP1 PUSH2 0xB10 JUMPI POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ JUMPDEST PUSH2 0xB82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657450656E64696E6741646D696E3A2043616C6C20 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D75737420636F6D652066726F6D2054696D656C6F636B2E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0xB8B DUP2 PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x69D78E38A01985FBB1462961809B4B2D65531BC93B2B94037F3334B82CA4A756 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0xC87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A2043616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C206D75737420636F6D652066726F6D2061646D696E2E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCA6 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x11E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xD61 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A63616E63656C5472616E73616374696F6E3A20747261 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E73616374696F6E206973206E6F7420717565756564207965742E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SSTORE MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP1 DUP3 SWAP1 PUSH32 0x2FFFC091A501FD91BFBFF27141450D3ACB40FB8E6D8382B243EC7A812A3AAF87 SWAP1 PUSH2 0xDE9 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xE70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2043616C6C206D75737420636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6D652066726F6D2054696D656C6F636B2E000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0xEE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D7573742065 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7863656564206D696E696D756D2064656C61792E000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0xE10 DUP2 GT ISZERO PUSH2 0xF5F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B3A3A73657444656C61793A2044656C6179206D757374206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F7420657863656564206D6178696D756D2064656C61792E0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD DUP3 SWAP2 SWAP1 PUSH32 0xED0229422AF39D4D7D33F7A27D31D6F5CB20EC628293DA58DD6E8A528ED466BE SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xFE0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8579BEFE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1007 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1036 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x104E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1070 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1079 DUP9 PUSH2 0xFE3 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x109D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10A9 DUP12 DUP4 DUP13 ADD PUSH2 0x100C JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x60 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x10C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10CF DUP11 DUP3 DUP12 ADD PUSH2 0x100C JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 SWAP5 SWAP8 SWAP6 SWAP7 PUSH1 0x80 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1103 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10EB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x112B DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x10E8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x116F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1178 DUP3 PUSH2 0xFE3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x0 PUSH1 0x20 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP5 ADD AND DUP5 ADD ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1217 PUSH1 0xA0 DUP4 ADD DUP8 DUP10 PUSH2 0x1198 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x122A DUP2 DUP7 DUP9 PUSH2 0x1198 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1279 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP5 AND DUP2 MSTORE DUP2 DUP4 PUSH1 0x4 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x12DD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x10E8 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1301 PUSH1 0x80 DUP4 ADD DUP8 DUP10 PUSH2 0x1198 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x1314 DUP2 DUP7 DUP9 PUSH2 0x1198 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0xEB 0xBB 0xC2 SWAP7 0x2A 0xB3 PUSH14 0x932AF22DC3DB85CD054B82DEC650 GASLIMIT 0xE0 SGT SMOD 0xFC 0xAB GASPRICE 0xDF 0x4B DUP8 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"125:422:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8245:1342:35;;;;;;;;;;-1:-1:-1;8245:1342:35;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4309:247;;;;;;;;;;;;;:::i;1017:27::-;;;;;;;;;;-1:-1:-1;1017:27:35;;;;;;;;;;;2394:42:54;2382:55;;;2364:74;;2352:2;2337:18;1017:27:35;2218:226:54;5807:790:35;;;;;;;;;;-1:-1:-1;5807:790:35;;;;;:::i;:::-;;:::i;:::-;;;2595:25:54;;;2583:2;2568:18;5807:790:35;2449:177:54;4893:353:35;;;;;;;;;;-1:-1:-1;4893:353:35;;;;;:::i;:::-;;:::i;7104:593::-;;;;;;;;;;-1:-1:-1;7104:593:35;;;;;:::i;:::-;;:::i;1114:20::-;;;;;;;;;;;;;;;;450:95:41;;;;;;;;;;-1:-1:-1;531:7:41;450:95;;355:89;;;;;;;;;;-1:-1:-1;436:1:41;355:89;;3062:413:35;;;;;;;;;;-1:-1:-1;3062:413:35;;;;;:::i;:::-;;:::i;1188:50::-;;;;;;;;;;-1:-1:-1;1188:50:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3539:14:54;;3532:22;3514:41;;3502:2;3487:18;1188:50:35;3374:187:54;939:20:35;;;;;;;;;;-1:-1:-1;939:20:35;;;;;;;;8245:1342;8473:5;;8427:12;;8473:5;;8459:10;:19;8451:88;;;;-1:-1:-1;;;8451:88:35;;3768:2:54;8451:88:35;;;3750:21:54;3807:2;3787:18;;;3780:30;3846:34;3826:18;;;3819:62;3917:26;3897:18;;;3890:54;3961:19;;8451:88:35;;;;;;;;;8550:14;8588:6;8596:5;8603:9;;8614:4;;8620:3;8577:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;8567:58;;8577:47;8567:58;;;;8643:26;;;;:18;:26;;;;;;8567:58;;-1:-1:-1;8643:26:35;;8635:100;;;;-1:-1:-1;;;8635:100:35;;5229:2:54;8635:100:35;;;5211:21:54;5268:2;5248:18;;;5241:30;5307:34;5287:18;;;5280:62;5378:31;5358:18;;;5351:59;5427:19;;8635:100:35;5027:425:54;8635:100:35;8776:3;9843:15;8753:26;;8745:108;;;;-1:-1:-1;;;8745:108:35;;5659:2:54;8745:108:35;;;5641:21:54;5698:2;5678:18;;;5671:30;5737:34;5717:18;;;5710:62;5808:34;5788:18;;;5781:62;5880:7;5859:19;;;5852:36;5905:19;;8745:108:35;5457:473:54;8745:108:35;8894:20;531:7:41;8894:3:35;:20;:::i;:::-;9843:15;8871:43;;8863:107;;;;-1:-1:-1;;;8863:107:35;;6421:2:54;8863:107:35;;;6403:21:54;6460:2;6440:18;;;6433:30;6499:34;6479:18;;;6472:62;6570:21;6550:18;;;6543:49;6609:19;;8863:107:35;6219:415:54;8863:107:35;8989:26;;;;:18;:26;;;;;8981:35;;;;;;9027:21;;9063:28;;;9059:175;;9118:4;;9107:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9107:15:35;;-1:-1:-1;9059:175:35;;-1:-1:-1;;;9059:175:35;;9204:9;;9188:27;;;;;;;:::i;:::-;;;;;;;;;9164:59;;9218:4;;;;9164:59;;;:::i;:::-;;;;;;;;;;;;;9153:70;;9059:175;9304:12;9318:23;9345:6;:11;;9365:5;9373:8;9345:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9303:79;;;;9400:7;9392:81;;;;-1:-1:-1;;;9392:81:35;;7828:2:54;9392:81:35;;;7810:21:54;7867:2;7847:18;;;7840:30;7906:34;7886:18;;;7879:62;7977:31;7957:18;;;7950:59;8026:19;;9392:81:35;7626:425:54;9392:81:35;9516:6;9489:63;;9508:6;9489:63;9524:5;9531:9;;9542:4;;9548:3;9489:63;;;;;;;;;;;:::i;:::-;;;;;;;;9570:10;8245:1342;-1:-1:-1;;;;;;;;;;;8245:1342:35:o;4309:247::-;4371:12;;;;4357:10;:26;4349:95;;;;-1:-1:-1;;;4349:95:35;;8842:2:54;4349:95:35;;;8824:21:54;8881:2;8861:18;;;8854:30;8920:34;8900:18;;;8893:62;8991:26;8971:18;;;8964:54;9035:19;;4349:95:35;8640:420:54;4349:95:35;4468:5;;;4459:27;;4475:10;;4459:27;4468:5;;;;4459:27;;;4496:5;:18;;;;;;4504:10;4496:18;;;;;4524:25;;;;;;;4309:247::o;5807:790::-;5987:7;6028:5;;;;6014:10;:19;6006:86;;;;-1:-1:-1;;;6006:86:35;;9267:2:54;6006:86:35;;;9249:21:54;9306:2;9286:18;;;9279:30;9345:34;9325:18;;;9318:62;9416:24;9396:18;;;9389:52;9458:19;;6006:86:35;9065:418:54;6006:86:35;6152:5;;6130:27;;9843:15;6130:27;:::i;:::-;6123:3;:34;;6102:154;;;;-1:-1:-1;;;6102:154:35;;9690:2:54;6102:154:35;;;9672:21:54;9729:2;9709:18;;;9702:30;9768:34;9748:18;;;9741:62;9839:34;9819:18;;;9812:62;9911:11;9890:19;;;9883:40;9940:19;;6102:154:35;9488:477:54;6102:154:35;6267:14;6305:6;6313:5;6320:9;;6331:4;;6337:3;6294:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6284:58;;6294:47;6284:58;;;;6361:26;;;;:18;:26;;;;;;6284:58;;-1:-1:-1;6361:26:35;;6360:27;6352:95;;;;-1:-1:-1;;;6352:95:35;;10172:2:54;6352:95:35;;;10154:21:54;10211:2;10191:18;;;10184:30;10250:34;10230:18;;;10223:62;10321:25;10301:18;;;10294:53;10364:19;;6352:95:35;9970:419:54;6352:95:35;6457:26;;;;:18;:26;;;;;;;:33;;;;6486:4;6457:33;;;6506:61;;;;;6476:6;;6506:61;;;;6539:5;;6546:9;;;;6557:4;;;;6563:3;;6506:61;:::i;:::-;;;;;;;;6584:6;5807:790;-1:-1:-1;;;;;;;;5807:790:35:o;4893:353::-;4979:10;5001:4;4979:27;;:50;;-1:-1:-1;5024:5:35;;;;5010:10;:19;4979:50;4958:153;;;;-1:-1:-1;;;4958:153:35;;10596:2:54;4958:153:35;;;10578:21:54;10635:2;10615:18;;;10608:30;10674:34;10654:18;;;10647:62;10745:26;10725:18;;;10718:54;10789:19;;4958:153:35;10394:420:54;4958:153:35;5121:35;5142:13;5121:20;:35::i;:::-;5166:12;:28;;;;;;;;;;;;;5210:29;;;;-1:-1:-1;;5210:29:35;4893:353;:::o;7104:593::-;7308:5;;;;7294:10;:19;7286:87;;;;-1:-1:-1;;;7286:87:35;;11021:2:54;7286:87:35;;;11003:21:54;11060:2;11040:18;;;11033:30;11099:34;11079:18;;;11072:62;11170:25;11150:18;;;11143:53;11213:19;;7286:87:35;10819:419:54;7286:87:35;7384:14;7422:6;7430:5;7437:9;;7448:4;;7454:3;7411:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7401:58;;7411:47;7401:58;;;;7477:26;;;;:18;:26;;;;;;7401:58;;-1:-1:-1;7477:26:35;;7469:98;;;;-1:-1:-1;;;7469:98:35;;11445:2:54;7469:98:35;;;11427:21:54;11484:2;11464:18;;;11457:30;11523:34;11503:18;;;11496:62;11594:29;11574:18;;;11567:57;11641:19;;7469:98:35;11243:423:54;7469:98:35;7585:26;;;;:18;:26;;;;;;;7577:35;;;;;;7628:62;;;;;7604:6;;7628:62;;;;7662:5;;7669:9;;;;7680:4;;;;7686:3;;7628:62;:::i;:::-;;;;;;;;7276:421;7104:593;;;;;;;:::o;3062:413::-;3121:10;3143:4;3121:27;3113:89;;;;-1:-1:-1;;;3113:89:35;;11873:2:54;3113:89:35;;;11855:21:54;11912:2;11892:18;;;11885:30;11951:34;11931:18;;;11924:62;12022:19;12002:18;;;11995:47;12059:19;;3113:89:35;11671:413:54;3113:89:35;436:1:41;3220:6:35;:25;;3212:90;;;;-1:-1:-1;;;3212:90:35;;12291:2:54;3212:90:35;;;12273:21:54;12330:2;12310:18;;;12303:30;12369:34;12349:18;;;12342:62;12440:22;12420:18;;;12413:50;12480:19;;3212:90:35;12089:416:54;3212:90:35;531:7:41;3320:6:35;:25;;3312:94;;;;-1:-1:-1;;;3312:94:35;;12712:2:54;3312:94:35;;;12694:21:54;12751:2;12731:18;;;12724:30;12790:34;12770:18;;;12763:62;12861:26;12841:18;;;12834:54;12905:19;;3312:94:35;12510:420:54;3312:94:35;3430:5;;3421:23;;3437:6;;3430:5;3421:23;;;;;3454:5;:14;3062:413::o;485:136:24:-;548:22;;;544:75;;589:23;;;;;;;;;;;;;;544:75;485:136;:::o;14:196:54:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:348::-;267:8;277:6;331:3;324:4;316:6;312:17;308:27;298:55;;349:1;346;339:12;298:55;-1:-1:-1;372:20:54;;415:18;404:30;;401:50;;;447:1;444;437:12;401:50;484:4;476:6;472:17;460:29;;536:3;529:4;520:6;512;508:19;504:30;501:39;498:59;;;553:1;550;543:12;498:59;215:348;;;;;:::o;568:932::-;686:6;694;702;710;718;726;734;787:3;775:9;766:7;762:23;758:33;755:53;;;804:1;801;794:12;755:53;827:29;846:9;827:29;:::i;:::-;817:39;;903:2;892:9;888:18;875:32;865:42;;958:2;947:9;943:18;930:32;981:18;1022:2;1014:6;1011:14;1008:34;;;1038:1;1035;1028:12;1008:34;1077:59;1128:7;1119:6;1108:9;1104:22;1077:59;:::i;:::-;1155:8;;-1:-1:-1;1051:85:54;-1:-1:-1;1243:2:54;1228:18;;1215:32;;-1:-1:-1;1259:16:54;;;1256:36;;;1288:1;1285;1278:12;1256:36;;1327:61;1380:7;1369:8;1358:9;1354:24;1327:61;:::i;:::-;568:932;;;;-1:-1:-1;568:932:54;;;;;;1489:3;1474:19;;;1461:33;;568:932;-1:-1:-1;;;;568:932:54:o;1505:250::-;1590:1;1600:113;1614:6;1611:1;1608:13;1600:113;;;1690:11;;;1684:18;1671:11;;;1664:39;1636:2;1629:10;1600:113;;;-1:-1:-1;;1747:1:54;1729:16;;1722:27;1505:250::o;1760:453::-;1907:2;1896:9;1889:21;1870:4;1939:6;1933:13;1982:6;1977:2;1966:9;1962:18;1955:34;1998:79;2070:6;2065:2;2054:9;2050:18;2045:2;2037:6;2033:15;1998:79;:::i;:::-;2129:2;2117:15;2134:66;2113:88;2098:104;;;;2204:2;2094:113;;1760:453;-1:-1:-1;;1760:453:54:o;2631:186::-;2690:6;2743:2;2731:9;2722:7;2718:23;2714:32;2711:52;;;2759:1;2756;2749:12;2711:52;2782:29;2801:9;2782:29;:::i;:::-;2772:39;2631:186;-1:-1:-1;;;2631:186:54:o;3004:180::-;3063:6;3116:2;3104:9;3095:7;3091:23;3087:32;3084:52;;;3132:1;3129;3122:12;3084:52;-1:-1:-1;3155:23:54;;3004:180;-1:-1:-1;3004:180:54:o;3991:326::-;4080:6;4075:3;4068:19;4132:6;4125:5;4118:4;4113:3;4109:14;4096:43;;4184:1;4177:4;4168:6;4163:3;4159:16;4155:27;4148:38;4050:3;4306:4;4236:66;4231:2;4223:6;4219:15;4215:88;4210:3;4206:98;4202:109;4195:116;;3991:326;;;;:::o;4322:700::-;4633:42;4625:6;4621:55;4610:9;4603:74;4713:6;4708:2;4697:9;4693:18;4686:34;4756:3;4751:2;4740:9;4736:18;4729:31;4584:4;4783:63;4841:3;4830:9;4826:19;4818:6;4810;4783:63;:::i;:::-;4894:9;4886:6;4882:22;4877:2;4866:9;4862:18;4855:50;4922;4965:6;4957;4949;4922:50;:::i;:::-;4914:58;;;5009:6;5003:3;4992:9;4988:19;4981:35;4322:700;;;;;;;;;;:::o;5935:279::-;6000:9;;;6021:10;;;6018:190;;;6064:77;6061:1;6054:88;6165:4;6162:1;6155:15;6193:4;6190:1;6183:15;6018:190;5935:279;;;;:::o;6639:271::-;6822:6;6814;6809:3;6796:33;6778:3;6848:16;;6873:13;;;6848:16;6639:271;-1:-1:-1;6639:271:54:o;6915:414::-;7122:66;7114:6;7110:79;7105:3;7098:92;7233:6;7225;7221:1;7216:3;7212:11;7199:41;7080:3;7263:16;;7281:1;7259:24;7292:13;;;7259:24;6915:414;-1:-1:-1;;6915:414:54:o;7334:287::-;7463:3;7501:6;7495:13;7517:66;7576:6;7571:3;7564:4;7556:6;7552:17;7517:66;:::i;:::-;7599:16;;;;;7334:287;-1:-1:-1;;7334:287:54:o;8056:579::-;8327:6;8316:9;8309:25;8370:3;8365:2;8354:9;8350:18;8343:31;8290:4;8397:63;8455:3;8444:9;8440:19;8432:6;8424;8397:63;:::i;:::-;8508:9;8500:6;8496:22;8491:2;8480:9;8476:18;8469:50;8536;8579:6;8571;8563;8536:50;:::i;:::-;8528:58;;;8622:6;8617:2;8606:9;8602:18;8595:34;8056:579;;;;;;;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"991600","executionCost":"infinite","totalCost":"infinite"},"external":{"":"164","GRACE_PERIOD()":"214","MAXIMUM_DELAY()":"237","MINIMUM_DELAY()":"259","acceptAdmin()":"54403","admin()":"2401","cancelTransaction(address,uint256,string,bytes,uint256)":"infinite","delay()":"2318","executeTransaction(address,uint256,string,bytes,uint256)":"infinite","pendingAdmin()":"2381","queueTransaction(address,uint256,string,bytes,uint256)":"infinite","queuedTransactions(bytes32)":"2516","setDelay(uint256)":"26071","setPendingAdmin(address)":"27922"}},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","MAXIMUM_DELAY()":"7d645fab","MINIMUM_DELAY()":"b1b43ae5","acceptAdmin()":"0e18b681","admin()":"f851a440","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","pendingAdmin()":"26782247","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537","setDelay(uint256)":"e177246e","setPendingAdmin(address)":"4dd18bf5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"CancelTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldDelay\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"NewDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"GRACE_PERIOD()\":{\"returns\":{\"_0\":\"The duration of the grace period, specified as a uint256 value.\"}},\"MAXIMUM_DELAY()\":{\"returns\":{\"_0\":\"Maximum delay\"}},\"MINIMUM_DELAY()\":{\"returns\":{\"_0\":\"Minimum delay\"}},\"acceptAdmin()\":{\"custom:access\":\"Sender must be pending admin\",\"custom:event\":\"Emit NewAdmin with old and new admin\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit CancelTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"}},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit ExecuteTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Result of function call\"}},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"custom:access\":\"Sender must be admin\",\"custom:event\":\"Emit QueueTransaction\",\"params\":{\"data\":\"Arguments to be passed to the function when called\",\"eta\":\"Timestamp after which the transaction can be executed\",\"signature\":\"Signature of the function to be called\",\"target\":\"Address of the contract with the method to be called\",\"value\":\"Native token amount sent with the transaction\"},\"returns\":{\"_0\":\"Hash of the queued transaction\"}},\"setDelay(uint256)\":{\"custom:access\":\"Sender must be Timelock itself\",\"custom:event\":\"Emit NewDelay with old and new delay\",\"params\":{\"delay_\":\"The new delay period for the transaction queue\"}},\"setPendingAdmin(address)\":{\"custom:access\":\"Sender must be Timelock contract itself or admin\",\"custom:event\":\"Emit NewPendingAdmin with new pending admin\",\"params\":{\"pendingAdmin_\":\"Address of the proposed admin\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"CancelTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been cancelled\"},\"ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been executed\"},\"NewAdmin(address,address)\":{\"notice\":\"Event emitted when a new admin is accepted\"},\"NewDelay(uint256,uint256)\":{\"notice\":\"Event emitted when a new delay is proposed\"},\"NewPendingAdmin(address)\":{\"notice\":\"Event emitted when a new admin is proposed\"},\"QueueTransaction(bytes32,address,uint256,string,bytes,uint256)\":{\"notice\":\"Event emitted when a proposal transaction has been queued\"}},\"kind\":\"user\",\"methods\":{\"GRACE_PERIOD()\":{\"notice\":\"Return grace period\"},\"MAXIMUM_DELAY()\":{\"notice\":\"Return required maximum delay\"},\"MINIMUM_DELAY()\":{\"notice\":\"Return required minimum delay\"},\"acceptAdmin()\":{\"notice\":\"Method for accepting a proposed admin\"},\"admin()\":{\"notice\":\"Timelock admin authorized to queue and execute transactions\"},\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to cancel a queued transaction\"},\"delay()\":{\"notice\":\"Period for a proposal transaction to be queued\"},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called to execute a queued transaction\"},\"pendingAdmin()\":{\"notice\":\"Account proposed as the next admin\"},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"notice\":\"Called for each action when queuing a proposal\"},\"queuedTransactions(bytes32)\":{\"notice\":\"Mapping of queued transactions\"},\"setDelay(uint256)\":{\"notice\":\"Setter for the transaction queue delay\"},\"setPendingAdmin(address)\":{\"notice\":\"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestTimelockV8.sol\":\"TestTimelockV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@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/Governance/TimelockV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title TimelockV8\\n * @author Venus\\n * @notice The Timelock contract using solidity V8.\\n * This contract also differs from the original timelock because it has a virtual function to get minimum delays\\n * and allow test deployments to override the value.\\n */\\ncontract TimelockV8 {\\n    /// @notice Required period to execute a proposal transaction\\n    uint256 private constant DEFAULT_GRACE_PERIOD = 14 days;\\n\\n    /// @notice Minimum amount of time a proposal transaction must be queued\\n    uint256 private constant DEFAULT_MINIMUM_DELAY = 1 hours;\\n\\n    /// @notice Maximum amount of time a proposal transaction must be queued\\n    uint256 private constant DEFAULT_MAXIMUM_DELAY = 30 days;\\n\\n    /// @notice Timelock admin authorized to queue and execute transactions\\n    address public admin;\\n\\n    /// @notice Account proposed as the next admin\\n    address public pendingAdmin;\\n\\n    /// @notice Period for a proposal transaction to be queued\\n    uint256 public delay;\\n\\n    /// @notice Mapping of queued transactions\\n    mapping(bytes32 => bool) public queuedTransactions;\\n\\n    /// @notice Event emitted when a new admin is accepted\\n    event NewAdmin(address indexed oldAdmin, address indexed newAdmin);\\n\\n    /// @notice Event emitted when a new admin is proposed\\n    event NewPendingAdmin(address indexed newPendingAdmin);\\n\\n    /// @notice Event emitted when a new delay is proposed\\n    event NewDelay(uint256 indexed oldDelay, uint256 indexed newDelay);\\n\\n    /// @notice Event emitted when a proposal transaction has been cancelled\\n    event CancelTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    /// @notice Event emitted when a proposal transaction has been executed\\n    event ExecuteTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    /// @notice Event emitted when a proposal transaction has been queued\\n    event QueueTransaction(\\n        bytes32 indexed txHash,\\n        address indexed target,\\n        uint256 value,\\n        string signature,\\n        bytes data,\\n        uint256 eta\\n    );\\n\\n    constructor(address admin_, uint256 delay_) {\\n        require(delay_ >= MINIMUM_DELAY(), \\\"Timelock::constructor: Delay must exceed minimum delay.\\\");\\n        require(delay_ <= MAXIMUM_DELAY(), \\\"Timelock::setDelay: Delay must not exceed maximum delay.\\\");\\n        ensureNonzeroAddress(admin_);\\n\\n        admin = admin_;\\n        delay = delay_;\\n    }\\n\\n    fallback() external payable {}\\n\\n    /**\\n     * @notice Setter for the transaction queue delay\\n     * @param delay_ The new delay period for the transaction queue\\n     * @custom:access Sender must be Timelock itself\\n     * @custom:event Emit NewDelay with old and new delay\\n     */\\n    function setDelay(uint256 delay_) public {\\n        require(msg.sender == address(this), \\\"Timelock::setDelay: Call must come from Timelock.\\\");\\n        require(delay_ >= MINIMUM_DELAY(), \\\"Timelock::setDelay: Delay must exceed minimum delay.\\\");\\n        require(delay_ <= MAXIMUM_DELAY(), \\\"Timelock::setDelay: Delay must not exceed maximum delay.\\\");\\n        emit NewDelay(delay, delay_);\\n        delay = delay_;\\n    }\\n\\n    /**\\n     * @notice Return grace period\\n     * @return The duration of the grace period, specified as a uint256 value.\\n     */\\n    function GRACE_PERIOD() public view virtual returns (uint256) {\\n        return DEFAULT_GRACE_PERIOD;\\n    }\\n\\n    /**\\n     * @notice Return required minimum delay\\n     * @return Minimum delay\\n     */\\n    function MINIMUM_DELAY() public view virtual returns (uint256) {\\n        return DEFAULT_MINIMUM_DELAY;\\n    }\\n\\n    /**\\n     * @notice Return required maximum delay\\n     * @return Maximum delay\\n     */\\n    function MAXIMUM_DELAY() public view virtual returns (uint256) {\\n        return DEFAULT_MAXIMUM_DELAY;\\n    }\\n\\n    /**\\n     * @notice Method for accepting a proposed admin\\n     * @custom:access Sender must be pending admin\\n     * @custom:event Emit NewAdmin with old and new admin\\n     */\\n    function acceptAdmin() public {\\n        require(msg.sender == pendingAdmin, \\\"Timelock::acceptAdmin: Call must come from pendingAdmin.\\\");\\n        emit NewAdmin(admin, msg.sender);\\n        admin = msg.sender;\\n        pendingAdmin = address(0);\\n    }\\n\\n    /**\\n     * @notice Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract\\n     * @param pendingAdmin_ Address of the proposed admin\\n     * @custom:access Sender must be Timelock contract itself or admin\\n     * @custom:event Emit NewPendingAdmin with new pending admin\\n     */\\n    function setPendingAdmin(address pendingAdmin_) public {\\n        require(\\n            msg.sender == address(this) || msg.sender == admin,\\n            \\\"Timelock::setPendingAdmin: Call must come from Timelock.\\\"\\n        );\\n        ensureNonzeroAddress(pendingAdmin_);\\n        pendingAdmin = pendingAdmin_;\\n\\n        emit NewPendingAdmin(pendingAdmin);\\n    }\\n\\n    /**\\n     * @notice Called for each action when queuing a proposal\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Hash of the queued transaction\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit QueueTransaction\\n     */\\n    function queueTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public returns (bytes32) {\\n        require(msg.sender == admin, \\\"Timelock::queueTransaction: Call must come from admin.\\\");\\n        require(\\n            eta >= getBlockTimestamp() + delay,\\n            \\\"Timelock::queueTransaction: Estimated execution block must satisfy delay.\\\"\\n        );\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(!queuedTransactions[txHash], \\\"Timelock::queueTransaction: transaction already queued.\\\");\\n        queuedTransactions[txHash] = true;\\n\\n        emit QueueTransaction(txHash, target, value, signature, data, eta);\\n        return txHash;\\n    }\\n\\n    /**\\n     * @notice Called to cancel a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit CancelTransaction\\n     */\\n    function cancelTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public {\\n        require(msg.sender == admin, \\\"Timelock::cancelTransaction: Call must come from admin.\\\");\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(queuedTransactions[txHash], \\\"Timelock::cancelTransaction: transaction is not queued yet.\\\");\\n        delete (queuedTransactions[txHash]);\\n\\n        emit CancelTransaction(txHash, target, value, signature, data, eta);\\n    }\\n\\n    /**\\n     * @notice Called to execute a queued transaction\\n     * @param target Address of the contract with the method to be called\\n     * @param value Native token amount sent with the transaction\\n     * @param signature Signature of the function to be called\\n     * @param data Arguments to be passed to the function when called\\n     * @param eta Timestamp after which the transaction can be executed\\n     * @return Result of function call\\n     * @custom:access Sender must be admin\\n     * @custom:event Emit ExecuteTransaction\\n     */\\n    function executeTransaction(\\n        address target,\\n        uint256 value,\\n        string calldata signature,\\n        bytes calldata data,\\n        uint256 eta\\n    ) public returns (bytes memory) {\\n        require(msg.sender == admin, \\\"Timelock::executeTransaction: Call must come from admin.\\\");\\n\\n        bytes32 txHash = keccak256(abi.encode(target, value, signature, data, eta));\\n        require(queuedTransactions[txHash], \\\"Timelock::executeTransaction: Transaction hasn't been queued.\\\");\\n        require(getBlockTimestamp() >= eta, \\\"Timelock::executeTransaction: Transaction hasn't surpassed time lock.\\\");\\n        require(getBlockTimestamp() <= eta + GRACE_PERIOD(), \\\"Timelock::executeTransaction: Transaction is stale.\\\");\\n\\n        delete (queuedTransactions[txHash]);\\n\\n        bytes memory callData;\\n\\n        if (bytes(signature).length == 0) {\\n            callData = data;\\n        } else {\\n            callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);\\n        }\\n\\n        // solium-disable-next-line security/no-call-value\\n        (bool success, bytes memory returnData) = target.call{ value: value }(callData);\\n        require(success, \\\"Timelock::executeTransaction: Transaction execution reverted.\\\");\\n\\n        emit ExecuteTransaction(txHash, target, value, signature, data, eta);\\n\\n        return returnData;\\n    }\\n\\n    /**\\n     * @notice Returns the current block timestamp\\n     * @return The current block timestamp\\n     */\\n    function getBlockTimestamp() internal view returns (uint256) {\\n        // solium-disable-next-line security/no-block-members\\n        return block.timestamp;\\n    }\\n}\\n\",\"keccak256\":\"0x14dc68819f1d7e496cf07d688818fdc6f2dcb15e4fcc9e622732325d1727d613\",\"license\":\"BSD-3-Clause\"},\"contracts/test/TestTimelockV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport { TimelockV8 } from \\\"../Governance/TimelockV8.sol\\\";\\n\\ncontract TestTimelockV8 is TimelockV8 {\\n    constructor(address admin_, uint256 delay_) public TimelockV8(admin_, delay_) {}\\n\\n    function GRACE_PERIOD() public view override returns (uint256) {\\n        return 1 hours;\\n    }\\n\\n    function MINIMUM_DELAY() public view override returns (uint256) {\\n        return 1;\\n    }\\n\\n    function MAXIMUM_DELAY() public view override returns (uint256) {\\n        return 1 hours;\\n    }\\n}\\n\",\"keccak256\":\"0x1f8fc0d2626ab24a5820c3740e0e8c222a533ef61a8e955946051e654bfd2938\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":8409,"contract":"contracts/test/TestTimelockV8.sol:TestTimelockV8","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":8412,"contract":"contracts/test/TestTimelockV8.sol:TestTimelockV8","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":8415,"contract":"contracts/test/TestTimelockV8.sol:TestTimelockV8","label":"delay","offset":0,"slot":"2","type":"t_uint256"},{"astId":8420,"contract":"contracts/test/TestTimelockV8.sol:TestTimelockV8","label":"queuedTransactions","offset":0,"slot":"3","type":"t_mapping(t_bytes32,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_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"CancelTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been cancelled"},"ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been executed"},"NewAdmin(address,address)":{"notice":"Event emitted when a new admin is accepted"},"NewDelay(uint256,uint256)":{"notice":"Event emitted when a new delay is proposed"},"NewPendingAdmin(address)":{"notice":"Event emitted when a new admin is proposed"},"QueueTransaction(bytes32,address,uint256,string,bytes,uint256)":{"notice":"Event emitted when a proposal transaction has been queued"}},"kind":"user","methods":{"GRACE_PERIOD()":{"notice":"Return grace period"},"MAXIMUM_DELAY()":{"notice":"Return required maximum delay"},"MINIMUM_DELAY()":{"notice":"Return required minimum delay"},"acceptAdmin()":{"notice":"Method for accepting a proposed admin"},"admin()":{"notice":"Timelock admin authorized to queue and execute transactions"},"cancelTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to cancel a queued transaction"},"delay()":{"notice":"Period for a proposal transaction to be queued"},"executeTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called to execute a queued transaction"},"pendingAdmin()":{"notice":"Account proposed as the next admin"},"queueTransaction(address,uint256,string,bytes,uint256)":{"notice":"Called for each action when queuing a proposal"},"queuedTransactions(bytes32)":{"notice":"Mapping of queued transactions"},"setDelay(uint256)":{"notice":"Setter for the transaction queue delay"},"setPendingAdmin(address)":{"notice":"Method to propose a new admin authorized to call timelock functions. This should be the Governor Contract"}},"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\":{\"enabled\":true,\"runs\":10000},\"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":9314,"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\":{\"enabled\":true,\"runs\":10000},\"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":{"@_9462":{"entryPoint":null,"id":9462,"parameterSlots":2,"returnSlots":0},"@_setImplementation_9531":{"entryPoint":278,"id":9531,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9576":{"entryPoint":124,"id":9576,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9546":{"entryPoint":168,"id":9546,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_10392":{"entryPoint":232,"id":10392,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_10427":{"entryPoint":439,"id":10427,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10507":{"entryPoint":null,"id":10507,"parameterSlots":1,"returnSlots":1},"@isContract_10182":{"entryPoint":null,"id":10182,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_10458":{"entryPoint":663,"id":10458,"parameterSlots":3,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":778,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1039,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1067,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":984,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":742,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x01":{"entryPoint":1017,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":720,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3342:54","nodeType":"YulBlock","src":"0:3342:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"46:95:54","nodeType":"YulBlock","src":"46:95:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:54","nodeType":"YulLiteral","src":"63:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:54","nodeType":"YulLiteral","src":"70:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:54","nodeType":"YulLiteral","src":"75:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:54","nodeType":"YulIdentifier","src":"66:3:54"},"nativeSrc":"66:20:54","nodeType":"YulFunctionCall","src":"66:20:54"}],"functionName":{"name":"mstore","nativeSrc":"56:6:54","nodeType":"YulIdentifier","src":"56:6:54"},"nativeSrc":"56:31:54","nodeType":"YulFunctionCall","src":"56:31:54"},"nativeSrc":"56:31:54","nodeType":"YulExpressionStatement","src":"56:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:54","nodeType":"YulLiteral","src":"103:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:54","nodeType":"YulLiteral","src":"106:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:54","nodeType":"YulIdentifier","src":"96:6:54"},"nativeSrc":"96:15:54","nodeType":"YulFunctionCall","src":"96:15:54"},"nativeSrc":"96:15:54","nodeType":"YulExpressionStatement","src":"96:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:54","nodeType":"YulLiteral","src":"127:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:54","nodeType":"YulLiteral","src":"130:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:54","nodeType":"YulIdentifier","src":"120:6:54"},"nativeSrc":"120:15:54","nodeType":"YulFunctionCall","src":"120:15:54"},"nativeSrc":"120:15:54","nodeType":"YulExpressionStatement","src":"120:15:54"}]},"name":"panic_error_0x41","nativeSrc":"14:127:54","nodeType":"YulFunctionDefinition","src":"14:127:54"},{"body":{"nativeSrc":"212:184:54","nodeType":"YulBlock","src":"212:184:54","statements":[{"nativeSrc":"222:10:54","nodeType":"YulVariableDeclaration","src":"222:10:54","value":{"kind":"number","nativeSrc":"231:1:54","nodeType":"YulLiteral","src":"231:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"226:1:54","nodeType":"YulTypedName","src":"226:1:54","type":""}]},{"body":{"nativeSrc":"291:63:54","nodeType":"YulBlock","src":"291:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"316:3:54","nodeType":"YulIdentifier","src":"316:3:54"},{"name":"i","nativeSrc":"321:1:54","nodeType":"YulIdentifier","src":"321:1:54"}],"functionName":{"name":"add","nativeSrc":"312:3:54","nodeType":"YulIdentifier","src":"312:3:54"},"nativeSrc":"312:11:54","nodeType":"YulFunctionCall","src":"312:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"335:3:54","nodeType":"YulIdentifier","src":"335:3:54"},{"name":"i","nativeSrc":"340:1:54","nodeType":"YulIdentifier","src":"340:1:54"}],"functionName":{"name":"add","nativeSrc":"331:3:54","nodeType":"YulIdentifier","src":"331:3:54"},"nativeSrc":"331:11:54","nodeType":"YulFunctionCall","src":"331:11:54"}],"functionName":{"name":"mload","nativeSrc":"325:5:54","nodeType":"YulIdentifier","src":"325:5:54"},"nativeSrc":"325:18:54","nodeType":"YulFunctionCall","src":"325:18:54"}],"functionName":{"name":"mstore","nativeSrc":"305:6:54","nodeType":"YulIdentifier","src":"305:6:54"},"nativeSrc":"305:39:54","nodeType":"YulFunctionCall","src":"305:39:54"},"nativeSrc":"305:39:54","nodeType":"YulExpressionStatement","src":"305:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"252:1:54","nodeType":"YulIdentifier","src":"252:1:54"},{"name":"length","nativeSrc":"255:6:54","nodeType":"YulIdentifier","src":"255:6:54"}],"functionName":{"name":"lt","nativeSrc":"249:2:54","nodeType":"YulIdentifier","src":"249:2:54"},"nativeSrc":"249:13:54","nodeType":"YulFunctionCall","src":"249:13:54"},"nativeSrc":"241:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"263:19:54","nodeType":"YulBlock","src":"263:19:54","statements":[{"nativeSrc":"265:15:54","nodeType":"YulAssignment","src":"265:15:54","value":{"arguments":[{"name":"i","nativeSrc":"274:1:54","nodeType":"YulIdentifier","src":"274:1:54"},{"kind":"number","nativeSrc":"277:2:54","nodeType":"YulLiteral","src":"277:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"270:3:54","nodeType":"YulIdentifier","src":"270:3:54"},"nativeSrc":"270:10:54","nodeType":"YulFunctionCall","src":"270:10:54"},"variableNames":[{"name":"i","nativeSrc":"265:1:54","nodeType":"YulIdentifier","src":"265:1:54"}]}]},"pre":{"nativeSrc":"245:3:54","nodeType":"YulBlock","src":"245:3:54","statements":[]},"src":"241:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"374:3:54","nodeType":"YulIdentifier","src":"374:3:54"},{"name":"length","nativeSrc":"379:6:54","nodeType":"YulIdentifier","src":"379:6:54"}],"functionName":{"name":"add","nativeSrc":"370:3:54","nodeType":"YulIdentifier","src":"370:3:54"},"nativeSrc":"370:16:54","nodeType":"YulFunctionCall","src":"370:16:54"},{"kind":"number","nativeSrc":"388:1:54","nodeType":"YulLiteral","src":"388:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"363:6:54","nodeType":"YulIdentifier","src":"363:6:54"},"nativeSrc":"363:27:54","nodeType":"YulFunctionCall","src":"363:27:54"},"nativeSrc":"363:27:54","nodeType":"YulExpressionStatement","src":"363:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"146:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"190:3:54","nodeType":"YulTypedName","src":"190:3:54","type":""},{"name":"dst","nativeSrc":"195:3:54","nodeType":"YulTypedName","src":"195:3:54","type":""},{"name":"length","nativeSrc":"200:6:54","nodeType":"YulTypedName","src":"200:6:54","type":""}],"src":"146:250:54"},{"body":{"nativeSrc":"508:956:54","nodeType":"YulBlock","src":"508:956:54","statements":[{"body":{"nativeSrc":"554:16:54","nodeType":"YulBlock","src":"554:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:54","nodeType":"YulLiteral","src":"563:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:54","nodeType":"YulLiteral","src":"566:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:54","nodeType":"YulIdentifier","src":"556:6:54"},"nativeSrc":"556:12:54","nodeType":"YulFunctionCall","src":"556:12:54"},"nativeSrc":"556:12:54","nodeType":"YulExpressionStatement","src":"556:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"529:7:54","nodeType":"YulIdentifier","src":"529:7:54"},{"name":"headStart","nativeSrc":"538:9:54","nodeType":"YulIdentifier","src":"538:9:54"}],"functionName":{"name":"sub","nativeSrc":"525:3:54","nodeType":"YulIdentifier","src":"525:3:54"},"nativeSrc":"525:23:54","nodeType":"YulFunctionCall","src":"525:23:54"},{"kind":"number","nativeSrc":"550:2:54","nodeType":"YulLiteral","src":"550:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"521:3:54","nodeType":"YulIdentifier","src":"521:3:54"},"nativeSrc":"521:32:54","nodeType":"YulFunctionCall","src":"521:32:54"},"nativeSrc":"518:52:54","nodeType":"YulIf","src":"518:52:54"},{"nativeSrc":"579:29:54","nodeType":"YulVariableDeclaration","src":"579:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"598:9:54","nodeType":"YulIdentifier","src":"598:9:54"}],"functionName":{"name":"mload","nativeSrc":"592:5:54","nodeType":"YulIdentifier","src":"592:5:54"},"nativeSrc":"592:16:54","nodeType":"YulFunctionCall","src":"592:16:54"},"variables":[{"name":"value","nativeSrc":"583:5:54","nodeType":"YulTypedName","src":"583:5:54","type":""}]},{"body":{"nativeSrc":"671:16:54","nodeType":"YulBlock","src":"671:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"680:1:54","nodeType":"YulLiteral","src":"680:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"683:1:54","nodeType":"YulLiteral","src":"683:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"673:6:54","nodeType":"YulIdentifier","src":"673:6:54"},"nativeSrc":"673:12:54","nodeType":"YulFunctionCall","src":"673:12:54"},"nativeSrc":"673:12:54","nodeType":"YulExpressionStatement","src":"673:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"630:5:54","nodeType":"YulIdentifier","src":"630:5:54"},{"arguments":[{"name":"value","nativeSrc":"641:5:54","nodeType":"YulIdentifier","src":"641:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"656:3:54","nodeType":"YulLiteral","src":"656:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"661:1:54","nodeType":"YulLiteral","src":"661:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"652:3:54","nodeType":"YulIdentifier","src":"652:3:54"},"nativeSrc":"652:11:54","nodeType":"YulFunctionCall","src":"652:11:54"},{"kind":"number","nativeSrc":"665:1:54","nodeType":"YulLiteral","src":"665:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"648:3:54","nodeType":"YulIdentifier","src":"648:3:54"},"nativeSrc":"648:19:54","nodeType":"YulFunctionCall","src":"648:19:54"}],"functionName":{"name":"and","nativeSrc":"637:3:54","nodeType":"YulIdentifier","src":"637:3:54"},"nativeSrc":"637:31:54","nodeType":"YulFunctionCall","src":"637:31:54"}],"functionName":{"name":"eq","nativeSrc":"627:2:54","nodeType":"YulIdentifier","src":"627:2:54"},"nativeSrc":"627:42:54","nodeType":"YulFunctionCall","src":"627:42:54"}],"functionName":{"name":"iszero","nativeSrc":"620:6:54","nodeType":"YulIdentifier","src":"620:6:54"},"nativeSrc":"620:50:54","nodeType":"YulFunctionCall","src":"620:50:54"},"nativeSrc":"617:70:54","nodeType":"YulIf","src":"617:70:54"},{"nativeSrc":"696:15:54","nodeType":"YulAssignment","src":"696:15:54","value":{"name":"value","nativeSrc":"706:5:54","nodeType":"YulIdentifier","src":"706:5:54"},"variableNames":[{"name":"value0","nativeSrc":"696:6:54","nodeType":"YulIdentifier","src":"696:6:54"}]},{"nativeSrc":"720:39:54","nodeType":"YulVariableDeclaration","src":"720:39:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"744:9:54","nodeType":"YulIdentifier","src":"744:9:54"},{"kind":"number","nativeSrc":"755:2:54","nodeType":"YulLiteral","src":"755:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"740:3:54","nodeType":"YulIdentifier","src":"740:3:54"},"nativeSrc":"740:18:54","nodeType":"YulFunctionCall","src":"740:18:54"}],"functionName":{"name":"mload","nativeSrc":"734:5:54","nodeType":"YulIdentifier","src":"734:5:54"},"nativeSrc":"734:25:54","nodeType":"YulFunctionCall","src":"734:25:54"},"variables":[{"name":"offset","nativeSrc":"724:6:54","nodeType":"YulTypedName","src":"724:6:54","type":""}]},{"nativeSrc":"768:28:54","nodeType":"YulVariableDeclaration","src":"768:28:54","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"786:2:54","nodeType":"YulLiteral","src":"786:2:54","type":"","value":"64"},{"kind":"number","nativeSrc":"790:1:54","nodeType":"YulLiteral","src":"790:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"782:3:54","nodeType":"YulIdentifier","src":"782:3:54"},"nativeSrc":"782:10:54","nodeType":"YulFunctionCall","src":"782:10:54"},{"kind":"number","nativeSrc":"794:1:54","nodeType":"YulLiteral","src":"794:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"778:3:54","nodeType":"YulIdentifier","src":"778:3:54"},"nativeSrc":"778:18:54","nodeType":"YulFunctionCall","src":"778:18:54"},"variables":[{"name":"_1","nativeSrc":"772:2:54","nodeType":"YulTypedName","src":"772:2:54","type":""}]},{"body":{"nativeSrc":"823:16:54","nodeType":"YulBlock","src":"823:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"832:1:54","nodeType":"YulLiteral","src":"832:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"835:1:54","nodeType":"YulLiteral","src":"835:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"825:6:54","nodeType":"YulIdentifier","src":"825:6:54"},"nativeSrc":"825:12:54","nodeType":"YulFunctionCall","src":"825:12:54"},"nativeSrc":"825:12:54","nodeType":"YulExpressionStatement","src":"825:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"811:6:54","nodeType":"YulIdentifier","src":"811:6:54"},{"name":"_1","nativeSrc":"819:2:54","nodeType":"YulIdentifier","src":"819:2:54"}],"functionName":{"name":"gt","nativeSrc":"808:2:54","nodeType":"YulIdentifier","src":"808:2:54"},"nativeSrc":"808:14:54","nodeType":"YulFunctionCall","src":"808:14:54"},"nativeSrc":"805:34:54","nodeType":"YulIf","src":"805:34:54"},{"nativeSrc":"848:32:54","nodeType":"YulVariableDeclaration","src":"848:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"862:9:54","nodeType":"YulIdentifier","src":"862:9:54"},{"name":"offset","nativeSrc":"873:6:54","nodeType":"YulIdentifier","src":"873:6:54"}],"functionName":{"name":"add","nativeSrc":"858:3:54","nodeType":"YulIdentifier","src":"858:3:54"},"nativeSrc":"858:22:54","nodeType":"YulFunctionCall","src":"858:22:54"},"variables":[{"name":"_2","nativeSrc":"852:2:54","nodeType":"YulTypedName","src":"852:2:54","type":""}]},{"body":{"nativeSrc":"928:16:54","nodeType":"YulBlock","src":"928:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"937:1:54","nodeType":"YulLiteral","src":"937:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"940:1:54","nodeType":"YulLiteral","src":"940:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"930:6:54","nodeType":"YulIdentifier","src":"930:6:54"},"nativeSrc":"930:12:54","nodeType":"YulFunctionCall","src":"930:12:54"},"nativeSrc":"930:12:54","nodeType":"YulExpressionStatement","src":"930:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"907:2:54","nodeType":"YulIdentifier","src":"907:2:54"},{"kind":"number","nativeSrc":"911:4:54","nodeType":"YulLiteral","src":"911:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"903:3:54","nodeType":"YulIdentifier","src":"903:3:54"},"nativeSrc":"903:13:54","nodeType":"YulFunctionCall","src":"903:13:54"},{"name":"dataEnd","nativeSrc":"918:7:54","nodeType":"YulIdentifier","src":"918:7:54"}],"functionName":{"name":"slt","nativeSrc":"899:3:54","nodeType":"YulIdentifier","src":"899:3:54"},"nativeSrc":"899:27:54","nodeType":"YulFunctionCall","src":"899:27:54"}],"functionName":{"name":"iszero","nativeSrc":"892:6:54","nodeType":"YulIdentifier","src":"892:6:54"},"nativeSrc":"892:35:54","nodeType":"YulFunctionCall","src":"892:35:54"},"nativeSrc":"889:55:54","nodeType":"YulIf","src":"889:55:54"},{"nativeSrc":"953:19:54","nodeType":"YulVariableDeclaration","src":"953:19:54","value":{"arguments":[{"name":"_2","nativeSrc":"969:2:54","nodeType":"YulIdentifier","src":"969:2:54"}],"functionName":{"name":"mload","nativeSrc":"963:5:54","nodeType":"YulIdentifier","src":"963:5:54"},"nativeSrc":"963:9:54","nodeType":"YulFunctionCall","src":"963:9:54"},"variables":[{"name":"_3","nativeSrc":"957:2:54","nodeType":"YulTypedName","src":"957:2:54","type":""}]},{"body":{"nativeSrc":"995:22:54","nodeType":"YulBlock","src":"995:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"997:16:54","nodeType":"YulIdentifier","src":"997:16:54"},"nativeSrc":"997:18:54","nodeType":"YulFunctionCall","src":"997:18:54"},"nativeSrc":"997:18:54","nodeType":"YulExpressionStatement","src":"997:18:54"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"987:2:54","nodeType":"YulIdentifier","src":"987:2:54"},{"name":"_1","nativeSrc":"991:2:54","nodeType":"YulIdentifier","src":"991:2:54"}],"functionName":{"name":"gt","nativeSrc":"984:2:54","nodeType":"YulIdentifier","src":"984:2:54"},"nativeSrc":"984:10:54","nodeType":"YulFunctionCall","src":"984:10:54"},"nativeSrc":"981:36:54","nodeType":"YulIf","src":"981:36:54"},{"nativeSrc":"1026:17:54","nodeType":"YulVariableDeclaration","src":"1026:17:54","value":{"arguments":[{"kind":"number","nativeSrc":"1040:2:54","nodeType":"YulLiteral","src":"1040:2:54","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1036:3:54","nodeType":"YulIdentifier","src":"1036:3:54"},"nativeSrc":"1036:7:54","nodeType":"YulFunctionCall","src":"1036:7:54"},"variables":[{"name":"_4","nativeSrc":"1030:2:54","nodeType":"YulTypedName","src":"1030:2:54","type":""}]},{"nativeSrc":"1052:23:54","nodeType":"YulVariableDeclaration","src":"1052:23:54","value":{"arguments":[{"kind":"number","nativeSrc":"1072:2:54","nodeType":"YulLiteral","src":"1072:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1066:5:54","nodeType":"YulIdentifier","src":"1066:5:54"},"nativeSrc":"1066:9:54","nodeType":"YulFunctionCall","src":"1066:9:54"},"variables":[{"name":"memPtr","nativeSrc":"1056:6:54","nodeType":"YulTypedName","src":"1056:6:54","type":""}]},{"nativeSrc":"1084:71:54","nodeType":"YulVariableDeclaration","src":"1084:71:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"1106:6:54","nodeType":"YulIdentifier","src":"1106:6:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"1130:2:54","nodeType":"YulIdentifier","src":"1130:2:54"},{"kind":"number","nativeSrc":"1134:4:54","nodeType":"YulLiteral","src":"1134:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1126:3:54","nodeType":"YulIdentifier","src":"1126:3:54"},"nativeSrc":"1126:13:54","nodeType":"YulFunctionCall","src":"1126:13:54"},{"name":"_4","nativeSrc":"1141:2:54","nodeType":"YulIdentifier","src":"1141:2:54"}],"functionName":{"name":"and","nativeSrc":"1122:3:54","nodeType":"YulIdentifier","src":"1122:3:54"},"nativeSrc":"1122:22:54","nodeType":"YulFunctionCall","src":"1122:22:54"},{"kind":"number","nativeSrc":"1146:2:54","nodeType":"YulLiteral","src":"1146:2:54","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1118:3:54","nodeType":"YulIdentifier","src":"1118:3:54"},"nativeSrc":"1118:31:54","nodeType":"YulFunctionCall","src":"1118:31:54"},{"name":"_4","nativeSrc":"1151:2:54","nodeType":"YulIdentifier","src":"1151:2:54"}],"functionName":{"name":"and","nativeSrc":"1114:3:54","nodeType":"YulIdentifier","src":"1114:3:54"},"nativeSrc":"1114:40:54","nodeType":"YulFunctionCall","src":"1114:40:54"}],"functionName":{"name":"add","nativeSrc":"1102:3:54","nodeType":"YulIdentifier","src":"1102:3:54"},"nativeSrc":"1102:53:54","nodeType":"YulFunctionCall","src":"1102:53:54"},"variables":[{"name":"newFreePtr","nativeSrc":"1088:10:54","nodeType":"YulTypedName","src":"1088:10:54","type":""}]},{"body":{"nativeSrc":"1214:22:54","nodeType":"YulBlock","src":"1214:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1216:16:54","nodeType":"YulIdentifier","src":"1216:16:54"},"nativeSrc":"1216:18:54","nodeType":"YulFunctionCall","src":"1216:18:54"},"nativeSrc":"1216:18:54","nodeType":"YulExpressionStatement","src":"1216:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1173:10:54","nodeType":"YulIdentifier","src":"1173:10:54"},{"name":"_1","nativeSrc":"1185:2:54","nodeType":"YulIdentifier","src":"1185:2:54"}],"functionName":{"name":"gt","nativeSrc":"1170:2:54","nodeType":"YulIdentifier","src":"1170:2:54"},"nativeSrc":"1170:18:54","nodeType":"YulFunctionCall","src":"1170:18:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1193:10:54","nodeType":"YulIdentifier","src":"1193:10:54"},{"name":"memPtr","nativeSrc":"1205:6:54","nodeType":"YulIdentifier","src":"1205:6:54"}],"functionName":{"name":"lt","nativeSrc":"1190:2:54","nodeType":"YulIdentifier","src":"1190:2:54"},"nativeSrc":"1190:22:54","nodeType":"YulFunctionCall","src":"1190:22:54"}],"functionName":{"name":"or","nativeSrc":"1167:2:54","nodeType":"YulIdentifier","src":"1167:2:54"},"nativeSrc":"1167:46:54","nodeType":"YulFunctionCall","src":"1167:46:54"},"nativeSrc":"1164:72:54","nodeType":"YulIf","src":"1164:72:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1252:2:54","nodeType":"YulLiteral","src":"1252:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1256:10:54","nodeType":"YulIdentifier","src":"1256:10:54"}],"functionName":{"name":"mstore","nativeSrc":"1245:6:54","nodeType":"YulIdentifier","src":"1245:6:54"},"nativeSrc":"1245:22:54","nodeType":"YulFunctionCall","src":"1245:22:54"},"nativeSrc":"1245:22:54","nodeType":"YulExpressionStatement","src":"1245:22:54"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1283:6:54","nodeType":"YulIdentifier","src":"1283:6:54"},{"name":"_3","nativeSrc":"1291:2:54","nodeType":"YulIdentifier","src":"1291:2:54"}],"functionName":{"name":"mstore","nativeSrc":"1276:6:54","nodeType":"YulIdentifier","src":"1276:6:54"},"nativeSrc":"1276:18:54","nodeType":"YulFunctionCall","src":"1276:18:54"},"nativeSrc":"1276:18:54","nodeType":"YulExpressionStatement","src":"1276:18:54"},{"body":{"nativeSrc":"1340:16:54","nodeType":"YulBlock","src":"1340:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1349:1:54","nodeType":"YulLiteral","src":"1349:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1352:1:54","nodeType":"YulLiteral","src":"1352:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1342:6:54","nodeType":"YulIdentifier","src":"1342:6:54"},"nativeSrc":"1342:12:54","nodeType":"YulFunctionCall","src":"1342:12:54"},"nativeSrc":"1342:12:54","nodeType":"YulExpressionStatement","src":"1342:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1317:2:54","nodeType":"YulIdentifier","src":"1317:2:54"},{"name":"_3","nativeSrc":"1321:2:54","nodeType":"YulIdentifier","src":"1321:2:54"}],"functionName":{"name":"add","nativeSrc":"1313:3:54","nodeType":"YulIdentifier","src":"1313:3:54"},"nativeSrc":"1313:11:54","nodeType":"YulFunctionCall","src":"1313:11:54"},{"kind":"number","nativeSrc":"1326:2:54","nodeType":"YulLiteral","src":"1326:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1309:3:54","nodeType":"YulIdentifier","src":"1309:3:54"},"nativeSrc":"1309:20:54","nodeType":"YulFunctionCall","src":"1309:20:54"},{"name":"dataEnd","nativeSrc":"1331:7:54","nodeType":"YulIdentifier","src":"1331:7:54"}],"functionName":{"name":"gt","nativeSrc":"1306:2:54","nodeType":"YulIdentifier","src":"1306:2:54"},"nativeSrc":"1306:33:54","nodeType":"YulFunctionCall","src":"1306:33:54"},"nativeSrc":"1303:53:54","nodeType":"YulIf","src":"1303:53:54"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1404:2:54","nodeType":"YulIdentifier","src":"1404:2:54"},{"kind":"number","nativeSrc":"1408:2:54","nodeType":"YulLiteral","src":"1408:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1400:3:54","nodeType":"YulIdentifier","src":"1400:3:54"},"nativeSrc":"1400:11:54","nodeType":"YulFunctionCall","src":"1400:11:54"},{"arguments":[{"name":"memPtr","nativeSrc":"1417:6:54","nodeType":"YulIdentifier","src":"1417:6:54"},{"kind":"number","nativeSrc":"1425:2:54","nodeType":"YulLiteral","src":"1425:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1413:3:54","nodeType":"YulIdentifier","src":"1413:3:54"},"nativeSrc":"1413:15:54","nodeType":"YulFunctionCall","src":"1413:15:54"},{"name":"_3","nativeSrc":"1430:2:54","nodeType":"YulIdentifier","src":"1430:2:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1365:34:54","nodeType":"YulIdentifier","src":"1365:34:54"},"nativeSrc":"1365:68:54","nodeType":"YulFunctionCall","src":"1365:68:54"},"nativeSrc":"1365:68:54","nodeType":"YulExpressionStatement","src":"1365:68:54"},{"nativeSrc":"1442:16:54","nodeType":"YulAssignment","src":"1442:16:54","value":{"name":"memPtr","nativeSrc":"1452:6:54","nodeType":"YulIdentifier","src":"1452:6:54"},"variableNames":[{"name":"value1","nativeSrc":"1442:6:54","nodeType":"YulIdentifier","src":"1442:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"401:1063:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"466:9:54","nodeType":"YulTypedName","src":"466:9:54","type":""},{"name":"dataEnd","nativeSrc":"477:7:54","nodeType":"YulTypedName","src":"477:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"489:6:54","nodeType":"YulTypedName","src":"489:6:54","type":""},{"name":"value1","nativeSrc":"497:6:54","nodeType":"YulTypedName","src":"497:6:54","type":""}],"src":"401:1063:54"},{"body":{"nativeSrc":"1518:176:54","nodeType":"YulBlock","src":"1518:176:54","statements":[{"nativeSrc":"1528:17:54","nodeType":"YulAssignment","src":"1528:17:54","value":{"arguments":[{"name":"x","nativeSrc":"1540:1:54","nodeType":"YulIdentifier","src":"1540:1:54"},{"name":"y","nativeSrc":"1543:1:54","nodeType":"YulIdentifier","src":"1543:1:54"}],"functionName":{"name":"sub","nativeSrc":"1536:3:54","nodeType":"YulIdentifier","src":"1536:3:54"},"nativeSrc":"1536:9:54","nodeType":"YulFunctionCall","src":"1536:9:54"},"variableNames":[{"name":"diff","nativeSrc":"1528:4:54","nodeType":"YulIdentifier","src":"1528:4:54"}]},{"body":{"nativeSrc":"1577:111:54","nodeType":"YulBlock","src":"1577:111:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1598:1:54","nodeType":"YulLiteral","src":"1598:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1605:3:54","nodeType":"YulLiteral","src":"1605:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"1610:10:54","nodeType":"YulLiteral","src":"1610:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1601:3:54","nodeType":"YulIdentifier","src":"1601:3:54"},"nativeSrc":"1601:20:54","nodeType":"YulFunctionCall","src":"1601:20:54"}],"functionName":{"name":"mstore","nativeSrc":"1591:6:54","nodeType":"YulIdentifier","src":"1591:6:54"},"nativeSrc":"1591:31:54","nodeType":"YulFunctionCall","src":"1591:31:54"},"nativeSrc":"1591:31:54","nodeType":"YulExpressionStatement","src":"1591:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1642:1:54","nodeType":"YulLiteral","src":"1642:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"1645:4:54","nodeType":"YulLiteral","src":"1645:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1635:6:54","nodeType":"YulIdentifier","src":"1635:6:54"},"nativeSrc":"1635:15:54","nodeType":"YulFunctionCall","src":"1635:15:54"},"nativeSrc":"1635:15:54","nodeType":"YulExpressionStatement","src":"1635:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1670:1:54","nodeType":"YulLiteral","src":"1670:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1673:4:54","nodeType":"YulLiteral","src":"1673:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1663:6:54","nodeType":"YulIdentifier","src":"1663:6:54"},"nativeSrc":"1663:15:54","nodeType":"YulFunctionCall","src":"1663:15:54"},"nativeSrc":"1663:15:54","nodeType":"YulExpressionStatement","src":"1663:15:54"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"1560:4:54","nodeType":"YulIdentifier","src":"1560:4:54"},{"name":"x","nativeSrc":"1566:1:54","nodeType":"YulIdentifier","src":"1566:1:54"}],"functionName":{"name":"gt","nativeSrc":"1557:2:54","nodeType":"YulIdentifier","src":"1557:2:54"},"nativeSrc":"1557:11:54","nodeType":"YulFunctionCall","src":"1557:11:54"},"nativeSrc":"1554:134:54","nodeType":"YulIf","src":"1554:134:54"}]},"name":"checked_sub_t_uint256","nativeSrc":"1469:225:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"1500:1:54","nodeType":"YulTypedName","src":"1500:1:54","type":""},{"name":"y","nativeSrc":"1503:1:54","nodeType":"YulTypedName","src":"1503:1:54","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"1509:4:54","nodeType":"YulTypedName","src":"1509:4:54","type":""}],"src":"1469:225:54"},{"body":{"nativeSrc":"1731:95:54","nodeType":"YulBlock","src":"1731:95:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1748:1:54","nodeType":"YulLiteral","src":"1748:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1755:3:54","nodeType":"YulLiteral","src":"1755:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"1760:10:54","nodeType":"YulLiteral","src":"1760:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1751:3:54","nodeType":"YulIdentifier","src":"1751:3:54"},"nativeSrc":"1751:20:54","nodeType":"YulFunctionCall","src":"1751:20:54"}],"functionName":{"name":"mstore","nativeSrc":"1741:6:54","nodeType":"YulIdentifier","src":"1741:6:54"},"nativeSrc":"1741:31:54","nodeType":"YulFunctionCall","src":"1741:31:54"},"nativeSrc":"1741:31:54","nodeType":"YulExpressionStatement","src":"1741:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1788:1:54","nodeType":"YulLiteral","src":"1788:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"1791:4:54","nodeType":"YulLiteral","src":"1791:4:54","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"1781:6:54","nodeType":"YulIdentifier","src":"1781:6:54"},"nativeSrc":"1781:15:54","nodeType":"YulFunctionCall","src":"1781:15:54"},"nativeSrc":"1781:15:54","nodeType":"YulExpressionStatement","src":"1781:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1812:1:54","nodeType":"YulLiteral","src":"1812:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1815:4:54","nodeType":"YulLiteral","src":"1815:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1805:6:54","nodeType":"YulIdentifier","src":"1805:6:54"},"nativeSrc":"1805:15:54","nodeType":"YulFunctionCall","src":"1805:15:54"},"nativeSrc":"1805:15:54","nodeType":"YulExpressionStatement","src":"1805:15:54"}]},"name":"panic_error_0x01","nativeSrc":"1699:127:54","nodeType":"YulFunctionDefinition","src":"1699:127:54"},{"body":{"nativeSrc":"2005:235:54","nodeType":"YulBlock","src":"2005:235:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2022:9:54","nodeType":"YulIdentifier","src":"2022:9:54"},{"kind":"number","nativeSrc":"2033:2:54","nodeType":"YulLiteral","src":"2033:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2015:6:54","nodeType":"YulIdentifier","src":"2015:6:54"},"nativeSrc":"2015:21:54","nodeType":"YulFunctionCall","src":"2015:21:54"},"nativeSrc":"2015:21:54","nodeType":"YulExpressionStatement","src":"2015:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2056:9:54","nodeType":"YulIdentifier","src":"2056:9:54"},{"kind":"number","nativeSrc":"2067:2:54","nodeType":"YulLiteral","src":"2067:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2052:3:54","nodeType":"YulIdentifier","src":"2052:3:54"},"nativeSrc":"2052:18:54","nodeType":"YulFunctionCall","src":"2052:18:54"},{"kind":"number","nativeSrc":"2072:2:54","nodeType":"YulLiteral","src":"2072:2:54","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"2045:6:54","nodeType":"YulIdentifier","src":"2045:6:54"},"nativeSrc":"2045:30:54","nodeType":"YulFunctionCall","src":"2045:30:54"},"nativeSrc":"2045:30:54","nodeType":"YulExpressionStatement","src":"2045:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2095:9:54","nodeType":"YulIdentifier","src":"2095:9:54"},{"kind":"number","nativeSrc":"2106:2:54","nodeType":"YulLiteral","src":"2106:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2091:3:54","nodeType":"YulIdentifier","src":"2091:3:54"},"nativeSrc":"2091:18:54","nodeType":"YulFunctionCall","src":"2091:18:54"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"2111:34:54","nodeType":"YulLiteral","src":"2111:34:54","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2084:6:54","nodeType":"YulIdentifier","src":"2084:6:54"},"nativeSrc":"2084:62:54","nodeType":"YulFunctionCall","src":"2084:62:54"},"nativeSrc":"2084:62:54","nodeType":"YulExpressionStatement","src":"2084:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2166:9:54","nodeType":"YulIdentifier","src":"2166:9:54"},{"kind":"number","nativeSrc":"2177:2:54","nodeType":"YulLiteral","src":"2177:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2162:3:54","nodeType":"YulIdentifier","src":"2162:3:54"},"nativeSrc":"2162:18:54","nodeType":"YulFunctionCall","src":"2162:18:54"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"2182:15:54","nodeType":"YulLiteral","src":"2182:15:54","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"2155:6:54","nodeType":"YulIdentifier","src":"2155:6:54"},"nativeSrc":"2155:43:54","nodeType":"YulFunctionCall","src":"2155:43:54"},"nativeSrc":"2155:43:54","nodeType":"YulExpressionStatement","src":"2155:43:54"},{"nativeSrc":"2207:27:54","nodeType":"YulAssignment","src":"2207:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2219:9:54","nodeType":"YulIdentifier","src":"2219:9:54"},{"kind":"number","nativeSrc":"2230:3:54","nodeType":"YulLiteral","src":"2230:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2215:3:54","nodeType":"YulIdentifier","src":"2215:3:54"},"nativeSrc":"2215:19:54","nodeType":"YulFunctionCall","src":"2215:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2207:4:54","nodeType":"YulIdentifier","src":"2207:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1831:409:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1982:9:54","nodeType":"YulTypedName","src":"1982:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1996:4:54","nodeType":"YulTypedName","src":"1996:4:54","type":""}],"src":"1831:409:54"},{"body":{"nativeSrc":"2419:228:54","nodeType":"YulBlock","src":"2419:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2436:9:54","nodeType":"YulIdentifier","src":"2436:9:54"},{"kind":"number","nativeSrc":"2447:2:54","nodeType":"YulLiteral","src":"2447:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2429:6:54","nodeType":"YulIdentifier","src":"2429:6:54"},"nativeSrc":"2429:21:54","nodeType":"YulFunctionCall","src":"2429:21:54"},"nativeSrc":"2429:21:54","nodeType":"YulExpressionStatement","src":"2429:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2470:9:54","nodeType":"YulIdentifier","src":"2470:9:54"},{"kind":"number","nativeSrc":"2481:2:54","nodeType":"YulLiteral","src":"2481:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2466:3:54","nodeType":"YulIdentifier","src":"2466:3:54"},"nativeSrc":"2466:18:54","nodeType":"YulFunctionCall","src":"2466:18:54"},{"kind":"number","nativeSrc":"2486:2:54","nodeType":"YulLiteral","src":"2486:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2459:6:54","nodeType":"YulIdentifier","src":"2459:6:54"},"nativeSrc":"2459:30:54","nodeType":"YulFunctionCall","src":"2459:30:54"},"nativeSrc":"2459:30:54","nodeType":"YulExpressionStatement","src":"2459:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2509:9:54","nodeType":"YulIdentifier","src":"2509:9:54"},{"kind":"number","nativeSrc":"2520:2:54","nodeType":"YulLiteral","src":"2520:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2505:3:54","nodeType":"YulIdentifier","src":"2505:3:54"},"nativeSrc":"2505:18:54","nodeType":"YulFunctionCall","src":"2505:18:54"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"2525:34:54","nodeType":"YulLiteral","src":"2525:34:54","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"2498:6:54","nodeType":"YulIdentifier","src":"2498:6:54"},"nativeSrc":"2498:62:54","nodeType":"YulFunctionCall","src":"2498:62:54"},"nativeSrc":"2498:62:54","nodeType":"YulExpressionStatement","src":"2498:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2580:9:54","nodeType":"YulIdentifier","src":"2580:9:54"},{"kind":"number","nativeSrc":"2591:2:54","nodeType":"YulLiteral","src":"2591:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2576:3:54","nodeType":"YulIdentifier","src":"2576:3:54"},"nativeSrc":"2576:18:54","nodeType":"YulFunctionCall","src":"2576:18:54"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"2596:8:54","nodeType":"YulLiteral","src":"2596:8:54","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"2569:6:54","nodeType":"YulIdentifier","src":"2569:6:54"},"nativeSrc":"2569:36:54","nodeType":"YulFunctionCall","src":"2569:36:54"},"nativeSrc":"2569:36:54","nodeType":"YulExpressionStatement","src":"2569:36:54"},{"nativeSrc":"2614:27:54","nodeType":"YulAssignment","src":"2614:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2626:9:54","nodeType":"YulIdentifier","src":"2626:9:54"},{"kind":"number","nativeSrc":"2637:3:54","nodeType":"YulLiteral","src":"2637:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2622:3:54","nodeType":"YulIdentifier","src":"2622:3:54"},"nativeSrc":"2622:19:54","nodeType":"YulFunctionCall","src":"2622:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2614:4:54","nodeType":"YulIdentifier","src":"2614:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2245:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2396:9:54","nodeType":"YulTypedName","src":"2396:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2410:4:54","nodeType":"YulTypedName","src":"2410:4:54","type":""}],"src":"2245:402:54"},{"body":{"nativeSrc":"2789:150:54","nodeType":"YulBlock","src":"2789:150:54","statements":[{"nativeSrc":"2799:27:54","nodeType":"YulVariableDeclaration","src":"2799:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"2819:6:54","nodeType":"YulIdentifier","src":"2819:6:54"}],"functionName":{"name":"mload","nativeSrc":"2813:5:54","nodeType":"YulIdentifier","src":"2813:5:54"},"nativeSrc":"2813:13:54","nodeType":"YulFunctionCall","src":"2813:13:54"},"variables":[{"name":"length","nativeSrc":"2803:6:54","nodeType":"YulTypedName","src":"2803:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"2874:6:54","nodeType":"YulIdentifier","src":"2874:6:54"},{"kind":"number","nativeSrc":"2882:4:54","nodeType":"YulLiteral","src":"2882:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2870:3:54","nodeType":"YulIdentifier","src":"2870:3:54"},"nativeSrc":"2870:17:54","nodeType":"YulFunctionCall","src":"2870:17:54"},{"name":"pos","nativeSrc":"2889:3:54","nodeType":"YulIdentifier","src":"2889:3:54"},{"name":"length","nativeSrc":"2894:6:54","nodeType":"YulIdentifier","src":"2894:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2835:34:54","nodeType":"YulIdentifier","src":"2835:34:54"},"nativeSrc":"2835:66:54","nodeType":"YulFunctionCall","src":"2835:66:54"},"nativeSrc":"2835:66:54","nodeType":"YulExpressionStatement","src":"2835:66:54"},{"nativeSrc":"2910:23:54","nodeType":"YulAssignment","src":"2910:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"2921:3:54","nodeType":"YulIdentifier","src":"2921:3:54"},{"name":"length","nativeSrc":"2926:6:54","nodeType":"YulIdentifier","src":"2926:6:54"}],"functionName":{"name":"add","nativeSrc":"2917:3:54","nodeType":"YulIdentifier","src":"2917:3:54"},"nativeSrc":"2917:16:54","nodeType":"YulFunctionCall","src":"2917:16:54"},"variableNames":[{"name":"end","nativeSrc":"2910:3:54","nodeType":"YulIdentifier","src":"2910:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2652:287:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2765:3:54","nodeType":"YulTypedName","src":"2765:3:54","type":""},{"name":"value0","nativeSrc":"2770:6:54","nodeType":"YulTypedName","src":"2770:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2781:3:54","nodeType":"YulTypedName","src":"2781:3:54","type":""}],"src":"2652:287:54"},{"body":{"nativeSrc":"3065:275:54","nodeType":"YulBlock","src":"3065:275:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3082:9:54","nodeType":"YulIdentifier","src":"3082:9:54"},{"kind":"number","nativeSrc":"3093:2:54","nodeType":"YulLiteral","src":"3093:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3075:6:54","nodeType":"YulIdentifier","src":"3075:6:54"},"nativeSrc":"3075:21:54","nodeType":"YulFunctionCall","src":"3075:21:54"},"nativeSrc":"3075:21:54","nodeType":"YulExpressionStatement","src":"3075:21:54"},{"nativeSrc":"3105:27:54","nodeType":"YulVariableDeclaration","src":"3105:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"3125:6:54","nodeType":"YulIdentifier","src":"3125:6:54"}],"functionName":{"name":"mload","nativeSrc":"3119:5:54","nodeType":"YulIdentifier","src":"3119:5:54"},"nativeSrc":"3119:13:54","nodeType":"YulFunctionCall","src":"3119:13:54"},"variables":[{"name":"length","nativeSrc":"3109:6:54","nodeType":"YulTypedName","src":"3109:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3152:9:54","nodeType":"YulIdentifier","src":"3152:9:54"},{"kind":"number","nativeSrc":"3163:2:54","nodeType":"YulLiteral","src":"3163:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3148:3:54","nodeType":"YulIdentifier","src":"3148:3:54"},"nativeSrc":"3148:18:54","nodeType":"YulFunctionCall","src":"3148:18:54"},{"name":"length","nativeSrc":"3168:6:54","nodeType":"YulIdentifier","src":"3168:6:54"}],"functionName":{"name":"mstore","nativeSrc":"3141:6:54","nodeType":"YulIdentifier","src":"3141:6:54"},"nativeSrc":"3141:34:54","nodeType":"YulFunctionCall","src":"3141:34:54"},"nativeSrc":"3141:34:54","nodeType":"YulExpressionStatement","src":"3141:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3223:6:54","nodeType":"YulIdentifier","src":"3223:6:54"},{"kind":"number","nativeSrc":"3231:2:54","nodeType":"YulLiteral","src":"3231:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3219:3:54","nodeType":"YulIdentifier","src":"3219:3:54"},"nativeSrc":"3219:15:54","nodeType":"YulFunctionCall","src":"3219:15:54"},{"arguments":[{"name":"headStart","nativeSrc":"3240:9:54","nodeType":"YulIdentifier","src":"3240:9:54"},{"kind":"number","nativeSrc":"3251:2:54","nodeType":"YulLiteral","src":"3251:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3236:3:54","nodeType":"YulIdentifier","src":"3236:3:54"},"nativeSrc":"3236:18:54","nodeType":"YulFunctionCall","src":"3236:18:54"},{"name":"length","nativeSrc":"3256:6:54","nodeType":"YulIdentifier","src":"3256:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3184:34:54","nodeType":"YulIdentifier","src":"3184:34:54"},"nativeSrc":"3184:79:54","nodeType":"YulFunctionCall","src":"3184:79:54"},"nativeSrc":"3184:79:54","nodeType":"YulExpressionStatement","src":"3184:79:54"},{"nativeSrc":"3272:62:54","nodeType":"YulAssignment","src":"3272:62:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3288:9:54","nodeType":"YulIdentifier","src":"3288:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3307:6:54","nodeType":"YulIdentifier","src":"3307:6:54"},{"kind":"number","nativeSrc":"3315:2:54","nodeType":"YulLiteral","src":"3315:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3303:3:54","nodeType":"YulIdentifier","src":"3303:3:54"},"nativeSrc":"3303:15:54","nodeType":"YulFunctionCall","src":"3303:15:54"},{"arguments":[{"kind":"number","nativeSrc":"3324:2:54","nodeType":"YulLiteral","src":"3324:2:54","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3320:3:54","nodeType":"YulIdentifier","src":"3320:3:54"},"nativeSrc":"3320:7:54","nodeType":"YulFunctionCall","src":"3320:7:54"}],"functionName":{"name":"and","nativeSrc":"3299:3:54","nodeType":"YulIdentifier","src":"3299:3:54"},"nativeSrc":"3299:29:54","nodeType":"YulFunctionCall","src":"3299:29:54"}],"functionName":{"name":"add","nativeSrc":"3284:3:54","nodeType":"YulIdentifier","src":"3284:3:54"},"nativeSrc":"3284:45:54","nodeType":"YulFunctionCall","src":"3284:45:54"},{"kind":"number","nativeSrc":"3331:2:54","nodeType":"YulLiteral","src":"3331:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3280:3:54","nodeType":"YulIdentifier","src":"3280:3:54"},"nativeSrc":"3280:54:54","nodeType":"YulFunctionCall","src":"3280:54:54"},"variableNames":[{"name":"tail","nativeSrc":"3272:4:54","nodeType":"YulIdentifier","src":"3272:4:54"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2944:396:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3034:9:54","nodeType":"YulTypedName","src":"3034:9:54","type":""},{"name":"value0","nativeSrc":"3045:6:54","nodeType":"YulTypedName","src":"3045:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3056:4:54","nodeType":"YulTypedName","src":"3056:4:54","type":""}],"src":"2944:396:54"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\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    function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        let offset := mload(add(headStart, 32))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n        value1 := memPtr\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\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        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516105713803806105718339810160408190526100229161030a565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6103d8565b60008051602061052a83398151915214610069576100696103f9565b6100758282600061007c565b505061045e565b610085836100a8565b6000825111806100925750805b156100a3576100a183836100e8565b505b505050565b6100b181610116565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061010d838360405180606001604052806027815260200161054a602791396101b7565b90505b92915050565b6001600160a01b0381163b6101885760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b60008051602061052a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61021f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161017f565b600080856001600160a01b03168560405161023a919061040f565b600060405180830381855af49150503d8060008114610275576040519150601f19603f3d011682016040523d82523d6000602084013e61027a565b606091505b50909250905061028b828286610297565b925050505b9392505050565b606083156102a6575081610290565b8251156102b65782518084602001fd5b8160405162461bcd60e51b815260040161017f919061042b565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103015781810151838201526020016102e9565b50506000910152565b6000806040838503121561031d57600080fd5b82516001600160a01b038116811461033457600080fd5b60208401519092506001600160401b038082111561035157600080fd5b818501915085601f83011261036557600080fd5b815181811115610377576103776102d0565b604051601f8201601f19908116603f0116810190838211818310171561039f5761039f6102d0565b816040528281528860208487010111156103b857600080fd5b6103c98360208301602088016102e6565b80955050505050509250929050565b8181038181111561011057634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516104218184602087016102e6565b9190910192915050565b602081526000825180602084015261044a8160408501602087016102e6565b601f01601f19169190910160400192915050565b60be8061046c6000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea26469706673582212204df0c27b360d5c000cb1883ae22ee805a20471309d9131e69d6d67f9e66210ec64736f6c63430008190033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x571 CODESIZE SUB DUP1 PUSH2 0x571 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x30A JUMP JUMPDEST PUSH2 0x4D PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x69 JUMPI PUSH2 0x69 PUSH2 0x3F9 JUMP JUMPDEST PUSH2 0x75 DUP3 DUP3 PUSH1 0x0 PUSH2 0x7C JUMP JUMPDEST POP POP PUSH2 0x45E 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 0x54A PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x1B7 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x188 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x52A 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 0x21F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x40F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x275 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 0x27A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x28B DUP3 DUP3 DUP7 PUSH2 0x297 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2A6 JUMPI POP DUP2 PUSH2 0x290 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2B6 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 0x17F SWAP2 SWAP1 PUSH2 0x42B JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x301 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2E9 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x377 JUMPI PUSH2 0x377 PUSH2 0x2D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x39F JUMPI PUSH2 0x39F PUSH2 0x2D0 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C9 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x2E6 JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x110 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x421 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2E6 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x44A DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xBE DUP1 PUSH2 0x46C 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 0x65 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 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 0x83 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D CREATE 0xC2 PUSH28 0x360D5C000CB1883AE22EE805A20471309D9131E69D6D67F9E66210EC 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:44:-:0;;;945:217;;;;;;;;;;;;;;;;;;:::i;:::-;1050:54;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:44;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;945:217;;552:830;;2188:295:45;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:45;;;;;;;;1902:152;:::o;6575:198:50:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:45:-;-1:-1:-1;;;;;1470:19:50;;;1610:95:45;;;;-1:-1:-1;;;1610:95:45;;2033:2:54;1610:95:45;;;2015:21:54;2072:2;2052:18;;;2045:30;2111:34;2091:18;;;2084:62;-1:-1:-1;;;2162:18:54;;;2155:43;2215:19;;1610:95:45;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:45;;-1:-1:-1;;;;;;1715:74:45;-1:-1:-1;;;;;1715:74:45;;;;;;;;;;1537:259::o;6959:387:50:-;7100:12;-1:-1:-1;;;;;1470:19:50;;;7124:69;;;;-1:-1:-1;;;7124:69:50;;2447:2:54;7124:69:50;;;2429:21:54;2486:2;2466:18;;;2459:30;2525:34;2505:18;;;2498:62;-1:-1:-1;;;2576:18:54;;;2569:36;2622:19;;7124:69:50;2245:402:54;7124:69:50;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:50;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:50;;-1:-1:-1;7204:67:50;-1:-1:-1;7288:51:50;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:50;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:50;;;;;;;;:::i;14:127:54:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:250;231:1;241:113;255:6;252:1;249:13;241:113;;;331:11;;;325:18;312:11;;;305:39;277:2;270:10;241:113;;;-1:-1:-1;;388:1:54;370:16;;363:27;146:250::o;401:1063::-;489:6;497;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;592:16;;-1:-1:-1;;;;;637:31:54;;627:42;;617:70;;683:1;680;673:12;617:70;755:2;740:18;;734:25;706:5;;-1:-1:-1;;;;;;808:14:54;;;805:34;;;835:1;832;825:12;805:34;873:6;862:9;858:22;848:32;;918:7;911:4;907:2;903:13;899:27;889:55;;940:1;937;930:12;889:55;969:2;963:9;991:2;987;984:10;981:36;;;997:18;;:::i;:::-;1072:2;1066:9;1040:2;1126:13;;-1:-1:-1;;1122:22:54;;;1146:2;1118:31;1114:40;1102:53;;;1170:18;;;1190:22;;;1167:46;1164:72;;;1216:18;;:::i;:::-;1256:10;1252:2;1245:22;1291:2;1283:6;1276:18;1331:7;1326:2;1321;1317;1313:11;1309:20;1306:33;1303:53;;;1352:1;1349;1342:12;1303:53;1365:68;1430:2;1425;1417:6;1413:15;1408:2;1404;1400:11;1365:68;:::i;:::-;1452:6;1442:16;;;;;;;401:1063;;;;;:::o;1469:225::-;1536:9;;;1557:11;;;1554:134;;;1610:10;1605:3;1601:20;1598:1;1591:31;1645:4;1642:1;1635:15;1673:4;1670:1;1663:15;1699:127;1760:10;1755:3;1751:20;1748:1;1741:31;1791:4;1788:1;1781:15;1815:4;1812:1;1805:15;2652:287;2781:3;2819:6;2813:13;2835:66;2894:6;2889:3;2882:4;2874:6;2870:17;2835:66;:::i;:::-;2917:16;;;;;2652:287;-1:-1:-1;;2652:287:54:o;2944:396::-;3093:2;3082:9;3075:21;3056:4;3125:6;3119:13;3168:6;3163:2;3152:9;3148:18;3141:34;3184:79;3256:6;3251:2;3240:9;3236:18;3231:2;3223:6;3219:15;3184:79;:::i;:::-;3324:2;3303:15;-1:-1:-1;;3299:29:54;3284:45;;;;3331:2;3280:54;;2944:396;-1:-1:-1;;2944:396:54:o;:::-;552:830:44;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_9831":{"entryPoint":null,"id":9831,"parameterSlots":0,"returnSlots":0},"@_9839":{"entryPoint":null,"id":9839,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_9844":{"entryPoint":null,"id":9844,"parameterSlots":0,"returnSlots":0},"@_delegate_9804":{"entryPoint":101,"id":9804,"parameterSlots":1,"returnSlots":0},"@_fallback_9823":{"entryPoint":19,"id":9823,"parameterSlots":0,"returnSlots":0},"@_getImplementation_9507":{"entryPoint":null,"id":9507,"parameterSlots":0,"returnSlots":1},"@_implementation_9474":{"entryPoint":33,"id":9474,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_10507":{"entryPoint":null,"id":10507,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea26469706673582212204df0c27b360d5c000cb1883ae22ee805a20471309d9131e69d6d67f9e66210ec64736f6c63430008190033","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 0x65 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 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 0x83 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4D CREATE 0xC2 PUSH28 0x360D5C000CB1883AE22EE805A20471309D9131E69D6D67F9E66210EC PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"552:830:44:-:0;;;;;;2903:11:46;:9;:11::i;:::-;552:830:44;;2680:11:46;2327:110;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;1240:140:44:-;1307:12;1338:35;1035:66:45;1385:54;;;;1306:140;1338:35:44;1331:42;;1240:140;:::o;953:895:46:-;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":"38000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite"},"internal":{"_implementation()":"2144"}},"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\":{\"enabled\":true,\"runs\":10000},\"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\":{\"enabled\":true,\"runs\":10000},\"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\":{\"enabled\":true,\"runs\":10000},\"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\":{\"enabled\":true,\"runs\":10000},\"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":{"@_9331":{"entryPoint":null,"id":9331,"parameterSlots":1,"returnSlots":0},"@_9871":{"entryPoint":null,"id":9871,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_9411":{"entryPoint":58,"id":9411,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":138,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:306:54","nodeType":"YulBlock","src":"0:306:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"95:209:54","nodeType":"YulBlock","src":"95:209:54","statements":[{"body":{"nativeSrc":"141:16:54","nodeType":"YulBlock","src":"141:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"150:1:54","nodeType":"YulLiteral","src":"150:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"153:1:54","nodeType":"YulLiteral","src":"153:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"143:6:54","nodeType":"YulIdentifier","src":"143:6:54"},"nativeSrc":"143:12:54","nodeType":"YulFunctionCall","src":"143:12:54"},"nativeSrc":"143:12:54","nodeType":"YulExpressionStatement","src":"143:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"116:7:54","nodeType":"YulIdentifier","src":"116:7:54"},{"name":"headStart","nativeSrc":"125:9:54","nodeType":"YulIdentifier","src":"125:9:54"}],"functionName":{"name":"sub","nativeSrc":"112:3:54","nodeType":"YulIdentifier","src":"112:3:54"},"nativeSrc":"112:23:54","nodeType":"YulFunctionCall","src":"112:23:54"},{"kind":"number","nativeSrc":"137:2:54","nodeType":"YulLiteral","src":"137:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"108:3:54","nodeType":"YulIdentifier","src":"108:3:54"},"nativeSrc":"108:32:54","nodeType":"YulFunctionCall","src":"108:32:54"},"nativeSrc":"105:52:54","nodeType":"YulIf","src":"105:52:54"},{"nativeSrc":"166:29:54","nodeType":"YulVariableDeclaration","src":"166:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"185:9:54","nodeType":"YulIdentifier","src":"185:9:54"}],"functionName":{"name":"mload","nativeSrc":"179:5:54","nodeType":"YulIdentifier","src":"179:5:54"},"nativeSrc":"179:16:54","nodeType":"YulFunctionCall","src":"179:16:54"},"variables":[{"name":"value","nativeSrc":"170:5:54","nodeType":"YulTypedName","src":"170:5:54","type":""}]},{"body":{"nativeSrc":"258:16:54","nodeType":"YulBlock","src":"258:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267:1:54","nodeType":"YulLiteral","src":"267:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"270:1:54","nodeType":"YulLiteral","src":"270:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"260:6:54","nodeType":"YulIdentifier","src":"260:6:54"},"nativeSrc":"260:12:54","nodeType":"YulFunctionCall","src":"260:12:54"},"nativeSrc":"260:12:54","nodeType":"YulExpressionStatement","src":"260:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"217:5:54","nodeType":"YulIdentifier","src":"217:5:54"},{"arguments":[{"name":"value","nativeSrc":"228:5:54","nodeType":"YulIdentifier","src":"228:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"243:3:54","nodeType":"YulLiteral","src":"243:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"248:1:54","nodeType":"YulLiteral","src":"248:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"239:3:54","nodeType":"YulIdentifier","src":"239:3:54"},"nativeSrc":"239:11:54","nodeType":"YulFunctionCall","src":"239:11:54"},{"kind":"number","nativeSrc":"252:1:54","nodeType":"YulLiteral","src":"252:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"235:3:54","nodeType":"YulIdentifier","src":"235:3:54"},"nativeSrc":"235:19:54","nodeType":"YulFunctionCall","src":"235:19:54"}],"functionName":{"name":"and","nativeSrc":"224:3:54","nodeType":"YulIdentifier","src":"224:3:54"},"nativeSrc":"224:31:54","nodeType":"YulFunctionCall","src":"224:31:54"}],"functionName":{"name":"eq","nativeSrc":"214:2:54","nodeType":"YulIdentifier","src":"214:2:54"},"nativeSrc":"214:42:54","nodeType":"YulFunctionCall","src":"214:42:54"}],"functionName":{"name":"iszero","nativeSrc":"207:6:54","nodeType":"YulIdentifier","src":"207:6:54"},"nativeSrc":"207:50:54","nodeType":"YulFunctionCall","src":"207:50:54"},"nativeSrc":"204:70:54","nodeType":"YulIf","src":"204:70:54"},{"nativeSrc":"283:15:54","nodeType":"YulAssignment","src":"283:15:54","value":{"name":"value","nativeSrc":"293:5:54","nodeType":"YulIdentifier","src":"293:5:54"},"variableNames":[{"name":"value0","nativeSrc":"283:6:54","nodeType":"YulIdentifier","src":"283:6:54"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14:290:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61:9:54","nodeType":"YulTypedName","src":"61:9:54","type":""},{"name":"dataEnd","nativeSrc":"72:7:54","nodeType":"YulTypedName","src":"72:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"84:6:54","nodeType":"YulTypedName","src":"84:6:54","type":""}],"src":"14:290:54"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50604051610b09380380610b09833981016040819052602c91608a565b80603481603a565b505060b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215609b57600080fd5b81516001600160a01b038116811460b157600080fd5b9392505050565b610a42806100c76000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461012b57806399a88ec41461013e578063f2fde38b1461015e578063f3b7dead1461017e57600080fd5b8063204e1c7a14610080578063715018a6146100c95780637eff275e146100e05780638da5cb5b14610100575b600080fd5b34801561008c57600080fd5b506100a061009b3660046107e4565b61019e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d557600080fd5b506100de610255565b005b3480156100ec57600080fd5b506100de6100fb366004610808565b6102e7565b34801561010c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166100a0565b6100de610139366004610870565b6103ee565b34801561014a57600080fd5b506100de610159366004610808565b6104fc565b34801561016a57600080fd5b506100de6101793660046107e4565b6105d1565b34801561018a57600080fd5b506100a06101993660046107e4565b610701565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b50915091508161023957600080fd5b8080602001905181019061024d9190610964565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6102e5600061074d565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f283970906024015b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461046f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906104c59086908690600401610981565b6000604051808303818588803b1580156104de57600080fd5b505af11580156104f2573d6000803e3d6000fd5b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024016103b8565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b73ffffffffffffffffffffffffffffffffffffffff81166106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d2565b6106fe8161074d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146106fe57600080fd5b6000602082840312156107f657600080fd5b8135610801816107c2565b9392505050565b6000806040838503121561081b57600080fd5b8235610826816107c2565b91506020830135610836816107c2565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561088557600080fd5b8335610890816107c2565b925060208401356108a0816107c2565b9150604084013567ffffffffffffffff808211156108bd57600080fd5b818601915086601f8301126108d157600080fd5b8135818111156108e3576108e3610841565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561092957610929610841565b8160405282815289602084870101111561094257600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561097657600080fd5b8151610801816107c2565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109cc578581018301518582016060015282016109b0565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010192505050939250505056fea2646970667358221220c8b87e24bc510b348206f64f4e9e1d933af610bf37c2ebe141148cb2bdd2610264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xB09 CODESIZE SUB DUP1 PUSH2 0xB09 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x8A JUMP JUMPDEST DUP1 PUSH1 0x34 DUP2 PUSH1 0x3A JUMP JUMPDEST POP POP PUSH1 0xB8 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 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xA42 DUP1 PUSH2 0xC7 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 0x12B JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x100 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 0x7E4 JUMP JUMPDEST PUSH2 0x19E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x255 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0xFB CALLDATASIZE PUSH1 0x4 PUSH2 0x808 JUMP JUMPDEST PUSH2 0x2E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA0 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x870 JUMP JUMPDEST PUSH2 0x3EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x159 CALLDATASIZE PUSH1 0x4 PUSH2 0x808 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x179 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x5D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x199 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x701 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP1 PUSH32 0x5C60DA1B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x225 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 0x22A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x964 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x2DB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2E5 PUSH1 0x0 PUSH2 0x74D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x368 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8F28397000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x46F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x4F1EF28600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x4C5 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x981 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x57D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH2 0x3B8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x652 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x6F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0x6FE DUP2 PUSH2 0x74D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP1 PUSH32 0xF851A44000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x801 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x81B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x826 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x836 DUP2 PUSH2 0x7C2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x890 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x8A0 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x8BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8E3 JUMPI PUSH2 0x8E3 PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x929 JUMPI PUSH2 0x929 PUSH2 0x841 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x942 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x801 DUP2 PUSH2 0x7C2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 PUSH1 0x20 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CC JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x9B0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x60 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 0xB8 PUSH31 0x24BC510B348206F64F4E9E1D933AF610BF37C2EBE141148CB2BDD261026473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"435:2470:48:-:0;;;473:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;516:12;942:32:42;516:12:48;942:18:42;:32::i;:::-;897:84;473:59:48;435:2470;;2291:187:42;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:42;;;-1:-1:-1;;;;;;2399:17:42;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;14:290:54:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:54;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:54:o;:::-;435:2470:48;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_msgSender_10471":{"entryPoint":null,"id":10471,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_9411":{"entryPoint":1869,"id":9411,"parameterSlots":1,"returnSlots":0},"@changeProxyAdmin_9957":{"entryPoint":743,"id":9957,"parameterSlots":2,"returnSlots":0},"@getProxyAdmin_9939":{"entryPoint":1793,"id":9939,"parameterSlots":1,"returnSlots":1},"@getProxyImplementation_9905":{"entryPoint":414,"id":9905,"parameterSlots":1,"returnSlots":1},"@owner_9340":{"entryPoint":null,"id":9340,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_9368":{"entryPoint":597,"id":9368,"parameterSlots":0,"returnSlots":0},"@transferOwnership_9391":{"entryPoint":1489,"id":9391,"parameterSlots":1,"returnSlots":0},"@upgradeAndCall_9999":{"entryPoint":1006,"id":9999,"parameterSlots":3,"returnSlots":0},"@upgrade_9975":{"entryPoint":1276,"id":9975,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable_fromMemory":{"entryPoint":2404,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164":{"entryPoint":2020,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164t_address":{"entryPoint":2056,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164t_addresst_bytes_memory_ptr":{"entryPoint":2160,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"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":2433,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":2113,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_TransparentUpgradeableProxy":{"entryPoint":1986,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5489:54","nodeType":"YulBlock","src":"0:5489:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"88:109:54","nodeType":"YulBlock","src":"88:109:54","statements":[{"body":{"nativeSrc":"175:16:54","nodeType":"YulBlock","src":"175:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"184:1:54","nodeType":"YulLiteral","src":"184:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"187:1:54","nodeType":"YulLiteral","src":"187:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"177:6:54","nodeType":"YulIdentifier","src":"177:6:54"},"nativeSrc":"177:12:54","nodeType":"YulFunctionCall","src":"177:12:54"},"nativeSrc":"177:12:54","nodeType":"YulExpressionStatement","src":"177:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"111:5:54","nodeType":"YulIdentifier","src":"111:5:54"},{"arguments":[{"name":"value","nativeSrc":"122:5:54","nodeType":"YulIdentifier","src":"122:5:54"},{"kind":"number","nativeSrc":"129:42:54","nodeType":"YulLiteral","src":"129:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"118:3:54","nodeType":"YulIdentifier","src":"118:3:54"},"nativeSrc":"118:54:54","nodeType":"YulFunctionCall","src":"118:54:54"}],"functionName":{"name":"eq","nativeSrc":"108:2:54","nodeType":"YulIdentifier","src":"108:2:54"},"nativeSrc":"108:65:54","nodeType":"YulFunctionCall","src":"108:65:54"}],"functionName":{"name":"iszero","nativeSrc":"101:6:54","nodeType":"YulIdentifier","src":"101:6:54"},"nativeSrc":"101:73:54","nodeType":"YulFunctionCall","src":"101:73:54"},"nativeSrc":"98:93:54","nodeType":"YulIf","src":"98:93:54"}]},"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"14:183:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"77:5:54","nodeType":"YulTypedName","src":"77:5:54","type":""}],"src":"14:183:54"},{"body":{"nativeSrc":"309:206:54","nodeType":"YulBlock","src":"309:206:54","statements":[{"body":{"nativeSrc":"355:16:54","nodeType":"YulBlock","src":"355:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"364:1:54","nodeType":"YulLiteral","src":"364:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"367:1:54","nodeType":"YulLiteral","src":"367:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"357:6:54","nodeType":"YulIdentifier","src":"357:6:54"},"nativeSrc":"357:12:54","nodeType":"YulFunctionCall","src":"357:12:54"},"nativeSrc":"357:12:54","nodeType":"YulExpressionStatement","src":"357:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"330:7:54","nodeType":"YulIdentifier","src":"330:7:54"},{"name":"headStart","nativeSrc":"339:9:54","nodeType":"YulIdentifier","src":"339:9:54"}],"functionName":{"name":"sub","nativeSrc":"326:3:54","nodeType":"YulIdentifier","src":"326:3:54"},"nativeSrc":"326:23:54","nodeType":"YulFunctionCall","src":"326:23:54"},{"kind":"number","nativeSrc":"351:2:54","nodeType":"YulLiteral","src":"351:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"322:3:54","nodeType":"YulIdentifier","src":"322:3:54"},"nativeSrc":"322:32:54","nodeType":"YulFunctionCall","src":"322:32:54"},"nativeSrc":"319:52:54","nodeType":"YulIf","src":"319:52:54"},{"nativeSrc":"380:36:54","nodeType":"YulVariableDeclaration","src":"380:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"406:9:54","nodeType":"YulIdentifier","src":"406:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"393:12:54","nodeType":"YulIdentifier","src":"393:12:54"},"nativeSrc":"393:23:54","nodeType":"YulFunctionCall","src":"393:23:54"},"variables":[{"name":"value","nativeSrc":"384:5:54","nodeType":"YulTypedName","src":"384:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"479:5:54","nodeType":"YulIdentifier","src":"479:5:54"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"425:53:54","nodeType":"YulIdentifier","src":"425:53:54"},"nativeSrc":"425:60:54","nodeType":"YulFunctionCall","src":"425:60:54"},"nativeSrc":"425:60:54","nodeType":"YulExpressionStatement","src":"425:60:54"},{"nativeSrc":"494:15:54","nodeType":"YulAssignment","src":"494:15:54","value":{"name":"value","nativeSrc":"504:5:54","nodeType":"YulIdentifier","src":"504:5:54"},"variableNames":[{"name":"value0","nativeSrc":"494:6:54","nodeType":"YulIdentifier","src":"494:6:54"}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164","nativeSrc":"202:313:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"275:9:54","nodeType":"YulTypedName","src":"275:9:54","type":""},{"name":"dataEnd","nativeSrc":"286:7:54","nodeType":"YulTypedName","src":"286:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"298:6:54","nodeType":"YulTypedName","src":"298:6:54","type":""}],"src":"202:313:54"},{"body":{"nativeSrc":"621:125:54","nodeType":"YulBlock","src":"621:125:54","statements":[{"nativeSrc":"631:26:54","nodeType":"YulAssignment","src":"631:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"643:9:54","nodeType":"YulIdentifier","src":"643:9:54"},{"kind":"number","nativeSrc":"654:2:54","nodeType":"YulLiteral","src":"654:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"639:3:54","nodeType":"YulIdentifier","src":"639:3:54"},"nativeSrc":"639:18:54","nodeType":"YulFunctionCall","src":"639:18:54"},"variableNames":[{"name":"tail","nativeSrc":"631:4:54","nodeType":"YulIdentifier","src":"631:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"673:9:54","nodeType":"YulIdentifier","src":"673:9:54"},{"arguments":[{"name":"value0","nativeSrc":"688:6:54","nodeType":"YulIdentifier","src":"688:6:54"},{"kind":"number","nativeSrc":"696:42:54","nodeType":"YulLiteral","src":"696:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"684:3:54","nodeType":"YulIdentifier","src":"684:3:54"},"nativeSrc":"684:55:54","nodeType":"YulFunctionCall","src":"684:55:54"}],"functionName":{"name":"mstore","nativeSrc":"666:6:54","nodeType":"YulIdentifier","src":"666:6:54"},"nativeSrc":"666:74:54","nodeType":"YulFunctionCall","src":"666:74:54"},"nativeSrc":"666:74:54","nodeType":"YulExpressionStatement","src":"666:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"520:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"590:9:54","nodeType":"YulTypedName","src":"590:9:54","type":""},{"name":"value0","nativeSrc":"601:6:54","nodeType":"YulTypedName","src":"601:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"612:4:54","nodeType":"YulTypedName","src":"612:4:54","type":""}],"src":"520:226:54"},{"body":{"nativeSrc":"875:359:54","nodeType":"YulBlock","src":"875:359:54","statements":[{"body":{"nativeSrc":"921:16:54","nodeType":"YulBlock","src":"921:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"930:1:54","nodeType":"YulLiteral","src":"930:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"933:1:54","nodeType":"YulLiteral","src":"933:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"923:6:54","nodeType":"YulIdentifier","src":"923:6:54"},"nativeSrc":"923:12:54","nodeType":"YulFunctionCall","src":"923:12:54"},"nativeSrc":"923:12:54","nodeType":"YulExpressionStatement","src":"923:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"896:7:54","nodeType":"YulIdentifier","src":"896:7:54"},{"name":"headStart","nativeSrc":"905:9:54","nodeType":"YulIdentifier","src":"905:9:54"}],"functionName":{"name":"sub","nativeSrc":"892:3:54","nodeType":"YulIdentifier","src":"892:3:54"},"nativeSrc":"892:23:54","nodeType":"YulFunctionCall","src":"892:23:54"},{"kind":"number","nativeSrc":"917:2:54","nodeType":"YulLiteral","src":"917:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"888:3:54","nodeType":"YulIdentifier","src":"888:3:54"},"nativeSrc":"888:32:54","nodeType":"YulFunctionCall","src":"888:32:54"},"nativeSrc":"885:52:54","nodeType":"YulIf","src":"885:52:54"},{"nativeSrc":"946:36:54","nodeType":"YulVariableDeclaration","src":"946:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"972:9:54","nodeType":"YulIdentifier","src":"972:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"959:12:54","nodeType":"YulIdentifier","src":"959:12:54"},"nativeSrc":"959:23:54","nodeType":"YulFunctionCall","src":"959:23:54"},"variables":[{"name":"value","nativeSrc":"950:5:54","nodeType":"YulTypedName","src":"950:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1045:5:54","nodeType":"YulIdentifier","src":"1045:5:54"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"991:53:54","nodeType":"YulIdentifier","src":"991:53:54"},"nativeSrc":"991:60:54","nodeType":"YulFunctionCall","src":"991:60:54"},"nativeSrc":"991:60:54","nodeType":"YulExpressionStatement","src":"991:60:54"},{"nativeSrc":"1060:15:54","nodeType":"YulAssignment","src":"1060:15:54","value":{"name":"value","nativeSrc":"1070:5:54","nodeType":"YulIdentifier","src":"1070:5:54"},"variableNames":[{"name":"value0","nativeSrc":"1060:6:54","nodeType":"YulIdentifier","src":"1060:6:54"}]},{"nativeSrc":"1084:47:54","nodeType":"YulVariableDeclaration","src":"1084:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1116:9:54","nodeType":"YulIdentifier","src":"1116:9:54"},{"kind":"number","nativeSrc":"1127:2:54","nodeType":"YulLiteral","src":"1127:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1112:3:54","nodeType":"YulIdentifier","src":"1112:3:54"},"nativeSrc":"1112:18:54","nodeType":"YulFunctionCall","src":"1112:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1099:12:54","nodeType":"YulIdentifier","src":"1099:12:54"},"nativeSrc":"1099:32:54","nodeType":"YulFunctionCall","src":"1099:32:54"},"variables":[{"name":"value_1","nativeSrc":"1088:7:54","nodeType":"YulTypedName","src":"1088:7:54","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"1194:7:54","nodeType":"YulIdentifier","src":"1194:7:54"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"1140:53:54","nodeType":"YulIdentifier","src":"1140:53:54"},"nativeSrc":"1140:62:54","nodeType":"YulFunctionCall","src":"1140:62:54"},"nativeSrc":"1140:62:54","nodeType":"YulExpressionStatement","src":"1140:62:54"},{"nativeSrc":"1211:17:54","nodeType":"YulAssignment","src":"1211:17:54","value":{"name":"value_1","nativeSrc":"1221:7:54","nodeType":"YulIdentifier","src":"1221:7:54"},"variableNames":[{"name":"value1","nativeSrc":"1211:6:54","nodeType":"YulIdentifier","src":"1211:6:54"}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164t_address","nativeSrc":"751:483:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"833:9:54","nodeType":"YulTypedName","src":"833:9:54","type":""},{"name":"dataEnd","nativeSrc":"844:7:54","nodeType":"YulTypedName","src":"844:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"856:6:54","nodeType":"YulTypedName","src":"856:6:54","type":""},{"name":"value1","nativeSrc":"864:6:54","nodeType":"YulTypedName","src":"864:6:54","type":""}],"src":"751:483:54"},{"body":{"nativeSrc":"1271:152:54","nodeType":"YulBlock","src":"1271:152:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1288:1:54","nodeType":"YulLiteral","src":"1288:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1291:77:54","nodeType":"YulLiteral","src":"1291:77:54","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1281:6:54","nodeType":"YulIdentifier","src":"1281:6:54"},"nativeSrc":"1281:88:54","nodeType":"YulFunctionCall","src":"1281:88:54"},"nativeSrc":"1281:88:54","nodeType":"YulExpressionStatement","src":"1281:88:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1385:1:54","nodeType":"YulLiteral","src":"1385:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"1388:4:54","nodeType":"YulLiteral","src":"1388:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1378:6:54","nodeType":"YulIdentifier","src":"1378:6:54"},"nativeSrc":"1378:15:54","nodeType":"YulFunctionCall","src":"1378:15:54"},"nativeSrc":"1378:15:54","nodeType":"YulExpressionStatement","src":"1378:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1409:1:54","nodeType":"YulLiteral","src":"1409:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1412:4:54","nodeType":"YulLiteral","src":"1412:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1402:6:54","nodeType":"YulIdentifier","src":"1402:6:54"},"nativeSrc":"1402:15:54","nodeType":"YulFunctionCall","src":"1402:15:54"},"nativeSrc":"1402:15:54","nodeType":"YulExpressionStatement","src":"1402:15:54"}]},"name":"panic_error_0x41","nativeSrc":"1239:184:54","nodeType":"YulFunctionDefinition","src":"1239:184:54"},{"body":{"nativeSrc":"1578:1201:54","nodeType":"YulBlock","src":"1578:1201:54","statements":[{"body":{"nativeSrc":"1624:16:54","nodeType":"YulBlock","src":"1624:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1633:1:54","nodeType":"YulLiteral","src":"1633:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1636:1:54","nodeType":"YulLiteral","src":"1636:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1626:6:54","nodeType":"YulIdentifier","src":"1626:6:54"},"nativeSrc":"1626:12:54","nodeType":"YulFunctionCall","src":"1626:12:54"},"nativeSrc":"1626:12:54","nodeType":"YulExpressionStatement","src":"1626:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1599:7:54","nodeType":"YulIdentifier","src":"1599:7:54"},{"name":"headStart","nativeSrc":"1608:9:54","nodeType":"YulIdentifier","src":"1608:9:54"}],"functionName":{"name":"sub","nativeSrc":"1595:3:54","nodeType":"YulIdentifier","src":"1595:3:54"},"nativeSrc":"1595:23:54","nodeType":"YulFunctionCall","src":"1595:23:54"},{"kind":"number","nativeSrc":"1620:2:54","nodeType":"YulLiteral","src":"1620:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1591:3:54","nodeType":"YulIdentifier","src":"1591:3:54"},"nativeSrc":"1591:32:54","nodeType":"YulFunctionCall","src":"1591:32:54"},"nativeSrc":"1588:52:54","nodeType":"YulIf","src":"1588:52:54"},{"nativeSrc":"1649:36:54","nodeType":"YulVariableDeclaration","src":"1649:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1675:9:54","nodeType":"YulIdentifier","src":"1675:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"1662:12:54","nodeType":"YulIdentifier","src":"1662:12:54"},"nativeSrc":"1662:23:54","nodeType":"YulFunctionCall","src":"1662:23:54"},"variables":[{"name":"value","nativeSrc":"1653:5:54","nodeType":"YulTypedName","src":"1653:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1748:5:54","nodeType":"YulIdentifier","src":"1748:5:54"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"1694:53:54","nodeType":"YulIdentifier","src":"1694:53:54"},"nativeSrc":"1694:60:54","nodeType":"YulFunctionCall","src":"1694:60:54"},"nativeSrc":"1694:60:54","nodeType":"YulExpressionStatement","src":"1694:60:54"},{"nativeSrc":"1763:15:54","nodeType":"YulAssignment","src":"1763:15:54","value":{"name":"value","nativeSrc":"1773:5:54","nodeType":"YulIdentifier","src":"1773:5:54"},"variableNames":[{"name":"value0","nativeSrc":"1763:6:54","nodeType":"YulIdentifier","src":"1763:6:54"}]},{"nativeSrc":"1787:47:54","nodeType":"YulVariableDeclaration","src":"1787:47:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1819:9:54","nodeType":"YulIdentifier","src":"1819:9:54"},{"kind":"number","nativeSrc":"1830:2:54","nodeType":"YulLiteral","src":"1830:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1815:3:54","nodeType":"YulIdentifier","src":"1815:3:54"},"nativeSrc":"1815:18:54","nodeType":"YulFunctionCall","src":"1815:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1802:12:54","nodeType":"YulIdentifier","src":"1802:12:54"},"nativeSrc":"1802:32:54","nodeType":"YulFunctionCall","src":"1802:32:54"},"variables":[{"name":"value_1","nativeSrc":"1791:7:54","nodeType":"YulTypedName","src":"1791:7:54","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"1897:7:54","nodeType":"YulIdentifier","src":"1897:7:54"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"1843:53:54","nodeType":"YulIdentifier","src":"1843:53:54"},"nativeSrc":"1843:62:54","nodeType":"YulFunctionCall","src":"1843:62:54"},"nativeSrc":"1843:62:54","nodeType":"YulExpressionStatement","src":"1843:62:54"},{"nativeSrc":"1914:17:54","nodeType":"YulAssignment","src":"1914:17:54","value":{"name":"value_1","nativeSrc":"1924:7:54","nodeType":"YulIdentifier","src":"1924:7:54"},"variableNames":[{"name":"value1","nativeSrc":"1914:6:54","nodeType":"YulIdentifier","src":"1914:6:54"}]},{"nativeSrc":"1940:46:54","nodeType":"YulVariableDeclaration","src":"1940:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1971:9:54","nodeType":"YulIdentifier","src":"1971:9:54"},{"kind":"number","nativeSrc":"1982:2:54","nodeType":"YulLiteral","src":"1982:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1967:3:54","nodeType":"YulIdentifier","src":"1967:3:54"},"nativeSrc":"1967:18:54","nodeType":"YulFunctionCall","src":"1967:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"1954:12:54","nodeType":"YulIdentifier","src":"1954:12:54"},"nativeSrc":"1954:32:54","nodeType":"YulFunctionCall","src":"1954:32:54"},"variables":[{"name":"offset","nativeSrc":"1944:6:54","nodeType":"YulTypedName","src":"1944:6:54","type":""}]},{"nativeSrc":"1995:28:54","nodeType":"YulVariableDeclaration","src":"1995:28:54","value":{"kind":"number","nativeSrc":"2005:18:54","nodeType":"YulLiteral","src":"2005:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1999:2:54","nodeType":"YulTypedName","src":"1999:2:54","type":""}]},{"body":{"nativeSrc":"2050:16:54","nodeType":"YulBlock","src":"2050:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2059:1:54","nodeType":"YulLiteral","src":"2059:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2062:1:54","nodeType":"YulLiteral","src":"2062:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2052:6:54","nodeType":"YulIdentifier","src":"2052:6:54"},"nativeSrc":"2052:12:54","nodeType":"YulFunctionCall","src":"2052:12:54"},"nativeSrc":"2052:12:54","nodeType":"YulExpressionStatement","src":"2052:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2038:6:54","nodeType":"YulIdentifier","src":"2038:6:54"},{"name":"_1","nativeSrc":"2046:2:54","nodeType":"YulIdentifier","src":"2046:2:54"}],"functionName":{"name":"gt","nativeSrc":"2035:2:54","nodeType":"YulIdentifier","src":"2035:2:54"},"nativeSrc":"2035:14:54","nodeType":"YulFunctionCall","src":"2035:14:54"},"nativeSrc":"2032:34:54","nodeType":"YulIf","src":"2032:34:54"},{"nativeSrc":"2075:32:54","nodeType":"YulVariableDeclaration","src":"2075:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2089:9:54","nodeType":"YulIdentifier","src":"2089:9:54"},{"name":"offset","nativeSrc":"2100:6:54","nodeType":"YulIdentifier","src":"2100:6:54"}],"functionName":{"name":"add","nativeSrc":"2085:3:54","nodeType":"YulIdentifier","src":"2085:3:54"},"nativeSrc":"2085:22:54","nodeType":"YulFunctionCall","src":"2085:22:54"},"variables":[{"name":"_2","nativeSrc":"2079:2:54","nodeType":"YulTypedName","src":"2079:2:54","type":""}]},{"body":{"nativeSrc":"2155:16:54","nodeType":"YulBlock","src":"2155:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2164:1:54","nodeType":"YulLiteral","src":"2164:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2167:1:54","nodeType":"YulLiteral","src":"2167:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2157:6:54","nodeType":"YulIdentifier","src":"2157:6:54"},"nativeSrc":"2157:12:54","nodeType":"YulFunctionCall","src":"2157:12:54"},"nativeSrc":"2157:12:54","nodeType":"YulExpressionStatement","src":"2157:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"2134:2:54","nodeType":"YulIdentifier","src":"2134:2:54"},{"kind":"number","nativeSrc":"2138:4:54","nodeType":"YulLiteral","src":"2138:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2130:3:54","nodeType":"YulIdentifier","src":"2130:3:54"},"nativeSrc":"2130:13:54","nodeType":"YulFunctionCall","src":"2130:13:54"},{"name":"dataEnd","nativeSrc":"2145:7:54","nodeType":"YulIdentifier","src":"2145:7:54"}],"functionName":{"name":"slt","nativeSrc":"2126:3:54","nodeType":"YulIdentifier","src":"2126:3:54"},"nativeSrc":"2126:27:54","nodeType":"YulFunctionCall","src":"2126:27:54"}],"functionName":{"name":"iszero","nativeSrc":"2119:6:54","nodeType":"YulIdentifier","src":"2119:6:54"},"nativeSrc":"2119:35:54","nodeType":"YulFunctionCall","src":"2119:35:54"},"nativeSrc":"2116:55:54","nodeType":"YulIf","src":"2116:55:54"},{"nativeSrc":"2180:26:54","nodeType":"YulVariableDeclaration","src":"2180:26:54","value":{"arguments":[{"name":"_2","nativeSrc":"2203:2:54","nodeType":"YulIdentifier","src":"2203:2:54"}],"functionName":{"name":"calldataload","nativeSrc":"2190:12:54","nodeType":"YulIdentifier","src":"2190:12:54"},"nativeSrc":"2190:16:54","nodeType":"YulFunctionCall","src":"2190:16:54"},"variables":[{"name":"_3","nativeSrc":"2184:2:54","nodeType":"YulTypedName","src":"2184:2:54","type":""}]},{"body":{"nativeSrc":"2229:22:54","nodeType":"YulBlock","src":"2229:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2231:16:54","nodeType":"YulIdentifier","src":"2231:16:54"},"nativeSrc":"2231:18:54","nodeType":"YulFunctionCall","src":"2231:18:54"},"nativeSrc":"2231:18:54","nodeType":"YulExpressionStatement","src":"2231:18:54"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"2221:2:54","nodeType":"YulIdentifier","src":"2221:2:54"},{"name":"_1","nativeSrc":"2225:2:54","nodeType":"YulIdentifier","src":"2225:2:54"}],"functionName":{"name":"gt","nativeSrc":"2218:2:54","nodeType":"YulIdentifier","src":"2218:2:54"},"nativeSrc":"2218:10:54","nodeType":"YulFunctionCall","src":"2218:10:54"},"nativeSrc":"2215:36:54","nodeType":"YulIf","src":"2215:36:54"},{"nativeSrc":"2260:76:54","nodeType":"YulVariableDeclaration","src":"2260:76:54","value":{"kind":"number","nativeSrc":"2270:66:54","nodeType":"YulLiteral","src":"2270:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nativeSrc":"2264:2:54","nodeType":"YulTypedName","src":"2264:2:54","type":""}]},{"nativeSrc":"2345:23:54","nodeType":"YulVariableDeclaration","src":"2345:23:54","value":{"arguments":[{"kind":"number","nativeSrc":"2365:2:54","nodeType":"YulLiteral","src":"2365:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"2359:5:54","nodeType":"YulIdentifier","src":"2359:5:54"},"nativeSrc":"2359:9:54","nodeType":"YulFunctionCall","src":"2359:9:54"},"variables":[{"name":"memPtr","nativeSrc":"2349:6:54","nodeType":"YulTypedName","src":"2349:6:54","type":""}]},{"nativeSrc":"2377:71:54","nodeType":"YulVariableDeclaration","src":"2377:71:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"2399:6:54","nodeType":"YulIdentifier","src":"2399:6:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"2423:2:54","nodeType":"YulIdentifier","src":"2423:2:54"},{"kind":"number","nativeSrc":"2427:4:54","nodeType":"YulLiteral","src":"2427:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2419:3:54","nodeType":"YulIdentifier","src":"2419:3:54"},"nativeSrc":"2419:13:54","nodeType":"YulFunctionCall","src":"2419:13:54"},{"name":"_4","nativeSrc":"2434:2:54","nodeType":"YulIdentifier","src":"2434:2:54"}],"functionName":{"name":"and","nativeSrc":"2415:3:54","nodeType":"YulIdentifier","src":"2415:3:54"},"nativeSrc":"2415:22:54","nodeType":"YulFunctionCall","src":"2415:22:54"},{"kind":"number","nativeSrc":"2439:2:54","nodeType":"YulLiteral","src":"2439:2:54","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"2411:3:54","nodeType":"YulIdentifier","src":"2411:3:54"},"nativeSrc":"2411:31:54","nodeType":"YulFunctionCall","src":"2411:31:54"},{"name":"_4","nativeSrc":"2444:2:54","nodeType":"YulIdentifier","src":"2444:2:54"}],"functionName":{"name":"and","nativeSrc":"2407:3:54","nodeType":"YulIdentifier","src":"2407:3:54"},"nativeSrc":"2407:40:54","nodeType":"YulFunctionCall","src":"2407:40:54"}],"functionName":{"name":"add","nativeSrc":"2395:3:54","nodeType":"YulIdentifier","src":"2395:3:54"},"nativeSrc":"2395:53:54","nodeType":"YulFunctionCall","src":"2395:53:54"},"variables":[{"name":"newFreePtr","nativeSrc":"2381:10:54","nodeType":"YulTypedName","src":"2381:10:54","type":""}]},{"body":{"nativeSrc":"2507:22:54","nodeType":"YulBlock","src":"2507:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2509:16:54","nodeType":"YulIdentifier","src":"2509:16:54"},"nativeSrc":"2509:18:54","nodeType":"YulFunctionCall","src":"2509:18:54"},"nativeSrc":"2509:18:54","nodeType":"YulExpressionStatement","src":"2509:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2466:10:54","nodeType":"YulIdentifier","src":"2466:10:54"},{"name":"_1","nativeSrc":"2478:2:54","nodeType":"YulIdentifier","src":"2478:2:54"}],"functionName":{"name":"gt","nativeSrc":"2463:2:54","nodeType":"YulIdentifier","src":"2463:2:54"},"nativeSrc":"2463:18:54","nodeType":"YulFunctionCall","src":"2463:18:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2486:10:54","nodeType":"YulIdentifier","src":"2486:10:54"},{"name":"memPtr","nativeSrc":"2498:6:54","nodeType":"YulIdentifier","src":"2498:6:54"}],"functionName":{"name":"lt","nativeSrc":"2483:2:54","nodeType":"YulIdentifier","src":"2483:2:54"},"nativeSrc":"2483:22:54","nodeType":"YulFunctionCall","src":"2483:22:54"}],"functionName":{"name":"or","nativeSrc":"2460:2:54","nodeType":"YulIdentifier","src":"2460:2:54"},"nativeSrc":"2460:46:54","nodeType":"YulFunctionCall","src":"2460:46:54"},"nativeSrc":"2457:72:54","nodeType":"YulIf","src":"2457:72:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2545:2:54","nodeType":"YulLiteral","src":"2545:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2549:10:54","nodeType":"YulIdentifier","src":"2549:10:54"}],"functionName":{"name":"mstore","nativeSrc":"2538:6:54","nodeType":"YulIdentifier","src":"2538:6:54"},"nativeSrc":"2538:22:54","nodeType":"YulFunctionCall","src":"2538:22:54"},"nativeSrc":"2538:22:54","nodeType":"YulExpressionStatement","src":"2538:22:54"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2576:6:54","nodeType":"YulIdentifier","src":"2576:6:54"},{"name":"_3","nativeSrc":"2584:2:54","nodeType":"YulIdentifier","src":"2584:2:54"}],"functionName":{"name":"mstore","nativeSrc":"2569:6:54","nodeType":"YulIdentifier","src":"2569:6:54"},"nativeSrc":"2569:18:54","nodeType":"YulFunctionCall","src":"2569:18:54"},"nativeSrc":"2569:18:54","nodeType":"YulExpressionStatement","src":"2569:18:54"},{"body":{"nativeSrc":"2633:16:54","nodeType":"YulBlock","src":"2633:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2642:1:54","nodeType":"YulLiteral","src":"2642:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2645:1:54","nodeType":"YulLiteral","src":"2645:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2635:6:54","nodeType":"YulIdentifier","src":"2635:6:54"},"nativeSrc":"2635:12:54","nodeType":"YulFunctionCall","src":"2635:12:54"},"nativeSrc":"2635:12:54","nodeType":"YulExpressionStatement","src":"2635:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"2610:2:54","nodeType":"YulIdentifier","src":"2610:2:54"},{"name":"_3","nativeSrc":"2614:2:54","nodeType":"YulIdentifier","src":"2614:2:54"}],"functionName":{"name":"add","nativeSrc":"2606:3:54","nodeType":"YulIdentifier","src":"2606:3:54"},"nativeSrc":"2606:11:54","nodeType":"YulFunctionCall","src":"2606:11:54"},{"kind":"number","nativeSrc":"2619:2:54","nodeType":"YulLiteral","src":"2619:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2602:3:54","nodeType":"YulIdentifier","src":"2602:3:54"},"nativeSrc":"2602:20:54","nodeType":"YulFunctionCall","src":"2602:20:54"},{"name":"dataEnd","nativeSrc":"2624:7:54","nodeType":"YulIdentifier","src":"2624:7:54"}],"functionName":{"name":"gt","nativeSrc":"2599:2:54","nodeType":"YulIdentifier","src":"2599:2:54"},"nativeSrc":"2599:33:54","nodeType":"YulFunctionCall","src":"2599:33:54"},"nativeSrc":"2596:53:54","nodeType":"YulIf","src":"2596:53:54"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2675:6:54","nodeType":"YulIdentifier","src":"2675:6:54"},{"kind":"number","nativeSrc":"2683:2:54","nodeType":"YulLiteral","src":"2683:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2671:3:54","nodeType":"YulIdentifier","src":"2671:3:54"},"nativeSrc":"2671:15:54","nodeType":"YulFunctionCall","src":"2671:15:54"},{"arguments":[{"name":"_2","nativeSrc":"2692:2:54","nodeType":"YulIdentifier","src":"2692:2:54"},{"kind":"number","nativeSrc":"2696:2:54","nodeType":"YulLiteral","src":"2696:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2688:3:54","nodeType":"YulIdentifier","src":"2688:3:54"},"nativeSrc":"2688:11:54","nodeType":"YulFunctionCall","src":"2688:11:54"},{"name":"_3","nativeSrc":"2701:2:54","nodeType":"YulIdentifier","src":"2701:2:54"}],"functionName":{"name":"calldatacopy","nativeSrc":"2658:12:54","nodeType":"YulIdentifier","src":"2658:12:54"},"nativeSrc":"2658:46:54","nodeType":"YulFunctionCall","src":"2658:46:54"},"nativeSrc":"2658:46:54","nodeType":"YulExpressionStatement","src":"2658:46:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2728:6:54","nodeType":"YulIdentifier","src":"2728:6:54"},{"name":"_3","nativeSrc":"2736:2:54","nodeType":"YulIdentifier","src":"2736:2:54"}],"functionName":{"name":"add","nativeSrc":"2724:3:54","nodeType":"YulIdentifier","src":"2724:3:54"},"nativeSrc":"2724:15:54","nodeType":"YulFunctionCall","src":"2724:15:54"},{"kind":"number","nativeSrc":"2741:2:54","nodeType":"YulLiteral","src":"2741:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2720:3:54","nodeType":"YulIdentifier","src":"2720:3:54"},"nativeSrc":"2720:24:54","nodeType":"YulFunctionCall","src":"2720:24:54"},{"kind":"number","nativeSrc":"2746:1:54","nodeType":"YulLiteral","src":"2746:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2713:6:54","nodeType":"YulIdentifier","src":"2713:6:54"},"nativeSrc":"2713:35:54","nodeType":"YulFunctionCall","src":"2713:35:54"},"nativeSrc":"2713:35:54","nodeType":"YulExpressionStatement","src":"2713:35:54"},{"nativeSrc":"2757:16:54","nodeType":"YulAssignment","src":"2757:16:54","value":{"name":"memPtr","nativeSrc":"2767:6:54","nodeType":"YulIdentifier","src":"2767:6:54"},"variableNames":[{"name":"value2","nativeSrc":"2757:6:54","nodeType":"YulIdentifier","src":"2757:6:54"}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164t_addresst_bytes_memory_ptr","nativeSrc":"1428:1351:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1528:9:54","nodeType":"YulTypedName","src":"1528:9:54","type":""},{"name":"dataEnd","nativeSrc":"1539:7:54","nodeType":"YulTypedName","src":"1539:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1551:6:54","nodeType":"YulTypedName","src":"1551:6:54","type":""},{"name":"value1","nativeSrc":"1559:6:54","nodeType":"YulTypedName","src":"1559:6:54","type":""},{"name":"value2","nativeSrc":"1567:6:54","nodeType":"YulTypedName","src":"1567:6:54","type":""}],"src":"1428:1351:54"},{"body":{"nativeSrc":"2854:206:54","nodeType":"YulBlock","src":"2854:206:54","statements":[{"body":{"nativeSrc":"2900:16:54","nodeType":"YulBlock","src":"2900:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2909:1:54","nodeType":"YulLiteral","src":"2909:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2912:1:54","nodeType":"YulLiteral","src":"2912:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2902:6:54","nodeType":"YulIdentifier","src":"2902:6:54"},"nativeSrc":"2902:12:54","nodeType":"YulFunctionCall","src":"2902:12:54"},"nativeSrc":"2902:12:54","nodeType":"YulExpressionStatement","src":"2902:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2875:7:54","nodeType":"YulIdentifier","src":"2875:7:54"},{"name":"headStart","nativeSrc":"2884:9:54","nodeType":"YulIdentifier","src":"2884:9:54"}],"functionName":{"name":"sub","nativeSrc":"2871:3:54","nodeType":"YulIdentifier","src":"2871:3:54"},"nativeSrc":"2871:23:54","nodeType":"YulFunctionCall","src":"2871:23:54"},{"kind":"number","nativeSrc":"2896:2:54","nodeType":"YulLiteral","src":"2896:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2867:3:54","nodeType":"YulIdentifier","src":"2867:3:54"},"nativeSrc":"2867:32:54","nodeType":"YulFunctionCall","src":"2867:32:54"},"nativeSrc":"2864:52:54","nodeType":"YulIf","src":"2864:52:54"},{"nativeSrc":"2925:36:54","nodeType":"YulVariableDeclaration","src":"2925:36:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2951:9:54","nodeType":"YulIdentifier","src":"2951:9:54"}],"functionName":{"name":"calldataload","nativeSrc":"2938:12:54","nodeType":"YulIdentifier","src":"2938:12:54"},"nativeSrc":"2938:23:54","nodeType":"YulFunctionCall","src":"2938:23:54"},"variables":[{"name":"value","nativeSrc":"2929:5:54","nodeType":"YulTypedName","src":"2929:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3024:5:54","nodeType":"YulIdentifier","src":"3024:5:54"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"2970:53:54","nodeType":"YulIdentifier","src":"2970:53:54"},"nativeSrc":"2970:60:54","nodeType":"YulFunctionCall","src":"2970:60:54"},"nativeSrc":"2970:60:54","nodeType":"YulExpressionStatement","src":"2970:60:54"},{"nativeSrc":"3039:15:54","nodeType":"YulAssignment","src":"3039:15:54","value":{"name":"value","nativeSrc":"3049:5:54","nodeType":"YulIdentifier","src":"3049:5:54"},"variableNames":[{"name":"value0","nativeSrc":"3039:6:54","nodeType":"YulIdentifier","src":"3039:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2784:276:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2820:9:54","nodeType":"YulTypedName","src":"2820:9:54","type":""},{"name":"dataEnd","nativeSrc":"2831:7:54","nodeType":"YulTypedName","src":"2831:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2843:6:54","nodeType":"YulTypedName","src":"2843:6:54","type":""}],"src":"2784:276:54"},{"body":{"nativeSrc":"3256:122:54","nodeType":"YulBlock","src":"3256:122:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3273:3:54","nodeType":"YulIdentifier","src":"3273:3:54"},{"kind":"number","nativeSrc":"3278:66:54","nodeType":"YulLiteral","src":"3278:66:54","type":"","value":"0x5c60da1b00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"3266:6:54","nodeType":"YulIdentifier","src":"3266:6:54"},"nativeSrc":"3266:79:54","nodeType":"YulFunctionCall","src":"3266:79:54"},"nativeSrc":"3266:79:54","nodeType":"YulExpressionStatement","src":"3266:79:54"},{"nativeSrc":"3354:18:54","nodeType":"YulAssignment","src":"3354:18:54","value":{"arguments":[{"name":"pos","nativeSrc":"3365:3:54","nodeType":"YulIdentifier","src":"3365:3:54"},{"kind":"number","nativeSrc":"3370:1:54","nodeType":"YulLiteral","src":"3370:1:54","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"3361:3:54","nodeType":"YulIdentifier","src":"3361:3:54"},"nativeSrc":"3361:11:54","nodeType":"YulFunctionCall","src":"3361:11:54"},"variableNames":[{"name":"end","nativeSrc":"3354:3:54","nodeType":"YulIdentifier","src":"3354:3:54"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3065:313:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3240:3:54","nodeType":"YulTypedName","src":"3240:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3248:3:54","nodeType":"YulTypedName","src":"3248:3:54","type":""}],"src":"3065:313:54"},{"body":{"nativeSrc":"3472:199:54","nodeType":"YulBlock","src":"3472:199:54","statements":[{"body":{"nativeSrc":"3518:16:54","nodeType":"YulBlock","src":"3518:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3527:1:54","nodeType":"YulLiteral","src":"3527:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"3530:1:54","nodeType":"YulLiteral","src":"3530:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3520:6:54","nodeType":"YulIdentifier","src":"3520:6:54"},"nativeSrc":"3520:12:54","nodeType":"YulFunctionCall","src":"3520:12:54"},"nativeSrc":"3520:12:54","nodeType":"YulExpressionStatement","src":"3520:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3493:7:54","nodeType":"YulIdentifier","src":"3493:7:54"},{"name":"headStart","nativeSrc":"3502:9:54","nodeType":"YulIdentifier","src":"3502:9:54"}],"functionName":{"name":"sub","nativeSrc":"3489:3:54","nodeType":"YulIdentifier","src":"3489:3:54"},"nativeSrc":"3489:23:54","nodeType":"YulFunctionCall","src":"3489:23:54"},{"kind":"number","nativeSrc":"3514:2:54","nodeType":"YulLiteral","src":"3514:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3485:3:54","nodeType":"YulIdentifier","src":"3485:3:54"},"nativeSrc":"3485:32:54","nodeType":"YulFunctionCall","src":"3485:32:54"},"nativeSrc":"3482:52:54","nodeType":"YulIf","src":"3482:52:54"},{"nativeSrc":"3543:29:54","nodeType":"YulVariableDeclaration","src":"3543:29:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3562:9:54","nodeType":"YulIdentifier","src":"3562:9:54"}],"functionName":{"name":"mload","nativeSrc":"3556:5:54","nodeType":"YulIdentifier","src":"3556:5:54"},"nativeSrc":"3556:16:54","nodeType":"YulFunctionCall","src":"3556:16:54"},"variables":[{"name":"value","nativeSrc":"3547:5:54","nodeType":"YulTypedName","src":"3547:5:54","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3635:5:54","nodeType":"YulIdentifier","src":"3635:5:54"}],"functionName":{"name":"validator_revert_contract_TransparentUpgradeableProxy","nativeSrc":"3581:53:54","nodeType":"YulIdentifier","src":"3581:53:54"},"nativeSrc":"3581:60:54","nodeType":"YulFunctionCall","src":"3581:60:54"},"nativeSrc":"3581:60:54","nodeType":"YulExpressionStatement","src":"3581:60:54"},{"nativeSrc":"3650:15:54","nodeType":"YulAssignment","src":"3650:15:54","value":{"name":"value","nativeSrc":"3660:5:54","nodeType":"YulIdentifier","src":"3660:5:54"},"variableNames":[{"name":"value0","nativeSrc":"3650:6:54","nodeType":"YulIdentifier","src":"3650:6:54"}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nativeSrc":"3383:288:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3438:9:54","nodeType":"YulTypedName","src":"3438:9:54","type":""},{"name":"dataEnd","nativeSrc":"3449:7:54","nodeType":"YulTypedName","src":"3449:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3461:6:54","nodeType":"YulTypedName","src":"3461:6:54","type":""}],"src":"3383:288:54"},{"body":{"nativeSrc":"3850:182:54","nodeType":"YulBlock","src":"3850:182:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3867:9:54","nodeType":"YulIdentifier","src":"3867:9:54"},{"kind":"number","nativeSrc":"3878:2:54","nodeType":"YulLiteral","src":"3878:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3860:6:54","nodeType":"YulIdentifier","src":"3860:6:54"},"nativeSrc":"3860:21:54","nodeType":"YulFunctionCall","src":"3860:21:54"},"nativeSrc":"3860:21:54","nodeType":"YulExpressionStatement","src":"3860:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3901:9:54","nodeType":"YulIdentifier","src":"3901:9:54"},{"kind":"number","nativeSrc":"3912:2:54","nodeType":"YulLiteral","src":"3912:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3897:3:54","nodeType":"YulIdentifier","src":"3897:3:54"},"nativeSrc":"3897:18:54","nodeType":"YulFunctionCall","src":"3897:18:54"},{"kind":"number","nativeSrc":"3917:2:54","nodeType":"YulLiteral","src":"3917:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3890:6:54","nodeType":"YulIdentifier","src":"3890:6:54"},"nativeSrc":"3890:30:54","nodeType":"YulFunctionCall","src":"3890:30:54"},"nativeSrc":"3890:30:54","nodeType":"YulExpressionStatement","src":"3890:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3940:9:54","nodeType":"YulIdentifier","src":"3940:9:54"},{"kind":"number","nativeSrc":"3951:2:54","nodeType":"YulLiteral","src":"3951:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3936:3:54","nodeType":"YulIdentifier","src":"3936:3:54"},"nativeSrc":"3936:18:54","nodeType":"YulFunctionCall","src":"3936:18:54"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"3956:34:54","nodeType":"YulLiteral","src":"3956:34:54","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"3929:6:54","nodeType":"YulIdentifier","src":"3929:6:54"},"nativeSrc":"3929:62:54","nodeType":"YulFunctionCall","src":"3929:62:54"},"nativeSrc":"3929:62:54","nodeType":"YulExpressionStatement","src":"3929:62:54"},{"nativeSrc":"4000:26:54","nodeType":"YulAssignment","src":"4000:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"4012:9:54","nodeType":"YulIdentifier","src":"4012:9:54"},{"kind":"number","nativeSrc":"4023:2:54","nodeType":"YulLiteral","src":"4023:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4008:3:54","nodeType":"YulIdentifier","src":"4008:3:54"},"nativeSrc":"4008:18:54","nodeType":"YulFunctionCall","src":"4008:18:54"},"variableNames":[{"name":"tail","nativeSrc":"4000:4:54","nodeType":"YulIdentifier","src":"4000:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3676:356:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3827:9:54","nodeType":"YulTypedName","src":"3827:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3841:4:54","nodeType":"YulTypedName","src":"3841:4:54","type":""}],"src":"3676:356:54"},{"body":{"nativeSrc":"4184:578:54","nodeType":"YulBlock","src":"4184:578:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4201:9:54","nodeType":"YulIdentifier","src":"4201:9:54"},{"arguments":[{"name":"value0","nativeSrc":"4216:6:54","nodeType":"YulIdentifier","src":"4216:6:54"},{"kind":"number","nativeSrc":"4224:42:54","nodeType":"YulLiteral","src":"4224:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4212:3:54","nodeType":"YulIdentifier","src":"4212:3:54"},"nativeSrc":"4212:55:54","nodeType":"YulFunctionCall","src":"4212:55:54"}],"functionName":{"name":"mstore","nativeSrc":"4194:6:54","nodeType":"YulIdentifier","src":"4194:6:54"},"nativeSrc":"4194:74:54","nodeType":"YulFunctionCall","src":"4194:74:54"},"nativeSrc":"4194:74:54","nodeType":"YulExpressionStatement","src":"4194:74:54"},{"nativeSrc":"4277:12:54","nodeType":"YulVariableDeclaration","src":"4277:12:54","value":{"kind":"number","nativeSrc":"4287:2:54","nodeType":"YulLiteral","src":"4287:2:54","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"4281:2:54","nodeType":"YulTypedName","src":"4281:2:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4309:9:54","nodeType":"YulIdentifier","src":"4309:9:54"},{"kind":"number","nativeSrc":"4320:2:54","nodeType":"YulLiteral","src":"4320:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4305:3:54","nodeType":"YulIdentifier","src":"4305:3:54"},"nativeSrc":"4305:18:54","nodeType":"YulFunctionCall","src":"4305:18:54"},{"kind":"number","nativeSrc":"4325:2:54","nodeType":"YulLiteral","src":"4325:2:54","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"4298:6:54","nodeType":"YulIdentifier","src":"4298:6:54"},"nativeSrc":"4298:30:54","nodeType":"YulFunctionCall","src":"4298:30:54"},"nativeSrc":"4298:30:54","nodeType":"YulExpressionStatement","src":"4298:30:54"},{"nativeSrc":"4337:27:54","nodeType":"YulVariableDeclaration","src":"4337:27:54","value":{"arguments":[{"name":"value1","nativeSrc":"4357:6:54","nodeType":"YulIdentifier","src":"4357:6:54"}],"functionName":{"name":"mload","nativeSrc":"4351:5:54","nodeType":"YulIdentifier","src":"4351:5:54"},"nativeSrc":"4351:13:54","nodeType":"YulFunctionCall","src":"4351:13:54"},"variables":[{"name":"length","nativeSrc":"4341:6:54","nodeType":"YulTypedName","src":"4341:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4384:9:54","nodeType":"YulIdentifier","src":"4384:9:54"},{"kind":"number","nativeSrc":"4395:2:54","nodeType":"YulLiteral","src":"4395:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4380:3:54","nodeType":"YulIdentifier","src":"4380:3:54"},"nativeSrc":"4380:18:54","nodeType":"YulFunctionCall","src":"4380:18:54"},{"name":"length","nativeSrc":"4400:6:54","nodeType":"YulIdentifier","src":"4400:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4373:6:54","nodeType":"YulIdentifier","src":"4373:6:54"},"nativeSrc":"4373:34:54","nodeType":"YulFunctionCall","src":"4373:34:54"},"nativeSrc":"4373:34:54","nodeType":"YulExpressionStatement","src":"4373:34:54"},{"nativeSrc":"4416:10:54","nodeType":"YulVariableDeclaration","src":"4416:10:54","value":{"kind":"number","nativeSrc":"4425:1:54","nodeType":"YulLiteral","src":"4425:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4420:1:54","nodeType":"YulTypedName","src":"4420:1:54","type":""}]},{"body":{"nativeSrc":"4485:90:54","nodeType":"YulBlock","src":"4485:90:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4514:9:54","nodeType":"YulIdentifier","src":"4514:9:54"},{"name":"i","nativeSrc":"4525:1:54","nodeType":"YulIdentifier","src":"4525:1:54"}],"functionName":{"name":"add","nativeSrc":"4510:3:54","nodeType":"YulIdentifier","src":"4510:3:54"},"nativeSrc":"4510:17:54","nodeType":"YulFunctionCall","src":"4510:17:54"},{"kind":"number","nativeSrc":"4529:2:54","nodeType":"YulLiteral","src":"4529:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4506:3:54","nodeType":"YulIdentifier","src":"4506:3:54"},"nativeSrc":"4506:26:54","nodeType":"YulFunctionCall","src":"4506:26:54"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"4548:6:54","nodeType":"YulIdentifier","src":"4548:6:54"},{"name":"i","nativeSrc":"4556:1:54","nodeType":"YulIdentifier","src":"4556:1:54"}],"functionName":{"name":"add","nativeSrc":"4544:3:54","nodeType":"YulIdentifier","src":"4544:3:54"},"nativeSrc":"4544:14:54","nodeType":"YulFunctionCall","src":"4544:14:54"},{"name":"_1","nativeSrc":"4560:2:54","nodeType":"YulIdentifier","src":"4560:2:54"}],"functionName":{"name":"add","nativeSrc":"4540:3:54","nodeType":"YulIdentifier","src":"4540:3:54"},"nativeSrc":"4540:23:54","nodeType":"YulFunctionCall","src":"4540:23:54"}],"functionName":{"name":"mload","nativeSrc":"4534:5:54","nodeType":"YulIdentifier","src":"4534:5:54"},"nativeSrc":"4534:30:54","nodeType":"YulFunctionCall","src":"4534:30:54"}],"functionName":{"name":"mstore","nativeSrc":"4499:6:54","nodeType":"YulIdentifier","src":"4499:6:54"},"nativeSrc":"4499:66:54","nodeType":"YulFunctionCall","src":"4499:66:54"},"nativeSrc":"4499:66:54","nodeType":"YulExpressionStatement","src":"4499:66:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4446:1:54","nodeType":"YulIdentifier","src":"4446:1:54"},{"name":"length","nativeSrc":"4449:6:54","nodeType":"YulIdentifier","src":"4449:6:54"}],"functionName":{"name":"lt","nativeSrc":"4443:2:54","nodeType":"YulIdentifier","src":"4443:2:54"},"nativeSrc":"4443:13:54","nodeType":"YulFunctionCall","src":"4443:13:54"},"nativeSrc":"4435:140:54","nodeType":"YulForLoop","post":{"nativeSrc":"4457:19:54","nodeType":"YulBlock","src":"4457:19:54","statements":[{"nativeSrc":"4459:15:54","nodeType":"YulAssignment","src":"4459:15:54","value":{"arguments":[{"name":"i","nativeSrc":"4468:1:54","nodeType":"YulIdentifier","src":"4468:1:54"},{"name":"_1","nativeSrc":"4471:2:54","nodeType":"YulIdentifier","src":"4471:2:54"}],"functionName":{"name":"add","nativeSrc":"4464:3:54","nodeType":"YulIdentifier","src":"4464:3:54"},"nativeSrc":"4464:10:54","nodeType":"YulFunctionCall","src":"4464:10:54"},"variableNames":[{"name":"i","nativeSrc":"4459:1:54","nodeType":"YulIdentifier","src":"4459:1:54"}]}]},"pre":{"nativeSrc":"4439:3:54","nodeType":"YulBlock","src":"4439:3:54","statements":[]},"src":"4435:140:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4599:9:54","nodeType":"YulIdentifier","src":"4599:9:54"},{"name":"length","nativeSrc":"4610:6:54","nodeType":"YulIdentifier","src":"4610:6:54"}],"functionName":{"name":"add","nativeSrc":"4595:3:54","nodeType":"YulIdentifier","src":"4595:3:54"},"nativeSrc":"4595:22:54","nodeType":"YulFunctionCall","src":"4595:22:54"},{"kind":"number","nativeSrc":"4619:2:54","nodeType":"YulLiteral","src":"4619:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4591:3:54","nodeType":"YulIdentifier","src":"4591:3:54"},"nativeSrc":"4591:31:54","nodeType":"YulFunctionCall","src":"4591:31:54"},{"kind":"number","nativeSrc":"4624:1:54","nodeType":"YulLiteral","src":"4624:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4584:6:54","nodeType":"YulIdentifier","src":"4584:6:54"},"nativeSrc":"4584:42:54","nodeType":"YulFunctionCall","src":"4584:42:54"},"nativeSrc":"4584:42:54","nodeType":"YulExpressionStatement","src":"4584:42:54"},{"nativeSrc":"4635:121:54","nodeType":"YulAssignment","src":"4635:121:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4651:9:54","nodeType":"YulIdentifier","src":"4651:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4670:6:54","nodeType":"YulIdentifier","src":"4670:6:54"},{"kind":"number","nativeSrc":"4678:2:54","nodeType":"YulLiteral","src":"4678:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4666:3:54","nodeType":"YulIdentifier","src":"4666:3:54"},"nativeSrc":"4666:15:54","nodeType":"YulFunctionCall","src":"4666:15:54"},{"kind":"number","nativeSrc":"4683:66:54","nodeType":"YulLiteral","src":"4683:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4662:3:54","nodeType":"YulIdentifier","src":"4662:3:54"},"nativeSrc":"4662:88:54","nodeType":"YulFunctionCall","src":"4662:88:54"}],"functionName":{"name":"add","nativeSrc":"4647:3:54","nodeType":"YulIdentifier","src":"4647:3:54"},"nativeSrc":"4647:104:54","nodeType":"YulFunctionCall","src":"4647:104:54"},{"kind":"number","nativeSrc":"4753:2:54","nodeType":"YulLiteral","src":"4753:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4643:3:54","nodeType":"YulIdentifier","src":"4643:3:54"},"nativeSrc":"4643:113:54","nodeType":"YulFunctionCall","src":"4643:113:54"},"variableNames":[{"name":"tail","nativeSrc":"4635:4:54","nodeType":"YulIdentifier","src":"4635:4:54"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4037:725:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4145:9:54","nodeType":"YulTypedName","src":"4145:9:54","type":""},{"name":"value1","nativeSrc":"4156:6:54","nodeType":"YulTypedName","src":"4156:6:54","type":""},{"name":"value0","nativeSrc":"4164:6:54","nodeType":"YulTypedName","src":"4164:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4175:4:54","nodeType":"YulTypedName","src":"4175:4:54","type":""}],"src":"4037:725:54"},{"body":{"nativeSrc":"4941:228:54","nodeType":"YulBlock","src":"4941:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4958:9:54","nodeType":"YulIdentifier","src":"4958:9:54"},{"kind":"number","nativeSrc":"4969:2:54","nodeType":"YulLiteral","src":"4969:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4951:6:54","nodeType":"YulIdentifier","src":"4951:6:54"},"nativeSrc":"4951:21:54","nodeType":"YulFunctionCall","src":"4951:21:54"},"nativeSrc":"4951:21:54","nodeType":"YulExpressionStatement","src":"4951:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4992:9:54","nodeType":"YulIdentifier","src":"4992:9:54"},{"kind":"number","nativeSrc":"5003:2:54","nodeType":"YulLiteral","src":"5003:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4988:3:54","nodeType":"YulIdentifier","src":"4988:3:54"},"nativeSrc":"4988:18:54","nodeType":"YulFunctionCall","src":"4988:18:54"},{"kind":"number","nativeSrc":"5008:2:54","nodeType":"YulLiteral","src":"5008:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"4981:6:54","nodeType":"YulIdentifier","src":"4981:6:54"},"nativeSrc":"4981:30:54","nodeType":"YulFunctionCall","src":"4981:30:54"},"nativeSrc":"4981:30:54","nodeType":"YulExpressionStatement","src":"4981:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5031:9:54","nodeType":"YulIdentifier","src":"5031:9:54"},{"kind":"number","nativeSrc":"5042:2:54","nodeType":"YulLiteral","src":"5042:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5027:3:54","nodeType":"YulIdentifier","src":"5027:3:54"},"nativeSrc":"5027:18:54","nodeType":"YulFunctionCall","src":"5027:18:54"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"5047:34:54","nodeType":"YulLiteral","src":"5047:34:54","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"5020:6:54","nodeType":"YulIdentifier","src":"5020:6:54"},"nativeSrc":"5020:62:54","nodeType":"YulFunctionCall","src":"5020:62:54"},"nativeSrc":"5020:62:54","nodeType":"YulExpressionStatement","src":"5020:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5102:9:54","nodeType":"YulIdentifier","src":"5102:9:54"},{"kind":"number","nativeSrc":"5113:2:54","nodeType":"YulLiteral","src":"5113:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5098:3:54","nodeType":"YulIdentifier","src":"5098:3:54"},"nativeSrc":"5098:18:54","nodeType":"YulFunctionCall","src":"5098:18:54"},{"hexValue":"646472657373","kind":"string","nativeSrc":"5118:8:54","nodeType":"YulLiteral","src":"5118:8:54","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"5091:6:54","nodeType":"YulIdentifier","src":"5091:6:54"},"nativeSrc":"5091:36:54","nodeType":"YulFunctionCall","src":"5091:36:54"},"nativeSrc":"5091:36:54","nodeType":"YulExpressionStatement","src":"5091:36:54"},{"nativeSrc":"5136:27:54","nodeType":"YulAssignment","src":"5136:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"5148:9:54","nodeType":"YulIdentifier","src":"5148:9:54"},{"kind":"number","nativeSrc":"5159:3:54","nodeType":"YulLiteral","src":"5159:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5144:3:54","nodeType":"YulIdentifier","src":"5144:3:54"},"nativeSrc":"5144:19:54","nodeType":"YulFunctionCall","src":"5144:19:54"},"variableNames":[{"name":"tail","nativeSrc":"5136:4:54","nodeType":"YulIdentifier","src":"5136:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4767:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4918:9:54","nodeType":"YulTypedName","src":"4918:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4932:4:54","nodeType":"YulTypedName","src":"4932:4:54","type":""}],"src":"4767:402:54"},{"body":{"nativeSrc":"5365:122:54","nodeType":"YulBlock","src":"5365:122:54","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5382:3:54","nodeType":"YulIdentifier","src":"5382:3:54"},{"kind":"number","nativeSrc":"5387:66:54","nodeType":"YulLiteral","src":"5387:66:54","type":"","value":"0xf851a44000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"5375:6:54","nodeType":"YulIdentifier","src":"5375:6:54"},"nativeSrc":"5375:79:54","nodeType":"YulFunctionCall","src":"5375:79:54"},"nativeSrc":"5375:79:54","nodeType":"YulExpressionStatement","src":"5375:79:54"},{"nativeSrc":"5463:18:54","nodeType":"YulAssignment","src":"5463:18:54","value":{"arguments":[{"name":"pos","nativeSrc":"5474:3:54","nodeType":"YulIdentifier","src":"5474:3:54"},{"kind":"number","nativeSrc":"5479:1:54","nodeType":"YulLiteral","src":"5479:1:54","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"5470:3:54","nodeType":"YulIdentifier","src":"5470:3:54"},"nativeSrc":"5470:11:54","nodeType":"YulFunctionCall","src":"5470:11:54"},"variableNames":[{"name":"end","nativeSrc":"5463:3:54","nodeType":"YulIdentifier","src":"5463:3:54"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5174:313:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5349:3:54","nodeType":"YulTypedName","src":"5349:3:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5357:3:54","nodeType":"YulTypedName","src":"5357:3:54","type":""}],"src":"5174:313:54"}]},"contents":"{\n    { }\n    function validator_revert_contract_TransparentUpgradeableProxy(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_contract_TransparentUpgradeableProxy(value_1)\n        value1 := value_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$10164t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_contract_TransparentUpgradeableProxy(value_1)\n        value1 := value_1\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n        mstore(add(add(memPtr, _3), 32), 0)\n        value2 := memPtr\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n    }\n    function abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    {\n        mstore(pos, 0x5c60da1b00000000000000000000000000000000000000000000000000000000)\n        end := add(pos, 4)\n    }\n    function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_TransparentUpgradeableProxy(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\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    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        let _1 := 32\n        mstore(add(headStart, 32), 64)\n        let length := mload(value1)\n        mstore(add(headStart, 64), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n        }\n        mstore(add(add(headStart, length), 96), 0)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    {\n        mstore(pos, 0xf851a44000000000000000000000000000000000000000000000000000000000)\n        end := add(pos, 4)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461012b57806399a88ec41461013e578063f2fde38b1461015e578063f3b7dead1461017e57600080fd5b8063204e1c7a14610080578063715018a6146100c95780637eff275e146100e05780638da5cb5b14610100575b600080fd5b34801561008c57600080fd5b506100a061009b3660046107e4565b61019e565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d557600080fd5b506100de610255565b005b3480156100ec57600080fd5b506100de6100fb366004610808565b6102e7565b34801561010c57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166100a0565b6100de610139366004610870565b6103ee565b34801561014a57600080fd5b506100de610159366004610808565b6104fc565b34801561016a57600080fd5b506100de6101793660046107e4565b6105d1565b34801561018a57600080fd5b506100a06101993660046107e4565b610701565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d8060008114610225576040519150601f19603f3d011682016040523d82523d6000602084013e61022a565b606091505b50915091508161023957600080fd5b8080602001905181019061024d9190610964565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6102e5600061074d565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690638f283970906024015b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461046f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634f1ef2869034906104c59086908690600401610981565b6000604051808303818588803b1580156104de57600080fd5b505af11580156104f2573d6000803e3d6000fd5b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b6040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152831690633659cfe6906024016103b8565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b73ffffffffffffffffffffffffffffffffffffffff81166106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d2565b6106fe8161074d565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff166040516101ea907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146106fe57600080fd5b6000602082840312156107f657600080fd5b8135610801816107c2565b9392505050565b6000806040838503121561081b57600080fd5b8235610826816107c2565b91506020830135610836816107c2565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561088557600080fd5b8335610890816107c2565b925060208401356108a0816107c2565b9150604084013567ffffffffffffffff808211156108bd57600080fd5b818601915086601f8301126108d157600080fd5b8135818111156108e3576108e3610841565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561092957610929610841565b8160405282815289602084870101111561094257600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561097657600080fd5b8151610801816107c2565b73ffffffffffffffffffffffffffffffffffffffff831681526000602060406020840152835180604085015260005b818110156109cc578581018301518582016060015282016109b0565b5060006060828601015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010192505050939250505056fea2646970667358221220c8b87e24bc510b348206f64f4e9e1d933af610bf37c2ebe141148cb2bdd2610264736f6c63430008190033","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 0x12B JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x100 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 0x7E4 JUMP JUMPDEST PUSH2 0x19E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x255 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0xFB CALLDATASIZE PUSH1 0x4 PUSH2 0x808 JUMP JUMPDEST PUSH2 0x2E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA0 JUMP JUMPDEST PUSH2 0xDE PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x870 JUMP JUMPDEST PUSH2 0x3EE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x159 CALLDATASIZE PUSH1 0x4 PUSH2 0x808 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH2 0x179 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x5D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x199 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x701 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP1 PUSH32 0x5C60DA1B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x225 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 0x22A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x964 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x2DB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2E5 PUSH1 0x0 PUSH2 0x74D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x368 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8F28397000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x46F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x4F1EF28600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x4C5 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x981 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x57D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3659CFE600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH1 0x24 ADD PUSH2 0x3B8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x652 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x6F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0x6FE DUP2 PUSH2 0x74D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1EA SWAP1 PUSH32 0xF851A44000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 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 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x801 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x81B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x826 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x836 DUP2 PUSH2 0x7C2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x885 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x890 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x8A0 DUP2 PUSH2 0x7C2 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x8BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8E3 JUMPI PUSH2 0x8E3 PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x929 JUMPI PUSH2 0x929 PUSH2 0x841 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x942 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x801 DUP2 PUSH2 0x7C2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0x40 PUSH1 0x20 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CC JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0x9B0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x60 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x60 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 0xB8 PUSH31 0x24BC510B348206F64F4E9E1D933AF610BF37C2EBE141148CB2BDD261026473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"435:2470:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;701:437;;;;;;;;;;-1:-1:-1;701:437:48;;;;;:::i;:::-;;:::i;:::-;;;696:42:54;684:55;;;666:74;;654:2;639:18;701:437:48;;;;;;;1689:101:42;;;;;;;;;;;;;:::i;:::-;;1891:148:48;;;;;;;;;;-1:-1:-1;1891:148:48;;;;;:::i;:::-;;:::i;1057:85:42:-;;;;;;;;;;-1:-1:-1;1103:7:42;1129:6;;;1057:85;;2659:244:48;;;;;;:::i;:::-;;:::i;2244:149::-;;;;;;;;;;-1:-1:-1;2244:149:48;;;;;:::i;:::-;;:::i;1939:198:42:-;;;;;;;;;;-1:-1:-1;1939:198:42;;;;;:::i;:::-;;:::i;1298:419:48:-;;;;;;;;;;-1:-1:-1;1298:419:48;;;;;:::i;:::-;;:::i;701:437::-;797:7;974:12;988:23;1023:5;1015:25;;:40;;;;3278:66:54;3266:79;;3370:1;3361:11;;3065:313;1015:40:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:82;;;;1073:7;1065:16;;;;;;1109:10;1098:33;;;;;;;;;;;;:::i;:::-;1091:40;701:437;-1:-1:-1;;;;701:437:48:o;1689:101:42:-;1103:7;1129:6;1269:23;1129:6;719:10:51;1269:23:42;1261:68;;;;;;;3878:2:54;1261:68:42;;;3860:21:54;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:42;;;;;;;;;1753:30:::1;1780:1;1753:18;:30::i;:::-;1689:101::o:0;1891:148:48:-;1103:7:42;1129:6;1269:23;1129:6;719:10:51;1269:23:42;1261:68;;;;;;;3878:2:54;1261:68:42;;;3860:21:54;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:42;3676:356:54;1261:68:42;2005:27:48::1;::::0;;;;:17:::1;684:55:54::0;;;2005:27:48::1;::::0;::::1;666:74:54::0;2005:17:48;::::1;::::0;::::1;::::0;639:18:54;;2005:27:48::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1891:148:::0;;:::o;2659:244::-;1103:7:42;1129:6;1269:23;1129:6;719:10:51;1269:23:42;1261:68;;;;;;;3878:2:54;1261:68:42;;;3860:21:54;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:42;3676:356:54;1261:68:42;2834:62:48::1;::::0;;;;:22:::1;::::0;::::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:42;1129:6;1269:23;1129:6;719:10:51;1269:23:42;1261:68;;;;;;;3878:2:54;1261:68:42;;;3860:21:54;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:42;3676:356:54;1261:68:42;2355:31:48::1;::::0;;;;:15:::1;684:55:54::0;;;2355:31:48::1;::::0;::::1;666:74:54::0;2355:15:48;::::1;::::0;::::1;::::0;639:18:54;;2355:31:48::1;520:226:54::0;1939:198:42;1103:7;1129:6;1269:23;1129:6;719:10:51;1269:23:42;1261:68;;;;;;;3878:2:54;1261:68:42;;;3860:21:54;;;3897:18;;;3890:30;3956:34;3936:18;;;3929:62;4008:18;;1261:68:42;3676:356:54;1261:68:42;2027:22:::1;::::0;::::1;2019:73;;;::::0;::::1;::::0;;4969:2:54;2019:73:42::1;::::0;::::1;4951:21:54::0;5008:2;4988:18;;;4981:30;5047:34;5027:18;;;5020:62;5118:8;5098:18;;;5091:36;5144:19;;2019:73:42::1;4767:402:54::0;2019:73:42::1;2102:28;2121:8;2102:18;:28::i;:::-;1939:198:::0;:::o;1298:419:48:-;1385:7;1553:12;1567:23;1602:5;1594:25;;:40;;;;5387:66:54;5375:79;;5479:1;5470:11;;5174:313;2291:187:42;2364:16;2383:6;;;2399:17;;;;;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;14:183:54:-;129:42;122:5;118:54;111:5;108:65;98:93;;187:1;184;177:12;202:313;298:6;351:2;339:9;330:7;326:23;322:32;319:52;;;367:1;364;357:12;319:52;406:9;393:23;425:60;479:5;425:60;:::i;:::-;504:5;202:313;-1:-1:-1;;;202:313:54:o;751:483::-;856:6;864;917:2;905:9;896:7;892:23;888:32;885:52;;;933:1;930;923:12;885:52;972:9;959:23;991:60;1045:5;991:60;:::i;:::-;1070:5;-1:-1:-1;1127:2:54;1112:18;;1099:32;1140:62;1099:32;1140:62;:::i;:::-;1221:7;1211:17;;;751:483;;;;;:::o;1239:184::-;1291:77;1288:1;1281:88;1388:4;1385:1;1378:15;1412:4;1409:1;1402:15;1428:1351;1551:6;1559;1567;1620:2;1608:9;1599:7;1595:23;1591:32;1588:52;;;1636:1;1633;1626:12;1588:52;1675:9;1662:23;1694:60;1748:5;1694:60;:::i;:::-;1773:5;-1:-1:-1;1830:2:54;1815:18;;1802:32;1843:62;1802:32;1843:62;:::i;:::-;1924:7;-1:-1:-1;1982:2:54;1967:18;;1954:32;2005:18;2035:14;;;2032:34;;;2062:1;2059;2052:12;2032:34;2100:6;2089:9;2085:22;2075:32;;2145:7;2138:4;2134:2;2130:13;2126:27;2116:55;;2167:1;2164;2157:12;2116:55;2203:2;2190:16;2225:2;2221;2218:10;2215:36;;;2231:18;;:::i;:::-;2365:2;2359:9;2427:4;2419:13;;2270:66;2415:22;;;2439:2;2411:31;2407:40;2395:53;;;2463:18;;;2483:22;;;2460:46;2457:72;;;2509:18;;:::i;:::-;2549:10;2545:2;2538:22;2584:2;2576:6;2569:18;2624:7;2619:2;2614;2610;2606:11;2602:20;2599:33;2596:53;;;2645:1;2642;2635:12;2596:53;2701:2;2696;2692;2688:11;2683:2;2675:6;2671:15;2658:46;2746:1;2741:2;2736;2728:6;2724:15;2720:24;2713:35;2767:6;2757:16;;;;;;;1428:1351;;;;;:::o;3383:288::-;3461:6;3514:2;3502:9;3493:7;3489:23;3485:32;3482:52;;;3530:1;3527;3520:12;3482:52;3562:9;3556:16;3581:60;3635:5;3581:60;:::i;4037:725::-;4224:42;4216:6;4212:55;4201:9;4194:74;4175:4;4287:2;4325;4320;4309:9;4305:18;4298:30;4357:6;4351:13;4400:6;4395:2;4384:9;4380:18;4373:34;4425:1;4435:140;4449:6;4446:1;4443:13;4435:140;;;4544:14;;;4540:23;;4534:30;4510:17;;;4529:2;4506:26;4499:66;4464:10;;4435:140;;;4439:3;4624:1;4619:2;4610:6;4599:9;4595:22;4591:31;4584:42;4753:2;4683:66;4678:2;4670:6;4666:15;4662:88;4651:9;4647:104;4643:113;4635:121;;;;4037:725;;;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"525200","executionCost":"infinite","totalCost":"infinite"},"external":{"changeProxyAdmin(address,address)":"infinite","getProxyAdmin(address)":"infinite","getProxyImplementation(address)":"infinite","owner()":"2362","renounceOwnership()":"28098","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\":{\"enabled\":true,\"runs\":10000},\"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":9314,"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":{"@_10041":{"entryPoint":null,"id":10041,"parameterSlots":3,"returnSlots":0},"@_9462":{"entryPoint":null,"id":9462,"parameterSlots":2,"returnSlots":0},"@_changeAdmin_9696":{"entryPoint":254,"id":9696,"parameterSlots":1,"returnSlots":0},"@_getAdmin_9653":{"entryPoint":null,"id":9653,"parameterSlots":0,"returnSlots":1},"@_setAdmin_9679":{"entryPoint":474,"id":9679,"parameterSlots":1,"returnSlots":0},"@_setImplementation_9531":{"entryPoint":630,"id":9531,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9576":{"entryPoint":210,"id":9576,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9546":{"entryPoint":364,"id":9546,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_10392":{"entryPoint":428,"id":10392,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_10427":{"entryPoint":760,"id":10427,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10507":{"entryPoint":null,"id":10507,"parameterSlots":1,"returnSlots":1},"@isContract_10182":{"entryPoint":null,"id":10182,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_10458":{"entryPoint":984,"id":10458,"parameterSlots":3,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":1041,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1127,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1390,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1418,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1335,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1091,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x01":{"entryPoint":1368,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1069,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4243:54","nodeType":"YulBlock","src":"0:4243:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"74:117:54","nodeType":"YulBlock","src":"74:117:54","statements":[{"nativeSrc":"84:22:54","nodeType":"YulAssignment","src":"84:22:54","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:54","nodeType":"YulIdentifier","src":"99:6:54"}],"functionName":{"name":"mload","nativeSrc":"93:5:54","nodeType":"YulIdentifier","src":"93:5:54"},"nativeSrc":"93:13:54","nodeType":"YulFunctionCall","src":"93:13:54"},"variableNames":[{"name":"value","nativeSrc":"84:5:54","nodeType":"YulIdentifier","src":"84:5:54"}]},{"body":{"nativeSrc":"169:16:54","nodeType":"YulBlock","src":"169:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:54","nodeType":"YulLiteral","src":"178:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:54","nodeType":"YulLiteral","src":"181:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:54","nodeType":"YulIdentifier","src":"171:6:54"},"nativeSrc":"171:12:54","nodeType":"YulFunctionCall","src":"171:12:54"},"nativeSrc":"171:12:54","nodeType":"YulExpressionStatement","src":"171:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:54","nodeType":"YulIdentifier","src":"128:5:54"},{"arguments":[{"name":"value","nativeSrc":"139:5:54","nodeType":"YulIdentifier","src":"139:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:54","nodeType":"YulLiteral","src":"154:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:54","nodeType":"YulLiteral","src":"159:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:54","nodeType":"YulIdentifier","src":"150:3:54"},"nativeSrc":"150:11:54","nodeType":"YulFunctionCall","src":"150:11:54"},{"kind":"number","nativeSrc":"163:1:54","nodeType":"YulLiteral","src":"163:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:54","nodeType":"YulIdentifier","src":"146:3:54"},"nativeSrc":"146:19:54","nodeType":"YulFunctionCall","src":"146:19:54"}],"functionName":{"name":"and","nativeSrc":"135:3:54","nodeType":"YulIdentifier","src":"135:3:54"},"nativeSrc":"135:31:54","nodeType":"YulFunctionCall","src":"135:31:54"}],"functionName":{"name":"eq","nativeSrc":"125:2:54","nodeType":"YulIdentifier","src":"125:2:54"},"nativeSrc":"125:42:54","nodeType":"YulFunctionCall","src":"125:42:54"}],"functionName":{"name":"iszero","nativeSrc":"118:6:54","nodeType":"YulIdentifier","src":"118:6:54"},"nativeSrc":"118:50:54","nodeType":"YulFunctionCall","src":"118:50:54"},"nativeSrc":"115:70:54","nodeType":"YulIf","src":"115:70:54"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:54","nodeType":"YulTypedName","src":"53:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:54","nodeType":"YulTypedName","src":"64:5:54","type":""}],"src":"14:177:54"},{"body":{"nativeSrc":"228:95:54","nodeType":"YulBlock","src":"228:95:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"245:1:54","nodeType":"YulLiteral","src":"245:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"252:3:54","nodeType":"YulLiteral","src":"252:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"257:10:54","nodeType":"YulLiteral","src":"257:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"248:3:54","nodeType":"YulIdentifier","src":"248:3:54"},"nativeSrc":"248:20:54","nodeType":"YulFunctionCall","src":"248:20:54"}],"functionName":{"name":"mstore","nativeSrc":"238:6:54","nodeType":"YulIdentifier","src":"238:6:54"},"nativeSrc":"238:31:54","nodeType":"YulFunctionCall","src":"238:31:54"},"nativeSrc":"238:31:54","nodeType":"YulExpressionStatement","src":"238:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285:1:54","nodeType":"YulLiteral","src":"285:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"288:4:54","nodeType":"YulLiteral","src":"288:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"278:6:54","nodeType":"YulIdentifier","src":"278:6:54"},"nativeSrc":"278:15:54","nodeType":"YulFunctionCall","src":"278:15:54"},"nativeSrc":"278:15:54","nodeType":"YulExpressionStatement","src":"278:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309:1:54","nodeType":"YulLiteral","src":"309:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"312:4:54","nodeType":"YulLiteral","src":"312:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"302:6:54","nodeType":"YulIdentifier","src":"302:6:54"},"nativeSrc":"302:15:54","nodeType":"YulFunctionCall","src":"302:15:54"},"nativeSrc":"302:15:54","nodeType":"YulExpressionStatement","src":"302:15:54"}]},"name":"panic_error_0x41","nativeSrc":"196:127:54","nodeType":"YulFunctionDefinition","src":"196:127:54"},{"body":{"nativeSrc":"394:184:54","nodeType":"YulBlock","src":"394:184:54","statements":[{"nativeSrc":"404:10:54","nodeType":"YulVariableDeclaration","src":"404:10:54","value":{"kind":"number","nativeSrc":"413:1:54","nodeType":"YulLiteral","src":"413:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"408:1:54","nodeType":"YulTypedName","src":"408:1:54","type":""}]},{"body":{"nativeSrc":"473:63:54","nodeType":"YulBlock","src":"473:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"498:3:54","nodeType":"YulIdentifier","src":"498:3:54"},{"name":"i","nativeSrc":"503:1:54","nodeType":"YulIdentifier","src":"503:1:54"}],"functionName":{"name":"add","nativeSrc":"494:3:54","nodeType":"YulIdentifier","src":"494:3:54"},"nativeSrc":"494:11:54","nodeType":"YulFunctionCall","src":"494:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"517:3:54","nodeType":"YulIdentifier","src":"517:3:54"},{"name":"i","nativeSrc":"522:1:54","nodeType":"YulIdentifier","src":"522:1:54"}],"functionName":{"name":"add","nativeSrc":"513:3:54","nodeType":"YulIdentifier","src":"513:3:54"},"nativeSrc":"513:11:54","nodeType":"YulFunctionCall","src":"513:11:54"}],"functionName":{"name":"mload","nativeSrc":"507:5:54","nodeType":"YulIdentifier","src":"507:5:54"},"nativeSrc":"507:18:54","nodeType":"YulFunctionCall","src":"507:18:54"}],"functionName":{"name":"mstore","nativeSrc":"487:6:54","nodeType":"YulIdentifier","src":"487:6:54"},"nativeSrc":"487:39:54","nodeType":"YulFunctionCall","src":"487:39:54"},"nativeSrc":"487:39:54","nodeType":"YulExpressionStatement","src":"487:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"434:1:54","nodeType":"YulIdentifier","src":"434:1:54"},{"name":"length","nativeSrc":"437:6:54","nodeType":"YulIdentifier","src":"437:6:54"}],"functionName":{"name":"lt","nativeSrc":"431:2:54","nodeType":"YulIdentifier","src":"431:2:54"},"nativeSrc":"431:13:54","nodeType":"YulFunctionCall","src":"431:13:54"},"nativeSrc":"423:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"445:19:54","nodeType":"YulBlock","src":"445:19:54","statements":[{"nativeSrc":"447:15:54","nodeType":"YulAssignment","src":"447:15:54","value":{"arguments":[{"name":"i","nativeSrc":"456:1:54","nodeType":"YulIdentifier","src":"456:1:54"},{"kind":"number","nativeSrc":"459:2:54","nodeType":"YulLiteral","src":"459:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"452:3:54","nodeType":"YulIdentifier","src":"452:3:54"},"nativeSrc":"452:10:54","nodeType":"YulFunctionCall","src":"452:10:54"},"variableNames":[{"name":"i","nativeSrc":"447:1:54","nodeType":"YulIdentifier","src":"447:1:54"}]}]},"pre":{"nativeSrc":"427:3:54","nodeType":"YulBlock","src":"427:3:54","statements":[]},"src":"423:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"556:3:54","nodeType":"YulIdentifier","src":"556:3:54"},{"name":"length","nativeSrc":"561:6:54","nodeType":"YulIdentifier","src":"561:6:54"}],"functionName":{"name":"add","nativeSrc":"552:3:54","nodeType":"YulIdentifier","src":"552:3:54"},"nativeSrc":"552:16:54","nodeType":"YulFunctionCall","src":"552:16:54"},{"kind":"number","nativeSrc":"570:1:54","nodeType":"YulLiteral","src":"570:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"545:6:54","nodeType":"YulIdentifier","src":"545:6:54"},"nativeSrc":"545:27:54","nodeType":"YulFunctionCall","src":"545:27:54"},"nativeSrc":"545:27:54","nodeType":"YulExpressionStatement","src":"545:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"328:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"372:3:54","nodeType":"YulTypedName","src":"372:3:54","type":""},{"name":"dst","nativeSrc":"377:3:54","nodeType":"YulTypedName","src":"377:3:54","type":""},{"name":"length","nativeSrc":"382:6:54","nodeType":"YulTypedName","src":"382:6:54","type":""}],"src":"328:250:54"},{"body":{"nativeSrc":"707:942:54","nodeType":"YulBlock","src":"707:942:54","statements":[{"body":{"nativeSrc":"753:16:54","nodeType":"YulBlock","src":"753:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"762:1:54","nodeType":"YulLiteral","src":"762:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"765:1:54","nodeType":"YulLiteral","src":"765:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"755:6:54","nodeType":"YulIdentifier","src":"755:6:54"},"nativeSrc":"755:12:54","nodeType":"YulFunctionCall","src":"755:12:54"},"nativeSrc":"755:12:54","nodeType":"YulExpressionStatement","src":"755:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"728:7:54","nodeType":"YulIdentifier","src":"728:7:54"},{"name":"headStart","nativeSrc":"737:9:54","nodeType":"YulIdentifier","src":"737:9:54"}],"functionName":{"name":"sub","nativeSrc":"724:3:54","nodeType":"YulIdentifier","src":"724:3:54"},"nativeSrc":"724:23:54","nodeType":"YulFunctionCall","src":"724:23:54"},{"kind":"number","nativeSrc":"749:2:54","nodeType":"YulLiteral","src":"749:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"720:3:54","nodeType":"YulIdentifier","src":"720:3:54"},"nativeSrc":"720:32:54","nodeType":"YulFunctionCall","src":"720:32:54"},"nativeSrc":"717:52:54","nodeType":"YulIf","src":"717:52:54"},{"nativeSrc":"778:50:54","nodeType":"YulAssignment","src":"778:50:54","value":{"arguments":[{"name":"headStart","nativeSrc":"818:9:54","nodeType":"YulIdentifier","src":"818:9:54"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"788:29:54","nodeType":"YulIdentifier","src":"788:29:54"},"nativeSrc":"788:40:54","nodeType":"YulFunctionCall","src":"788:40:54"},"variableNames":[{"name":"value0","nativeSrc":"778:6:54","nodeType":"YulIdentifier","src":"778:6:54"}]},{"nativeSrc":"837:59:54","nodeType":"YulAssignment","src":"837:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"881:9:54","nodeType":"YulIdentifier","src":"881:9:54"},{"kind":"number","nativeSrc":"892:2:54","nodeType":"YulLiteral","src":"892:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"877:3:54","nodeType":"YulIdentifier","src":"877:3:54"},"nativeSrc":"877:18:54","nodeType":"YulFunctionCall","src":"877:18:54"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"847:29:54","nodeType":"YulIdentifier","src":"847:29:54"},"nativeSrc":"847:49:54","nodeType":"YulFunctionCall","src":"847:49:54"},"variableNames":[{"name":"value1","nativeSrc":"837:6:54","nodeType":"YulIdentifier","src":"837:6:54"}]},{"nativeSrc":"905:39:54","nodeType":"YulVariableDeclaration","src":"905:39:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"929:9:54","nodeType":"YulIdentifier","src":"929:9:54"},{"kind":"number","nativeSrc":"940:2:54","nodeType":"YulLiteral","src":"940:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"925:3:54","nodeType":"YulIdentifier","src":"925:3:54"},"nativeSrc":"925:18:54","nodeType":"YulFunctionCall","src":"925:18:54"}],"functionName":{"name":"mload","nativeSrc":"919:5:54","nodeType":"YulIdentifier","src":"919:5:54"},"nativeSrc":"919:25:54","nodeType":"YulFunctionCall","src":"919:25:54"},"variables":[{"name":"offset","nativeSrc":"909:6:54","nodeType":"YulTypedName","src":"909:6:54","type":""}]},{"nativeSrc":"953:28:54","nodeType":"YulVariableDeclaration","src":"953:28:54","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"971:2:54","nodeType":"YulLiteral","src":"971:2:54","type":"","value":"64"},{"kind":"number","nativeSrc":"975:1:54","nodeType":"YulLiteral","src":"975:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"967:3:54","nodeType":"YulIdentifier","src":"967:3:54"},"nativeSrc":"967:10:54","nodeType":"YulFunctionCall","src":"967:10:54"},{"kind":"number","nativeSrc":"979:1:54","nodeType":"YulLiteral","src":"979:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"963:3:54","nodeType":"YulIdentifier","src":"963:3:54"},"nativeSrc":"963:18:54","nodeType":"YulFunctionCall","src":"963:18:54"},"variables":[{"name":"_1","nativeSrc":"957:2:54","nodeType":"YulTypedName","src":"957:2:54","type":""}]},{"body":{"nativeSrc":"1008:16:54","nodeType":"YulBlock","src":"1008:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1017:1:54","nodeType":"YulLiteral","src":"1017:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1020:1:54","nodeType":"YulLiteral","src":"1020:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1010:6:54","nodeType":"YulIdentifier","src":"1010:6:54"},"nativeSrc":"1010:12:54","nodeType":"YulFunctionCall","src":"1010:12:54"},"nativeSrc":"1010:12:54","nodeType":"YulExpressionStatement","src":"1010:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"996:6:54","nodeType":"YulIdentifier","src":"996:6:54"},{"name":"_1","nativeSrc":"1004:2:54","nodeType":"YulIdentifier","src":"1004:2:54"}],"functionName":{"name":"gt","nativeSrc":"993:2:54","nodeType":"YulIdentifier","src":"993:2:54"},"nativeSrc":"993:14:54","nodeType":"YulFunctionCall","src":"993:14:54"},"nativeSrc":"990:34:54","nodeType":"YulIf","src":"990:34:54"},{"nativeSrc":"1033:32:54","nodeType":"YulVariableDeclaration","src":"1033:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1047:9:54","nodeType":"YulIdentifier","src":"1047:9:54"},{"name":"offset","nativeSrc":"1058:6:54","nodeType":"YulIdentifier","src":"1058:6:54"}],"functionName":{"name":"add","nativeSrc":"1043:3:54","nodeType":"YulIdentifier","src":"1043:3:54"},"nativeSrc":"1043:22:54","nodeType":"YulFunctionCall","src":"1043:22:54"},"variables":[{"name":"_2","nativeSrc":"1037:2:54","nodeType":"YulTypedName","src":"1037:2:54","type":""}]},{"body":{"nativeSrc":"1113:16:54","nodeType":"YulBlock","src":"1113:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1122:1:54","nodeType":"YulLiteral","src":"1122:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1125:1:54","nodeType":"YulLiteral","src":"1125:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1115:6:54","nodeType":"YulIdentifier","src":"1115:6:54"},"nativeSrc":"1115:12:54","nodeType":"YulFunctionCall","src":"1115:12:54"},"nativeSrc":"1115:12:54","nodeType":"YulExpressionStatement","src":"1115:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1092:2:54","nodeType":"YulIdentifier","src":"1092:2:54"},{"kind":"number","nativeSrc":"1096:4:54","nodeType":"YulLiteral","src":"1096:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1088:3:54","nodeType":"YulIdentifier","src":"1088:3:54"},"nativeSrc":"1088:13:54","nodeType":"YulFunctionCall","src":"1088:13:54"},{"name":"dataEnd","nativeSrc":"1103:7:54","nodeType":"YulIdentifier","src":"1103:7:54"}],"functionName":{"name":"slt","nativeSrc":"1084:3:54","nodeType":"YulIdentifier","src":"1084:3:54"},"nativeSrc":"1084:27:54","nodeType":"YulFunctionCall","src":"1084:27:54"}],"functionName":{"name":"iszero","nativeSrc":"1077:6:54","nodeType":"YulIdentifier","src":"1077:6:54"},"nativeSrc":"1077:35:54","nodeType":"YulFunctionCall","src":"1077:35:54"},"nativeSrc":"1074:55:54","nodeType":"YulIf","src":"1074:55:54"},{"nativeSrc":"1138:19:54","nodeType":"YulVariableDeclaration","src":"1138:19:54","value":{"arguments":[{"name":"_2","nativeSrc":"1154:2:54","nodeType":"YulIdentifier","src":"1154:2:54"}],"functionName":{"name":"mload","nativeSrc":"1148:5:54","nodeType":"YulIdentifier","src":"1148:5:54"},"nativeSrc":"1148:9:54","nodeType":"YulFunctionCall","src":"1148:9:54"},"variables":[{"name":"_3","nativeSrc":"1142:2:54","nodeType":"YulTypedName","src":"1142:2:54","type":""}]},{"body":{"nativeSrc":"1180:22:54","nodeType":"YulBlock","src":"1180:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1182:16:54","nodeType":"YulIdentifier","src":"1182:16:54"},"nativeSrc":"1182:18:54","nodeType":"YulFunctionCall","src":"1182:18:54"},"nativeSrc":"1182:18:54","nodeType":"YulExpressionStatement","src":"1182:18:54"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"1172:2:54","nodeType":"YulIdentifier","src":"1172:2:54"},{"name":"_1","nativeSrc":"1176:2:54","nodeType":"YulIdentifier","src":"1176:2:54"}],"functionName":{"name":"gt","nativeSrc":"1169:2:54","nodeType":"YulIdentifier","src":"1169:2:54"},"nativeSrc":"1169:10:54","nodeType":"YulFunctionCall","src":"1169:10:54"},"nativeSrc":"1166:36:54","nodeType":"YulIf","src":"1166:36:54"},{"nativeSrc":"1211:17:54","nodeType":"YulVariableDeclaration","src":"1211:17:54","value":{"arguments":[{"kind":"number","nativeSrc":"1225:2:54","nodeType":"YulLiteral","src":"1225:2:54","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1221:3:54","nodeType":"YulIdentifier","src":"1221:3:54"},"nativeSrc":"1221:7:54","nodeType":"YulFunctionCall","src":"1221:7:54"},"variables":[{"name":"_4","nativeSrc":"1215:2:54","nodeType":"YulTypedName","src":"1215:2:54","type":""}]},{"nativeSrc":"1237:23:54","nodeType":"YulVariableDeclaration","src":"1237:23:54","value":{"arguments":[{"kind":"number","nativeSrc":"1257:2:54","nodeType":"YulLiteral","src":"1257:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1251:5:54","nodeType":"YulIdentifier","src":"1251:5:54"},"nativeSrc":"1251:9:54","nodeType":"YulFunctionCall","src":"1251:9:54"},"variables":[{"name":"memPtr","nativeSrc":"1241:6:54","nodeType":"YulTypedName","src":"1241:6:54","type":""}]},{"nativeSrc":"1269:71:54","nodeType":"YulVariableDeclaration","src":"1269:71:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"1291:6:54","nodeType":"YulIdentifier","src":"1291:6:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"1315:2:54","nodeType":"YulIdentifier","src":"1315:2:54"},{"kind":"number","nativeSrc":"1319:4:54","nodeType":"YulLiteral","src":"1319:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1311:3:54","nodeType":"YulIdentifier","src":"1311:3:54"},"nativeSrc":"1311:13:54","nodeType":"YulFunctionCall","src":"1311:13:54"},{"name":"_4","nativeSrc":"1326:2:54","nodeType":"YulIdentifier","src":"1326:2:54"}],"functionName":{"name":"and","nativeSrc":"1307:3:54","nodeType":"YulIdentifier","src":"1307:3:54"},"nativeSrc":"1307:22:54","nodeType":"YulFunctionCall","src":"1307:22:54"},{"kind":"number","nativeSrc":"1331:2:54","nodeType":"YulLiteral","src":"1331:2:54","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1303:3:54","nodeType":"YulIdentifier","src":"1303:3:54"},"nativeSrc":"1303:31:54","nodeType":"YulFunctionCall","src":"1303:31:54"},{"name":"_4","nativeSrc":"1336:2:54","nodeType":"YulIdentifier","src":"1336:2:54"}],"functionName":{"name":"and","nativeSrc":"1299:3:54","nodeType":"YulIdentifier","src":"1299:3:54"},"nativeSrc":"1299:40:54","nodeType":"YulFunctionCall","src":"1299:40:54"}],"functionName":{"name":"add","nativeSrc":"1287:3:54","nodeType":"YulIdentifier","src":"1287:3:54"},"nativeSrc":"1287:53:54","nodeType":"YulFunctionCall","src":"1287:53:54"},"variables":[{"name":"newFreePtr","nativeSrc":"1273:10:54","nodeType":"YulTypedName","src":"1273:10:54","type":""}]},{"body":{"nativeSrc":"1399:22:54","nodeType":"YulBlock","src":"1399:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1401:16:54","nodeType":"YulIdentifier","src":"1401:16:54"},"nativeSrc":"1401:18:54","nodeType":"YulFunctionCall","src":"1401:18:54"},"nativeSrc":"1401:18:54","nodeType":"YulExpressionStatement","src":"1401:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1358:10:54","nodeType":"YulIdentifier","src":"1358:10:54"},{"name":"_1","nativeSrc":"1370:2:54","nodeType":"YulIdentifier","src":"1370:2:54"}],"functionName":{"name":"gt","nativeSrc":"1355:2:54","nodeType":"YulIdentifier","src":"1355:2:54"},"nativeSrc":"1355:18:54","nodeType":"YulFunctionCall","src":"1355:18:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1378:10:54","nodeType":"YulIdentifier","src":"1378:10:54"},{"name":"memPtr","nativeSrc":"1390:6:54","nodeType":"YulIdentifier","src":"1390:6:54"}],"functionName":{"name":"lt","nativeSrc":"1375:2:54","nodeType":"YulIdentifier","src":"1375:2:54"},"nativeSrc":"1375:22:54","nodeType":"YulFunctionCall","src":"1375:22:54"}],"functionName":{"name":"or","nativeSrc":"1352:2:54","nodeType":"YulIdentifier","src":"1352:2:54"},"nativeSrc":"1352:46:54","nodeType":"YulFunctionCall","src":"1352:46:54"},"nativeSrc":"1349:72:54","nodeType":"YulIf","src":"1349:72:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1437:2:54","nodeType":"YulLiteral","src":"1437:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1441:10:54","nodeType":"YulIdentifier","src":"1441:10:54"}],"functionName":{"name":"mstore","nativeSrc":"1430:6:54","nodeType":"YulIdentifier","src":"1430:6:54"},"nativeSrc":"1430:22:54","nodeType":"YulFunctionCall","src":"1430:22:54"},"nativeSrc":"1430:22:54","nodeType":"YulExpressionStatement","src":"1430:22:54"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1468:6:54","nodeType":"YulIdentifier","src":"1468:6:54"},{"name":"_3","nativeSrc":"1476:2:54","nodeType":"YulIdentifier","src":"1476:2:54"}],"functionName":{"name":"mstore","nativeSrc":"1461:6:54","nodeType":"YulIdentifier","src":"1461:6:54"},"nativeSrc":"1461:18:54","nodeType":"YulFunctionCall","src":"1461:18:54"},"nativeSrc":"1461:18:54","nodeType":"YulExpressionStatement","src":"1461:18:54"},{"body":{"nativeSrc":"1525:16:54","nodeType":"YulBlock","src":"1525:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1534:1:54","nodeType":"YulLiteral","src":"1534:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1537:1:54","nodeType":"YulLiteral","src":"1537:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1527:6:54","nodeType":"YulIdentifier","src":"1527:6:54"},"nativeSrc":"1527:12:54","nodeType":"YulFunctionCall","src":"1527:12:54"},"nativeSrc":"1527:12:54","nodeType":"YulExpressionStatement","src":"1527:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1502:2:54","nodeType":"YulIdentifier","src":"1502:2:54"},{"name":"_3","nativeSrc":"1506:2:54","nodeType":"YulIdentifier","src":"1506:2:54"}],"functionName":{"name":"add","nativeSrc":"1498:3:54","nodeType":"YulIdentifier","src":"1498:3:54"},"nativeSrc":"1498:11:54","nodeType":"YulFunctionCall","src":"1498:11:54"},{"kind":"number","nativeSrc":"1511:2:54","nodeType":"YulLiteral","src":"1511:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1494:3:54","nodeType":"YulIdentifier","src":"1494:3:54"},"nativeSrc":"1494:20:54","nodeType":"YulFunctionCall","src":"1494:20:54"},{"name":"dataEnd","nativeSrc":"1516:7:54","nodeType":"YulIdentifier","src":"1516:7:54"}],"functionName":{"name":"gt","nativeSrc":"1491:2:54","nodeType":"YulIdentifier","src":"1491:2:54"},"nativeSrc":"1491:33:54","nodeType":"YulFunctionCall","src":"1491:33:54"},"nativeSrc":"1488:53:54","nodeType":"YulIf","src":"1488:53:54"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1589:2:54","nodeType":"YulIdentifier","src":"1589:2:54"},{"kind":"number","nativeSrc":"1593:2:54","nodeType":"YulLiteral","src":"1593:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1585:3:54","nodeType":"YulIdentifier","src":"1585:3:54"},"nativeSrc":"1585:11:54","nodeType":"YulFunctionCall","src":"1585:11:54"},{"arguments":[{"name":"memPtr","nativeSrc":"1602:6:54","nodeType":"YulIdentifier","src":"1602:6:54"},{"kind":"number","nativeSrc":"1610:2:54","nodeType":"YulLiteral","src":"1610:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1598:3:54","nodeType":"YulIdentifier","src":"1598:3:54"},"nativeSrc":"1598:15:54","nodeType":"YulFunctionCall","src":"1598:15:54"},{"name":"_3","nativeSrc":"1615:2:54","nodeType":"YulIdentifier","src":"1615:2:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1550:34:54","nodeType":"YulIdentifier","src":"1550:34:54"},"nativeSrc":"1550:68:54","nodeType":"YulFunctionCall","src":"1550:68:54"},"nativeSrc":"1550:68:54","nodeType":"YulExpressionStatement","src":"1550:68:54"},{"nativeSrc":"1627:16:54","nodeType":"YulAssignment","src":"1627:16:54","value":{"name":"memPtr","nativeSrc":"1637:6:54","nodeType":"YulIdentifier","src":"1637:6:54"},"variableNames":[{"name":"value2","nativeSrc":"1627:6:54","nodeType":"YulIdentifier","src":"1627:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"583:1066:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"657:9:54","nodeType":"YulTypedName","src":"657:9:54","type":""},{"name":"dataEnd","nativeSrc":"668:7:54","nodeType":"YulTypedName","src":"668:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"680:6:54","nodeType":"YulTypedName","src":"680:6:54","type":""},{"name":"value1","nativeSrc":"688:6:54","nodeType":"YulTypedName","src":"688:6:54","type":""},{"name":"value2","nativeSrc":"696:6:54","nodeType":"YulTypedName","src":"696:6:54","type":""}],"src":"583:1066:54"},{"body":{"nativeSrc":"1703:176:54","nodeType":"YulBlock","src":"1703:176:54","statements":[{"nativeSrc":"1713:17:54","nodeType":"YulAssignment","src":"1713:17:54","value":{"arguments":[{"name":"x","nativeSrc":"1725:1:54","nodeType":"YulIdentifier","src":"1725:1:54"},{"name":"y","nativeSrc":"1728:1:54","nodeType":"YulIdentifier","src":"1728:1:54"}],"functionName":{"name":"sub","nativeSrc":"1721:3:54","nodeType":"YulIdentifier","src":"1721:3:54"},"nativeSrc":"1721:9:54","nodeType":"YulFunctionCall","src":"1721:9:54"},"variableNames":[{"name":"diff","nativeSrc":"1713:4:54","nodeType":"YulIdentifier","src":"1713:4:54"}]},{"body":{"nativeSrc":"1762:111:54","nodeType":"YulBlock","src":"1762:111:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1783:1:54","nodeType":"YulLiteral","src":"1783:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1790:3:54","nodeType":"YulLiteral","src":"1790:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"1795:10:54","nodeType":"YulLiteral","src":"1795:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1786:3:54","nodeType":"YulIdentifier","src":"1786:3:54"},"nativeSrc":"1786:20:54","nodeType":"YulFunctionCall","src":"1786:20:54"}],"functionName":{"name":"mstore","nativeSrc":"1776:6:54","nodeType":"YulIdentifier","src":"1776:6:54"},"nativeSrc":"1776:31:54","nodeType":"YulFunctionCall","src":"1776:31:54"},"nativeSrc":"1776:31:54","nodeType":"YulExpressionStatement","src":"1776:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1827:1:54","nodeType":"YulLiteral","src":"1827:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"1830:4:54","nodeType":"YulLiteral","src":"1830:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1820:6:54","nodeType":"YulIdentifier","src":"1820:6:54"},"nativeSrc":"1820:15:54","nodeType":"YulFunctionCall","src":"1820:15:54"},"nativeSrc":"1820:15:54","nodeType":"YulExpressionStatement","src":"1820:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1855:1:54","nodeType":"YulLiteral","src":"1855:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1858:4:54","nodeType":"YulLiteral","src":"1858:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1848:6:54","nodeType":"YulIdentifier","src":"1848:6:54"},"nativeSrc":"1848:15:54","nodeType":"YulFunctionCall","src":"1848:15:54"},"nativeSrc":"1848:15:54","nodeType":"YulExpressionStatement","src":"1848:15:54"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"1745:4:54","nodeType":"YulIdentifier","src":"1745:4:54"},{"name":"x","nativeSrc":"1751:1:54","nodeType":"YulIdentifier","src":"1751:1:54"}],"functionName":{"name":"gt","nativeSrc":"1742:2:54","nodeType":"YulIdentifier","src":"1742:2:54"},"nativeSrc":"1742:11:54","nodeType":"YulFunctionCall","src":"1742:11:54"},"nativeSrc":"1739:134:54","nodeType":"YulIf","src":"1739:134:54"}]},"name":"checked_sub_t_uint256","nativeSrc":"1654:225:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"1685:1:54","nodeType":"YulTypedName","src":"1685:1:54","type":""},{"name":"y","nativeSrc":"1688:1:54","nodeType":"YulTypedName","src":"1688:1:54","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"1694:4:54","nodeType":"YulTypedName","src":"1694:4:54","type":""}],"src":"1654:225:54"},{"body":{"nativeSrc":"1916:95:54","nodeType":"YulBlock","src":"1916:95:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1933:1:54","nodeType":"YulLiteral","src":"1933:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1940:3:54","nodeType":"YulLiteral","src":"1940:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"1945:10:54","nodeType":"YulLiteral","src":"1945:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1936:3:54","nodeType":"YulIdentifier","src":"1936:3:54"},"nativeSrc":"1936:20:54","nodeType":"YulFunctionCall","src":"1936:20:54"}],"functionName":{"name":"mstore","nativeSrc":"1926:6:54","nodeType":"YulIdentifier","src":"1926:6:54"},"nativeSrc":"1926:31:54","nodeType":"YulFunctionCall","src":"1926:31:54"},"nativeSrc":"1926:31:54","nodeType":"YulExpressionStatement","src":"1926:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1973:1:54","nodeType":"YulLiteral","src":"1973:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"1976:4:54","nodeType":"YulLiteral","src":"1976:4:54","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"1966:6:54","nodeType":"YulIdentifier","src":"1966:6:54"},"nativeSrc":"1966:15:54","nodeType":"YulFunctionCall","src":"1966:15:54"},"nativeSrc":"1966:15:54","nodeType":"YulExpressionStatement","src":"1966:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1997:1:54","nodeType":"YulLiteral","src":"1997:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2000:4:54","nodeType":"YulLiteral","src":"2000:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1990:6:54","nodeType":"YulIdentifier","src":"1990:6:54"},"nativeSrc":"1990:15:54","nodeType":"YulFunctionCall","src":"1990:15:54"},"nativeSrc":"1990:15:54","nodeType":"YulExpressionStatement","src":"1990:15:54"}]},"name":"panic_error_0x01","nativeSrc":"1884:127:54","nodeType":"YulFunctionDefinition","src":"1884:127:54"},{"body":{"nativeSrc":"2145:175:54","nodeType":"YulBlock","src":"2145:175:54","statements":[{"nativeSrc":"2155:26:54","nodeType":"YulAssignment","src":"2155:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2167:9:54","nodeType":"YulIdentifier","src":"2167:9:54"},{"kind":"number","nativeSrc":"2178:2:54","nodeType":"YulLiteral","src":"2178:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2163:3:54","nodeType":"YulIdentifier","src":"2163:3:54"},"nativeSrc":"2163:18:54","nodeType":"YulFunctionCall","src":"2163:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2155:4:54","nodeType":"YulIdentifier","src":"2155:4:54"}]},{"nativeSrc":"2190:29:54","nodeType":"YulVariableDeclaration","src":"2190:29:54","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2208:3:54","nodeType":"YulLiteral","src":"2208:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"2213:1:54","nodeType":"YulLiteral","src":"2213:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2204:3:54","nodeType":"YulIdentifier","src":"2204:3:54"},"nativeSrc":"2204:11:54","nodeType":"YulFunctionCall","src":"2204:11:54"},{"kind":"number","nativeSrc":"2217:1:54","nodeType":"YulLiteral","src":"2217:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2200:3:54","nodeType":"YulIdentifier","src":"2200:3:54"},"nativeSrc":"2200:19:54","nodeType":"YulFunctionCall","src":"2200:19:54"},"variables":[{"name":"_1","nativeSrc":"2194:2:54","nodeType":"YulTypedName","src":"2194:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2235:9:54","nodeType":"YulIdentifier","src":"2235:9:54"},{"arguments":[{"name":"value0","nativeSrc":"2250:6:54","nodeType":"YulIdentifier","src":"2250:6:54"},{"name":"_1","nativeSrc":"2258:2:54","nodeType":"YulIdentifier","src":"2258:2:54"}],"functionName":{"name":"and","nativeSrc":"2246:3:54","nodeType":"YulIdentifier","src":"2246:3:54"},"nativeSrc":"2246:15:54","nodeType":"YulFunctionCall","src":"2246:15:54"}],"functionName":{"name":"mstore","nativeSrc":"2228:6:54","nodeType":"YulIdentifier","src":"2228:6:54"},"nativeSrc":"2228:34:54","nodeType":"YulFunctionCall","src":"2228:34:54"},"nativeSrc":"2228:34:54","nodeType":"YulExpressionStatement","src":"2228:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2282:9:54","nodeType":"YulIdentifier","src":"2282:9:54"},{"kind":"number","nativeSrc":"2293:2:54","nodeType":"YulLiteral","src":"2293:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2278:3:54","nodeType":"YulIdentifier","src":"2278:3:54"},"nativeSrc":"2278:18:54","nodeType":"YulFunctionCall","src":"2278:18:54"},{"arguments":[{"name":"value1","nativeSrc":"2302:6:54","nodeType":"YulIdentifier","src":"2302:6:54"},{"name":"_1","nativeSrc":"2310:2:54","nodeType":"YulIdentifier","src":"2310:2:54"}],"functionName":{"name":"and","nativeSrc":"2298:3:54","nodeType":"YulIdentifier","src":"2298:3:54"},"nativeSrc":"2298:15:54","nodeType":"YulFunctionCall","src":"2298:15:54"}],"functionName":{"name":"mstore","nativeSrc":"2271:6:54","nodeType":"YulIdentifier","src":"2271:6:54"},"nativeSrc":"2271:43:54","nodeType":"YulFunctionCall","src":"2271:43:54"},"nativeSrc":"2271:43:54","nodeType":"YulExpressionStatement","src":"2271:43:54"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"2016:304:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2106:9:54","nodeType":"YulTypedName","src":"2106:9:54","type":""},{"name":"value1","nativeSrc":"2117:6:54","nodeType":"YulTypedName","src":"2117:6:54","type":""},{"name":"value0","nativeSrc":"2125:6:54","nodeType":"YulTypedName","src":"2125:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2136:4:54","nodeType":"YulTypedName","src":"2136:4:54","type":""}],"src":"2016:304:54"},{"body":{"nativeSrc":"2499:228:54","nodeType":"YulBlock","src":"2499:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2516:9:54","nodeType":"YulIdentifier","src":"2516:9:54"},{"kind":"number","nativeSrc":"2527:2:54","nodeType":"YulLiteral","src":"2527:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2509:6:54","nodeType":"YulIdentifier","src":"2509:6:54"},"nativeSrc":"2509:21:54","nodeType":"YulFunctionCall","src":"2509:21:54"},"nativeSrc":"2509:21:54","nodeType":"YulExpressionStatement","src":"2509:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2550:9:54","nodeType":"YulIdentifier","src":"2550:9:54"},{"kind":"number","nativeSrc":"2561:2:54","nodeType":"YulLiteral","src":"2561:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2546:3:54","nodeType":"YulIdentifier","src":"2546:3:54"},"nativeSrc":"2546:18:54","nodeType":"YulFunctionCall","src":"2546:18:54"},{"kind":"number","nativeSrc":"2566:2:54","nodeType":"YulLiteral","src":"2566:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2539:6:54","nodeType":"YulIdentifier","src":"2539:6:54"},"nativeSrc":"2539:30:54","nodeType":"YulFunctionCall","src":"2539:30:54"},"nativeSrc":"2539:30:54","nodeType":"YulExpressionStatement","src":"2539:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2589:9:54","nodeType":"YulIdentifier","src":"2589:9:54"},{"kind":"number","nativeSrc":"2600:2:54","nodeType":"YulLiteral","src":"2600:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2585:3:54","nodeType":"YulIdentifier","src":"2585:3:54"},"nativeSrc":"2585:18:54","nodeType":"YulFunctionCall","src":"2585:18:54"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"2605:34:54","nodeType":"YulLiteral","src":"2605:34:54","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"2578:6:54","nodeType":"YulIdentifier","src":"2578:6:54"},"nativeSrc":"2578:62:54","nodeType":"YulFunctionCall","src":"2578:62:54"},"nativeSrc":"2578:62:54","nodeType":"YulExpressionStatement","src":"2578:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2660:9:54","nodeType":"YulIdentifier","src":"2660:9:54"},{"kind":"number","nativeSrc":"2671:2:54","nodeType":"YulLiteral","src":"2671:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2656:3:54","nodeType":"YulIdentifier","src":"2656:3:54"},"nativeSrc":"2656:18:54","nodeType":"YulFunctionCall","src":"2656:18:54"},{"hexValue":"646472657373","kind":"string","nativeSrc":"2676:8:54","nodeType":"YulLiteral","src":"2676:8:54","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"2649:6:54","nodeType":"YulIdentifier","src":"2649:6:54"},"nativeSrc":"2649:36:54","nodeType":"YulFunctionCall","src":"2649:36:54"},"nativeSrc":"2649:36:54","nodeType":"YulExpressionStatement","src":"2649:36:54"},{"nativeSrc":"2694:27:54","nodeType":"YulAssignment","src":"2694:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2706:9:54","nodeType":"YulIdentifier","src":"2706:9:54"},{"kind":"number","nativeSrc":"2717:3:54","nodeType":"YulLiteral","src":"2717:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2702:3:54","nodeType":"YulIdentifier","src":"2702:3:54"},"nativeSrc":"2702:19:54","nodeType":"YulFunctionCall","src":"2702:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2694:4:54","nodeType":"YulIdentifier","src":"2694:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2325:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2476:9:54","nodeType":"YulTypedName","src":"2476:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2490:4:54","nodeType":"YulTypedName","src":"2490:4:54","type":""}],"src":"2325:402:54"},{"body":{"nativeSrc":"2906:235:54","nodeType":"YulBlock","src":"2906:235:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2923:9:54","nodeType":"YulIdentifier","src":"2923:9:54"},{"kind":"number","nativeSrc":"2934:2:54","nodeType":"YulLiteral","src":"2934:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2916:6:54","nodeType":"YulIdentifier","src":"2916:6:54"},"nativeSrc":"2916:21:54","nodeType":"YulFunctionCall","src":"2916:21:54"},"nativeSrc":"2916:21:54","nodeType":"YulExpressionStatement","src":"2916:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2957:9:54","nodeType":"YulIdentifier","src":"2957:9:54"},{"kind":"number","nativeSrc":"2968:2:54","nodeType":"YulLiteral","src":"2968:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2953:3:54","nodeType":"YulIdentifier","src":"2953:3:54"},"nativeSrc":"2953:18:54","nodeType":"YulFunctionCall","src":"2953:18:54"},{"kind":"number","nativeSrc":"2973:2:54","nodeType":"YulLiteral","src":"2973:2:54","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"2946:6:54","nodeType":"YulIdentifier","src":"2946:6:54"},"nativeSrc":"2946:30:54","nodeType":"YulFunctionCall","src":"2946:30:54"},"nativeSrc":"2946:30:54","nodeType":"YulExpressionStatement","src":"2946:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2996:9:54","nodeType":"YulIdentifier","src":"2996:9:54"},{"kind":"number","nativeSrc":"3007:2:54","nodeType":"YulLiteral","src":"3007:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2992:3:54","nodeType":"YulIdentifier","src":"2992:3:54"},"nativeSrc":"2992:18:54","nodeType":"YulFunctionCall","src":"2992:18:54"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"3012:34:54","nodeType":"YulLiteral","src":"3012:34:54","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2985:6:54","nodeType":"YulIdentifier","src":"2985:6:54"},"nativeSrc":"2985:62:54","nodeType":"YulFunctionCall","src":"2985:62:54"},"nativeSrc":"2985:62:54","nodeType":"YulExpressionStatement","src":"2985:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3067:9:54","nodeType":"YulIdentifier","src":"3067:9:54"},{"kind":"number","nativeSrc":"3078:2:54","nodeType":"YulLiteral","src":"3078:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3063:3:54","nodeType":"YulIdentifier","src":"3063:3:54"},"nativeSrc":"3063:18:54","nodeType":"YulFunctionCall","src":"3063:18:54"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"3083:15:54","nodeType":"YulLiteral","src":"3083:15:54","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"3056:6:54","nodeType":"YulIdentifier","src":"3056:6:54"},"nativeSrc":"3056:43:54","nodeType":"YulFunctionCall","src":"3056:43:54"},"nativeSrc":"3056:43:54","nodeType":"YulExpressionStatement","src":"3056:43:54"},{"nativeSrc":"3108:27:54","nodeType":"YulAssignment","src":"3108:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3120:9:54","nodeType":"YulIdentifier","src":"3120:9:54"},{"kind":"number","nativeSrc":"3131:3:54","nodeType":"YulLiteral","src":"3131:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3116:3:54","nodeType":"YulIdentifier","src":"3116:3:54"},"nativeSrc":"3116:19:54","nodeType":"YulFunctionCall","src":"3116:19:54"},"variableNames":[{"name":"tail","nativeSrc":"3108:4:54","nodeType":"YulIdentifier","src":"3108:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2732:409:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2883:9:54","nodeType":"YulTypedName","src":"2883:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2897:4:54","nodeType":"YulTypedName","src":"2897:4:54","type":""}],"src":"2732:409:54"},{"body":{"nativeSrc":"3320:228:54","nodeType":"YulBlock","src":"3320:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3337:9:54","nodeType":"YulIdentifier","src":"3337:9:54"},{"kind":"number","nativeSrc":"3348:2:54","nodeType":"YulLiteral","src":"3348:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3330:6:54","nodeType":"YulIdentifier","src":"3330:6:54"},"nativeSrc":"3330:21:54","nodeType":"YulFunctionCall","src":"3330:21:54"},"nativeSrc":"3330:21:54","nodeType":"YulExpressionStatement","src":"3330:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3371:9:54","nodeType":"YulIdentifier","src":"3371:9:54"},{"kind":"number","nativeSrc":"3382:2:54","nodeType":"YulLiteral","src":"3382:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3367:3:54","nodeType":"YulIdentifier","src":"3367:3:54"},"nativeSrc":"3367:18:54","nodeType":"YulFunctionCall","src":"3367:18:54"},{"kind":"number","nativeSrc":"3387:2:54","nodeType":"YulLiteral","src":"3387:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"3360:6:54","nodeType":"YulIdentifier","src":"3360:6:54"},"nativeSrc":"3360:30:54","nodeType":"YulFunctionCall","src":"3360:30:54"},"nativeSrc":"3360:30:54","nodeType":"YulExpressionStatement","src":"3360:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3410:9:54","nodeType":"YulIdentifier","src":"3410:9:54"},{"kind":"number","nativeSrc":"3421:2:54","nodeType":"YulLiteral","src":"3421:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3406:3:54","nodeType":"YulIdentifier","src":"3406:3:54"},"nativeSrc":"3406:18:54","nodeType":"YulFunctionCall","src":"3406:18:54"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"3426:34:54","nodeType":"YulLiteral","src":"3426:34:54","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"3399:6:54","nodeType":"YulIdentifier","src":"3399:6:54"},"nativeSrc":"3399:62:54","nodeType":"YulFunctionCall","src":"3399:62:54"},"nativeSrc":"3399:62:54","nodeType":"YulExpressionStatement","src":"3399:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3481:9:54","nodeType":"YulIdentifier","src":"3481:9:54"},{"kind":"number","nativeSrc":"3492:2:54","nodeType":"YulLiteral","src":"3492:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3477:3:54","nodeType":"YulIdentifier","src":"3477:3:54"},"nativeSrc":"3477:18:54","nodeType":"YulFunctionCall","src":"3477:18:54"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"3497:8:54","nodeType":"YulLiteral","src":"3497:8:54","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"3470:6:54","nodeType":"YulIdentifier","src":"3470:6:54"},"nativeSrc":"3470:36:54","nodeType":"YulFunctionCall","src":"3470:36:54"},"nativeSrc":"3470:36:54","nodeType":"YulExpressionStatement","src":"3470:36:54"},{"nativeSrc":"3515:27:54","nodeType":"YulAssignment","src":"3515:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3527:9:54","nodeType":"YulIdentifier","src":"3527:9:54"},{"kind":"number","nativeSrc":"3538:3:54","nodeType":"YulLiteral","src":"3538:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3523:3:54","nodeType":"YulIdentifier","src":"3523:3:54"},"nativeSrc":"3523:19:54","nodeType":"YulFunctionCall","src":"3523:19:54"},"variableNames":[{"name":"tail","nativeSrc":"3515:4:54","nodeType":"YulIdentifier","src":"3515:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3146:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3297:9:54","nodeType":"YulTypedName","src":"3297:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3311:4:54","nodeType":"YulTypedName","src":"3311:4:54","type":""}],"src":"3146:402:54"},{"body":{"nativeSrc":"3690:150:54","nodeType":"YulBlock","src":"3690:150:54","statements":[{"nativeSrc":"3700:27:54","nodeType":"YulVariableDeclaration","src":"3700:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"3720:6:54","nodeType":"YulIdentifier","src":"3720:6:54"}],"functionName":{"name":"mload","nativeSrc":"3714:5:54","nodeType":"YulIdentifier","src":"3714:5:54"},"nativeSrc":"3714:13:54","nodeType":"YulFunctionCall","src":"3714:13:54"},"variables":[{"name":"length","nativeSrc":"3704:6:54","nodeType":"YulTypedName","src":"3704:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3775:6:54","nodeType":"YulIdentifier","src":"3775:6:54"},{"kind":"number","nativeSrc":"3783:4:54","nodeType":"YulLiteral","src":"3783:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3771:3:54","nodeType":"YulIdentifier","src":"3771:3:54"},"nativeSrc":"3771:17:54","nodeType":"YulFunctionCall","src":"3771:17:54"},{"name":"pos","nativeSrc":"3790:3:54","nodeType":"YulIdentifier","src":"3790:3:54"},{"name":"length","nativeSrc":"3795:6:54","nodeType":"YulIdentifier","src":"3795:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3736:34:54","nodeType":"YulIdentifier","src":"3736:34:54"},"nativeSrc":"3736:66:54","nodeType":"YulFunctionCall","src":"3736:66:54"},"nativeSrc":"3736:66:54","nodeType":"YulExpressionStatement","src":"3736:66:54"},{"nativeSrc":"3811:23:54","nodeType":"YulAssignment","src":"3811:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"3822:3:54","nodeType":"YulIdentifier","src":"3822:3:54"},{"name":"length","nativeSrc":"3827:6:54","nodeType":"YulIdentifier","src":"3827:6:54"}],"functionName":{"name":"add","nativeSrc":"3818:3:54","nodeType":"YulIdentifier","src":"3818:3:54"},"nativeSrc":"3818:16:54","nodeType":"YulFunctionCall","src":"3818:16:54"},"variableNames":[{"name":"end","nativeSrc":"3811:3:54","nodeType":"YulIdentifier","src":"3811:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3553:287:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3666:3:54","nodeType":"YulTypedName","src":"3666:3:54","type":""},{"name":"value0","nativeSrc":"3671:6:54","nodeType":"YulTypedName","src":"3671:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3682:3:54","nodeType":"YulTypedName","src":"3682:3:54","type":""}],"src":"3553:287:54"},{"body":{"nativeSrc":"3966:275:54","nodeType":"YulBlock","src":"3966:275:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3983:9:54","nodeType":"YulIdentifier","src":"3983:9:54"},{"kind":"number","nativeSrc":"3994:2:54","nodeType":"YulLiteral","src":"3994:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3976:6:54","nodeType":"YulIdentifier","src":"3976:6:54"},"nativeSrc":"3976:21:54","nodeType":"YulFunctionCall","src":"3976:21:54"},"nativeSrc":"3976:21:54","nodeType":"YulExpressionStatement","src":"3976:21:54"},{"nativeSrc":"4006:27:54","nodeType":"YulVariableDeclaration","src":"4006:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"4026:6:54","nodeType":"YulIdentifier","src":"4026:6:54"}],"functionName":{"name":"mload","nativeSrc":"4020:5:54","nodeType":"YulIdentifier","src":"4020:5:54"},"nativeSrc":"4020:13:54","nodeType":"YulFunctionCall","src":"4020:13:54"},"variables":[{"name":"length","nativeSrc":"4010:6:54","nodeType":"YulTypedName","src":"4010:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4053:9:54","nodeType":"YulIdentifier","src":"4053:9:54"},{"kind":"number","nativeSrc":"4064:2:54","nodeType":"YulLiteral","src":"4064:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4049:3:54","nodeType":"YulIdentifier","src":"4049:3:54"},"nativeSrc":"4049:18:54","nodeType":"YulFunctionCall","src":"4049:18:54"},{"name":"length","nativeSrc":"4069:6:54","nodeType":"YulIdentifier","src":"4069:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4042:6:54","nodeType":"YulIdentifier","src":"4042:6:54"},"nativeSrc":"4042:34:54","nodeType":"YulFunctionCall","src":"4042:34:54"},"nativeSrc":"4042:34:54","nodeType":"YulExpressionStatement","src":"4042:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4124:6:54","nodeType":"YulIdentifier","src":"4124:6:54"},{"kind":"number","nativeSrc":"4132:2:54","nodeType":"YulLiteral","src":"4132:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4120:3:54","nodeType":"YulIdentifier","src":"4120:3:54"},"nativeSrc":"4120:15:54","nodeType":"YulFunctionCall","src":"4120:15:54"},{"arguments":[{"name":"headStart","nativeSrc":"4141:9:54","nodeType":"YulIdentifier","src":"4141:9:54"},{"kind":"number","nativeSrc":"4152:2:54","nodeType":"YulLiteral","src":"4152:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4137:3:54","nodeType":"YulIdentifier","src":"4137:3:54"},"nativeSrc":"4137:18:54","nodeType":"YulFunctionCall","src":"4137:18:54"},{"name":"length","nativeSrc":"4157:6:54","nodeType":"YulIdentifier","src":"4157:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4085:34:54","nodeType":"YulIdentifier","src":"4085:34:54"},"nativeSrc":"4085:79:54","nodeType":"YulFunctionCall","src":"4085:79:54"},"nativeSrc":"4085:79:54","nodeType":"YulExpressionStatement","src":"4085:79:54"},{"nativeSrc":"4173:62:54","nodeType":"YulAssignment","src":"4173:62:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4189:9:54","nodeType":"YulIdentifier","src":"4189:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4208:6:54","nodeType":"YulIdentifier","src":"4208:6:54"},{"kind":"number","nativeSrc":"4216:2:54","nodeType":"YulLiteral","src":"4216:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4204:3:54","nodeType":"YulIdentifier","src":"4204:3:54"},"nativeSrc":"4204:15:54","nodeType":"YulFunctionCall","src":"4204:15:54"},{"arguments":[{"kind":"number","nativeSrc":"4225:2:54","nodeType":"YulLiteral","src":"4225:2:54","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4221:3:54","nodeType":"YulIdentifier","src":"4221:3:54"},"nativeSrc":"4221:7:54","nodeType":"YulFunctionCall","src":"4221:7:54"}],"functionName":{"name":"and","nativeSrc":"4200:3:54","nodeType":"YulIdentifier","src":"4200:3:54"},"nativeSrc":"4200:29:54","nodeType":"YulFunctionCall","src":"4200:29:54"}],"functionName":{"name":"add","nativeSrc":"4185:3:54","nodeType":"YulIdentifier","src":"4185:3:54"},"nativeSrc":"4185:45:54","nodeType":"YulFunctionCall","src":"4185:45:54"},{"kind":"number","nativeSrc":"4232:2:54","nodeType":"YulLiteral","src":"4232:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4181:3:54","nodeType":"YulIdentifier","src":"4181:3:54"},"nativeSrc":"4181:54:54","nodeType":"YulFunctionCall","src":"4181:54:54"},"variableNames":[{"name":"tail","nativeSrc":"4173:4:54","nodeType":"YulIdentifier","src":"4173:4:54"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3845:396:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3935:9:54","nodeType":"YulTypedName","src":"3935:9:54","type":""},{"name":"value0","nativeSrc":"3946:6:54","nodeType":"YulTypedName","src":"3946:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3957:4:54","nodeType":"YulTypedName","src":"3957:4:54","type":""}],"src":"3845:396:54"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\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    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        let offset := mload(add(headStart, 64))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n        value2 := memPtr\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC1967: new admin is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\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        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405260405161103838038061103883398101604081905261002291610467565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610537565b600080516020610ff18339815191521461006b5761006b610558565b610077828260006100d2565b506100a5905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104610537565b600080516020610fd1833981519152146100c1576100c1610558565b6100ca826100fe565b5050506105bd565b6100db8361016c565b6000825111806100e85750805b156100f9576100f783836101ac565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61013e600080516020610fd1833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1610169816101da565b50565b61017581610276565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101d18383604051806060016040528060278152602001611011602791396102f8565b90505b92915050565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610fd18339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102e35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161023b565b80600080516020610ff1833981519152610255565b60606001600160a01b0384163b6103605760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161023b565b600080856001600160a01b03168560405161037b919061056e565b600060405180830381855af49150503d80600081146103b6576040519150601f19603f3d011682016040523d82523d6000602084013e6103bb565b606091505b5090925090506103cc8282866103d8565b925050505b9392505050565b606083156103e75750816103d1565b8251156103f75782518084602001fd5b8160405162461bcd60e51b815260040161023b919061058a565b80516001600160a01b038116811461042857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561045e578181015183820152602001610446565b50506000910152565b60008060006060848603121561047c57600080fd5b61048584610411565b925061049360208501610411565b60408501519092506001600160401b03808211156104b057600080fd5b818601915086601f8301126104c457600080fd5b8151818111156104d6576104d661042d565b604051601f8201601f19908116603f011681019083821181831017156104fe576104fe61042d565b8160405282815289602084870101111561051757600080fd5b610528836020830160208801610443565b80955050505050509250925092565b818103818111156101d457634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008251610580818460208701610443565b9190910192915050565b60208152600082518060208401526105a9816040850160208701610443565b601f01601f19169190910160400192915050565b610a05806105cc6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b610090366004610879565b610135565b61006b6100a3366004610894565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b610101366004610879565b610231565b34801561011257600080fd5b506100bd61025e565b61012361028c565b61013361012e610363565b61036d565b565b61013d610391565b73ffffffffffffffffffffffffffffffffffffffff16330361017757610174816040518060200160405280600081525060006103d1565b50565b61017461011b565b610187610391565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103d1915050565b505050565b6101e661011b565b60006101fd610391565b73ffffffffffffffffffffffffffffffffffffffff16330361022657610221610363565b905090565b61022e61011b565b90565b610239610391565b73ffffffffffffffffffffffffffffffffffffffff16330361017757610174816103fc565b6000610268610391565b73ffffffffffffffffffffffffffffffffffffffff16330361022657610221610391565b610294610391565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161045d565b3660008037600080366000845af43d6000803e80801561038c573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b6103da83610485565b6000825111806103e75750805b156101e6576103f683836104d2565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610425610391565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a1610174816104fe565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103b5565b61048e8161060a565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606104f783836040518060600160405280602781526020016109a9602791396106d5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166105a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161035a565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b73ffffffffffffffffffffffffffffffffffffffff81163b6106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161035a565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105c4565b606073ffffffffffffffffffffffffffffffffffffffff84163b61077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161035a565b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516107a3919061093b565b600060405180830381855af49150503d80600081146107de576040519150601f19603f3d011682016040523d82523d6000602084013e6107e3565b606091505b50915091506107f38282866107fd565b9695505050505050565b6060831561080c5750816104f7565b82511561081c5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035a9190610957565b803573ffffffffffffffffffffffffffffffffffffffff8116811461087457600080fd5b919050565b60006020828403121561088b57600080fd5b6104f782610850565b6000806000604084860312156108a957600080fd5b6108b284610850565b9250602084013567ffffffffffffffff808211156108cf57600080fd5b818601915086601f8301126108e357600080fd5b8135818111156108f257600080fd5b87602082850101111561090457600080fd5b6020830194508093505050509250925092565b60005b8381101561093257818101518382015260200161091a565b50506000910152565b6000825161094d818460208701610917565b9190910192915050565b6020815260008251806020840152610976816040850160208701610917565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ea3e4f85f0a1d3fc15be75ff98c694618446f5f89724d4dda961c4ab756e1bcb64736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1038 CODESIZE SUB DUP1 PUSH2 0x1038 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x467 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x537 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFF1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6B JUMPI PUSH2 0x6B PUSH2 0x558 JUMP JUMPDEST PUSH2 0x77 DUP3 DUP3 PUSH1 0x0 PUSH2 0xD2 JUMP JUMPDEST POP PUSH2 0xA5 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x537 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFD1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xC1 JUMPI PUSH2 0xC1 PUSH2 0x558 JUMP JUMPDEST PUSH2 0xCA DUP3 PUSH2 0xFE JUMP JUMPDEST POP POP POP PUSH2 0x5BD JUMP JUMPDEST PUSH2 0xDB DUP4 PUSH2 0x16C JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0xE8 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xF9 JUMPI PUSH2 0xF7 DUP4 DUP4 PUSH2 0x1AC JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x13E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFD1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x169 DUP2 PUSH2 0x1DA JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x175 DUP2 PUSH2 0x276 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 0x1D1 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1011 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x2F8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x244 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFD1 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 0x2E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x23B JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFF1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x255 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x37B SWAP2 SWAP1 PUSH2 0x56E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3B6 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 0x3BB JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x3CC DUP3 DUP3 DUP7 PUSH2 0x3D8 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3E7 JUMPI POP DUP2 PUSH2 0x3D1 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x3F7 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 0x23B SWAP2 SWAP1 PUSH2 0x58A JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x45E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x446 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x47C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x485 DUP5 PUSH2 0x411 JUMP JUMPDEST SWAP3 POP PUSH2 0x493 PUSH1 0x20 DUP6 ADD PUSH2 0x411 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x4D6 JUMPI PUSH2 0x4D6 PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x4FE JUMPI PUSH2 0x4FE PUSH2 0x42D JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x528 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x443 JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1D4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x580 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x443 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x5A9 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x443 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA05 DUP1 PUSH2 0x5CC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x106 JUMPI PUSH2 0x6D JUMP JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x95 JUMPI PUSH2 0x6D JUMP JUMPDEST CALLDATASIZE PUSH2 0x6D JUMPI PUSH2 0x6B PUSH2 0x11B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6B PUSH2 0x11B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x879 JUMP JUMPDEST PUSH2 0x135 JUMP JUMPDEST PUSH2 0x6B PUSH2 0xA3 CALLDATASIZE PUSH1 0x4 PUSH2 0x894 JUMP JUMPDEST PUSH2 0x17F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x1F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x101 CALLDATASIZE PUSH1 0x4 PUSH2 0x879 JUMP JUMPDEST PUSH2 0x231 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x25E JUMP JUMPDEST PUSH2 0x123 PUSH2 0x28C JUMP JUMPDEST PUSH2 0x133 PUSH2 0x12E PUSH2 0x363 JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x13D PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x177 JUMPI PUSH2 0x174 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x3D1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x174 PUSH2 0x11B JUMP JUMPDEST PUSH2 0x187 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x1EB JUMPI PUSH2 0x1E6 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 0x3D1 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x226 JUMPI PUSH2 0x221 PUSH2 0x363 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x22E PUSH2 0x11B JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x239 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x177 JUMPI PUSH2 0x174 DUP2 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x268 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x226 JUMPI PUSH2 0x221 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x294 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x133 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x221 PUSH2 0x45D 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 0x38C JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DA DUP4 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x3E7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1E6 JUMPI PUSH2 0x3F6 DUP4 DUP4 PUSH2 0x4D2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x425 PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x174 DUP2 PUSH2 0x4FE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x3B5 JUMP JUMPDEST PUSH2 0x48E DUP2 PUSH2 0x60A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4F7 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9A9 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x6D5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x5A1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x6AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74206120636F6E747261637400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x5C4 JUMP JUMPDEST PUSH1 0x60 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE PUSH2 0x77B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x7A3 SWAP2 SWAP1 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x7DE 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 0x7E3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x7F3 DUP3 DUP3 DUP7 PUSH2 0x7FD JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x80C JUMPI POP DUP2 PUSH2 0x4F7 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x81C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP2 SWAP1 PUSH2 0x957 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x88B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4F7 DUP3 PUSH2 0x850 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8B2 DUP5 PUSH2 0x850 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x932 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x91A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x94D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x917 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x976 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x917 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220EA3E4F DUP6 CREATE LOG1 0xD3 0xFC ISZERO 0xBE PUSH22 0xFF98C694618446F5F89724D4DDA961C4AB756E1BCB64 PUSH20 0x6F6C63430008190033B53127684A568B3173AE13 0xB9 0xF8 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:49:-:0;;;1908:254;;;;;;;;;;;;;;;;;;:::i;:::-;2023:6;2031:5;1050:54:44;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:44;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2078:45:49::1;::::0;-1:-1:-1;2122:1:49::1;2086:32;2078:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2055:69:49::1;2048:77;;;;:::i;:::-;2135:20;2148:6:::0;2135:12:::1;:20::i;:::-;1908:254:::0;;;1634:3556;;2188:295:45;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:45;-1:-1:-1;;;;;4191:45:45;;4113:130;4714:11;4701:35;;;-1:-1:-1;;;;;2246:15:54;;;2228:34;;2298:15;;;2293:2;2278:18;;2271:43;2163:18;4701:35:45;;;;;;;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:45;;;;;;;;1902:152;:::o;6575:198:50:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;4325:201:45:-;-1:-1:-1;;;;;4388:22:45;;4380:73;;;;-1:-1:-1;;;4380:73:45;;2527:2:54;4380:73:45;;;2509:21:54;2566:2;2546:18;;;2539:30;2605:34;2585:18;;;2578:62;-1:-1:-1;;;2656:18:54;;;2649:36;2702:19;;4380:73:45;;;;;;;;;4511:8;-1:-1:-1;;;;;;;;;;;4463:39:45;:56;;-1:-1:-1;;;;;;4463:56:45;-1:-1:-1;;;;;4463:56:45;;;;;;;;;;-1:-1:-1;4325:201:45:o;1537:259::-;-1:-1:-1;;;;;1470:19:50;;;1610:95:45;;;;-1:-1:-1;;;1610:95:45;;2934:2:54;1610:95:45;;;2916:21:54;2973:2;2953:18;;;2946:30;3012:34;2992:18;;;2985:62;-1:-1:-1;;;3063:18:54;;;3056:43;3116:19;;1610:95:45;2732:409:54;1610:95:45;1772:17;-1:-1:-1;;;;;;;;;;;1715:48:45;1599:147:52;6959:387:50;7100:12;-1:-1:-1;;;;;1470:19:50;;;7124:69;;;;-1:-1:-1;;;7124:69:50;;3348:2:54;7124:69:50;;;3330:21:54;3387:2;3367:18;;;3360:30;3426:34;3406:18;;;3399:62;-1:-1:-1;;;3477:18:54;;;3470:36;3523:19;;7124:69:50;3146:402:54;7124:69:50;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:50;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:50;;-1:-1:-1;7204:67:50;-1:-1:-1;7288:51:50;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:50;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:50;;;;;;;;:::i;14:177:54:-;93:13;;-1:-1:-1;;;;;135:31:54;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:54;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:54;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:54;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;1654:225::-;1721:9;;;1742:11;;;1739:134;;;1795:10;1790:3;1786:20;1783:1;1776:31;1830:4;1827:1;1820:15;1858:4;1855:1;1848:15;1884:127;1945:10;1940:3;1936:20;1933:1;1926:31;1976:4;1973:1;1966:15;2000:4;1997:1;1990:15;3553:287;3682:3;3720:6;3714:13;3736:66;3795:6;3790:3;3783:4;3775:6;3771:17;3736:66;:::i;:::-;3818:16;;;;;3553:287;-1:-1:-1;;3553:287:54:o;3845:396::-;3994:2;3983:9;3976:21;3957:4;4026:6;4020:13;4069:6;4064:2;4053:9;4049:18;4042:34;4085:79;4157:6;4152:2;4141:9;4137:18;4132:2;4124:6;4120:15;4085:79;:::i;:::-;4225:2;4204:15;-1:-1:-1;;4200:29:54;4185:45;;;;4232:2;4181:54;;3845:396;-1:-1:-1;;3845:396:54:o;:::-;1634:3556:49;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_9831":{"entryPoint":null,"id":9831,"parameterSlots":0,"returnSlots":0},"@_9839":{"entryPoint":null,"id":9839,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_10163":{"entryPoint":652,"id":10163,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_9844":{"entryPoint":null,"id":9844,"parameterSlots":0,"returnSlots":0},"@_changeAdmin_9696":{"entryPoint":1020,"id":9696,"parameterSlots":1,"returnSlots":0},"@_delegate_9804":{"entryPoint":877,"id":9804,"parameterSlots":1,"returnSlots":0},"@_fallback_9823":{"entryPoint":283,"id":9823,"parameterSlots":0,"returnSlots":0},"@_getAdmin_9653":{"entryPoint":913,"id":9653,"parameterSlots":0,"returnSlots":1},"@_getImplementation_9507":{"entryPoint":1117,"id":9507,"parameterSlots":0,"returnSlots":1},"@_implementation_9474":{"entryPoint":867,"id":9474,"parameterSlots":0,"returnSlots":1},"@_setAdmin_9679":{"entryPoint":1278,"id":9679,"parameterSlots":1,"returnSlots":0},"@_setImplementation_9531":{"entryPoint":1546,"id":9531,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9576":{"entryPoint":977,"id":9576,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9546":{"entryPoint":1157,"id":9546,"parameterSlots":1,"returnSlots":0},"@admin_10071":{"entryPoint":606,"id":10071,"parameterSlots":0,"returnSlots":1},"@changeAdmin_10098":{"entryPoint":561,"id":10098,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_10392":{"entryPoint":1234,"id":10392,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_10427":{"entryPoint":1749,"id":10427,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10507":{"entryPoint":null,"id":10507,"parameterSlots":1,"returnSlots":1},"@implementation_10085":{"entryPoint":499,"id":10085,"parameterSlots":0,"returnSlots":1},"@isContract_10182":{"entryPoint":null,"id":10182,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_10133":{"entryPoint":383,"id":10133,"parameterSlots":3,"returnSlots":0},"@upgradeTo_10116":{"entryPoint":309,"id":10116,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_10458":{"entryPoint":2045,"id":10458,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":2128,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2169,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":2196,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2363,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2391,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2327,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4346:54","nodeType":"YulBlock","src":"0:4346:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"63:147:54","nodeType":"YulBlock","src":"63:147:54","statements":[{"nativeSrc":"73:29:54","nodeType":"YulAssignment","src":"73:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:54","nodeType":"YulIdentifier","src":"95:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:54","nodeType":"YulIdentifier","src":"82:12:54"},"nativeSrc":"82:20:54","nodeType":"YulFunctionCall","src":"82:20:54"},"variableNames":[{"name":"value","nativeSrc":"73:5:54","nodeType":"YulIdentifier","src":"73:5:54"}]},{"body":{"nativeSrc":"188:16:54","nodeType":"YulBlock","src":"188:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:54","nodeType":"YulLiteral","src":"197:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:54","nodeType":"YulLiteral","src":"200:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:54","nodeType":"YulIdentifier","src":"190:6:54"},"nativeSrc":"190:12:54","nodeType":"YulFunctionCall","src":"190:12:54"},"nativeSrc":"190:12:54","nodeType":"YulExpressionStatement","src":"190:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:54","nodeType":"YulIdentifier","src":"124:5:54"},{"arguments":[{"name":"value","nativeSrc":"135:5:54","nodeType":"YulIdentifier","src":"135:5:54"},{"kind":"number","nativeSrc":"142:42:54","nodeType":"YulLiteral","src":"142:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:54","nodeType":"YulIdentifier","src":"131:3:54"},"nativeSrc":"131:54:54","nodeType":"YulFunctionCall","src":"131:54:54"}],"functionName":{"name":"eq","nativeSrc":"121:2:54","nodeType":"YulIdentifier","src":"121:2:54"},"nativeSrc":"121:65:54","nodeType":"YulFunctionCall","src":"121:65:54"}],"functionName":{"name":"iszero","nativeSrc":"114:6:54","nodeType":"YulIdentifier","src":"114:6:54"},"nativeSrc":"114:73:54","nodeType":"YulFunctionCall","src":"114:73:54"},"nativeSrc":"111:93:54","nodeType":"YulIf","src":"111:93:54"}]},"name":"abi_decode_address","nativeSrc":"14:196:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:54","nodeType":"YulTypedName","src":"42:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:54","nodeType":"YulTypedName","src":"53:5:54","type":""}],"src":"14:196:54"},{"body":{"nativeSrc":"285:116:54","nodeType":"YulBlock","src":"285:116:54","statements":[{"body":{"nativeSrc":"331:16:54","nodeType":"YulBlock","src":"331:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"340:1:54","nodeType":"YulLiteral","src":"340:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"343:1:54","nodeType":"YulLiteral","src":"343:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"333:6:54","nodeType":"YulIdentifier","src":"333:6:54"},"nativeSrc":"333:12:54","nodeType":"YulFunctionCall","src":"333:12:54"},"nativeSrc":"333:12:54","nodeType":"YulExpressionStatement","src":"333:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"306:7:54","nodeType":"YulIdentifier","src":"306:7:54"},{"name":"headStart","nativeSrc":"315:9:54","nodeType":"YulIdentifier","src":"315:9:54"}],"functionName":{"name":"sub","nativeSrc":"302:3:54","nodeType":"YulIdentifier","src":"302:3:54"},"nativeSrc":"302:23:54","nodeType":"YulFunctionCall","src":"302:23:54"},{"kind":"number","nativeSrc":"327:2:54","nodeType":"YulLiteral","src":"327:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"298:3:54","nodeType":"YulIdentifier","src":"298:3:54"},"nativeSrc":"298:32:54","nodeType":"YulFunctionCall","src":"298:32:54"},"nativeSrc":"295:52:54","nodeType":"YulIf","src":"295:52:54"},{"nativeSrc":"356:39:54","nodeType":"YulAssignment","src":"356:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:54","nodeType":"YulIdentifier","src":"385:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"366:18:54","nodeType":"YulIdentifier","src":"366:18:54"},"nativeSrc":"366:29:54","nodeType":"YulFunctionCall","src":"366:29:54"},"variableNames":[{"name":"value0","nativeSrc":"356:6:54","nodeType":"YulIdentifier","src":"356:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"215:186:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"251:9:54","nodeType":"YulTypedName","src":"251:9:54","type":""},{"name":"dataEnd","nativeSrc":"262:7:54","nodeType":"YulTypedName","src":"262:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"274:6:54","nodeType":"YulTypedName","src":"274:6:54","type":""}],"src":"215:186:54"},{"body":{"nativeSrc":"512:559:54","nodeType":"YulBlock","src":"512:559:54","statements":[{"body":{"nativeSrc":"558:16:54","nodeType":"YulBlock","src":"558:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"567:1:54","nodeType":"YulLiteral","src":"567:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"570:1:54","nodeType":"YulLiteral","src":"570:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"560:6:54","nodeType":"YulIdentifier","src":"560:6:54"},"nativeSrc":"560:12:54","nodeType":"YulFunctionCall","src":"560:12:54"},"nativeSrc":"560:12:54","nodeType":"YulExpressionStatement","src":"560:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"533:7:54","nodeType":"YulIdentifier","src":"533:7:54"},{"name":"headStart","nativeSrc":"542:9:54","nodeType":"YulIdentifier","src":"542:9:54"}],"functionName":{"name":"sub","nativeSrc":"529:3:54","nodeType":"YulIdentifier","src":"529:3:54"},"nativeSrc":"529:23:54","nodeType":"YulFunctionCall","src":"529:23:54"},{"kind":"number","nativeSrc":"554:2:54","nodeType":"YulLiteral","src":"554:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"525:3:54","nodeType":"YulIdentifier","src":"525:3:54"},"nativeSrc":"525:32:54","nodeType":"YulFunctionCall","src":"525:32:54"},"nativeSrc":"522:52:54","nodeType":"YulIf","src":"522:52:54"},{"nativeSrc":"583:39:54","nodeType":"YulAssignment","src":"583:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"612:9:54","nodeType":"YulIdentifier","src":"612:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"593:18:54","nodeType":"YulIdentifier","src":"593:18:54"},"nativeSrc":"593:29:54","nodeType":"YulFunctionCall","src":"593:29:54"},"variableNames":[{"name":"value0","nativeSrc":"583:6:54","nodeType":"YulIdentifier","src":"583:6:54"}]},{"nativeSrc":"631:46:54","nodeType":"YulVariableDeclaration","src":"631:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"662:9:54","nodeType":"YulIdentifier","src":"662:9:54"},{"kind":"number","nativeSrc":"673:2:54","nodeType":"YulLiteral","src":"673:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"658:3:54","nodeType":"YulIdentifier","src":"658:3:54"},"nativeSrc":"658:18:54","nodeType":"YulFunctionCall","src":"658:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"645:12:54","nodeType":"YulIdentifier","src":"645:12:54"},"nativeSrc":"645:32:54","nodeType":"YulFunctionCall","src":"645:32:54"},"variables":[{"name":"offset","nativeSrc":"635:6:54","nodeType":"YulTypedName","src":"635:6:54","type":""}]},{"nativeSrc":"686:28:54","nodeType":"YulVariableDeclaration","src":"686:28:54","value":{"kind":"number","nativeSrc":"696:18:54","nodeType":"YulLiteral","src":"696:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"690:2:54","nodeType":"YulTypedName","src":"690:2:54","type":""}]},{"body":{"nativeSrc":"741:16:54","nodeType":"YulBlock","src":"741:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"750:1:54","nodeType":"YulLiteral","src":"750:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"753:1:54","nodeType":"YulLiteral","src":"753:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"743:6:54","nodeType":"YulIdentifier","src":"743:6:54"},"nativeSrc":"743:12:54","nodeType":"YulFunctionCall","src":"743:12:54"},"nativeSrc":"743:12:54","nodeType":"YulExpressionStatement","src":"743:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"729:6:54","nodeType":"YulIdentifier","src":"729:6:54"},{"name":"_1","nativeSrc":"737:2:54","nodeType":"YulIdentifier","src":"737:2:54"}],"functionName":{"name":"gt","nativeSrc":"726:2:54","nodeType":"YulIdentifier","src":"726:2:54"},"nativeSrc":"726:14:54","nodeType":"YulFunctionCall","src":"726:14:54"},"nativeSrc":"723:34:54","nodeType":"YulIf","src":"723:34:54"},{"nativeSrc":"766:32:54","nodeType":"YulVariableDeclaration","src":"766:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"780:9:54","nodeType":"YulIdentifier","src":"780:9:54"},{"name":"offset","nativeSrc":"791:6:54","nodeType":"YulIdentifier","src":"791:6:54"}],"functionName":{"name":"add","nativeSrc":"776:3:54","nodeType":"YulIdentifier","src":"776:3:54"},"nativeSrc":"776:22:54","nodeType":"YulFunctionCall","src":"776:22:54"},"variables":[{"name":"_2","nativeSrc":"770:2:54","nodeType":"YulTypedName","src":"770:2:54","type":""}]},{"body":{"nativeSrc":"846:16:54","nodeType":"YulBlock","src":"846:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"855:1:54","nodeType":"YulLiteral","src":"855:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"858:1:54","nodeType":"YulLiteral","src":"858:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"848:6:54","nodeType":"YulIdentifier","src":"848:6:54"},"nativeSrc":"848:12:54","nodeType":"YulFunctionCall","src":"848:12:54"},"nativeSrc":"848:12:54","nodeType":"YulExpressionStatement","src":"848:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"825:2:54","nodeType":"YulIdentifier","src":"825:2:54"},{"kind":"number","nativeSrc":"829:4:54","nodeType":"YulLiteral","src":"829:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"821:3:54","nodeType":"YulIdentifier","src":"821:3:54"},"nativeSrc":"821:13:54","nodeType":"YulFunctionCall","src":"821:13:54"},{"name":"dataEnd","nativeSrc":"836:7:54","nodeType":"YulIdentifier","src":"836:7:54"}],"functionName":{"name":"slt","nativeSrc":"817:3:54","nodeType":"YulIdentifier","src":"817:3:54"},"nativeSrc":"817:27:54","nodeType":"YulFunctionCall","src":"817:27:54"}],"functionName":{"name":"iszero","nativeSrc":"810:6:54","nodeType":"YulIdentifier","src":"810:6:54"},"nativeSrc":"810:35:54","nodeType":"YulFunctionCall","src":"810:35:54"},"nativeSrc":"807:55:54","nodeType":"YulIf","src":"807:55:54"},{"nativeSrc":"871:30:54","nodeType":"YulVariableDeclaration","src":"871:30:54","value":{"arguments":[{"name":"_2","nativeSrc":"898:2:54","nodeType":"YulIdentifier","src":"898:2:54"}],"functionName":{"name":"calldataload","nativeSrc":"885:12:54","nodeType":"YulIdentifier","src":"885:12:54"},"nativeSrc":"885:16:54","nodeType":"YulFunctionCall","src":"885:16:54"},"variables":[{"name":"length","nativeSrc":"875:6:54","nodeType":"YulTypedName","src":"875:6:54","type":""}]},{"body":{"nativeSrc":"928:16:54","nodeType":"YulBlock","src":"928:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"937:1:54","nodeType":"YulLiteral","src":"937:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"940:1:54","nodeType":"YulLiteral","src":"940:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"930:6:54","nodeType":"YulIdentifier","src":"930:6:54"},"nativeSrc":"930:12:54","nodeType":"YulFunctionCall","src":"930:12:54"},"nativeSrc":"930:12:54","nodeType":"YulExpressionStatement","src":"930:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"916:6:54","nodeType":"YulIdentifier","src":"916:6:54"},{"name":"_1","nativeSrc":"924:2:54","nodeType":"YulIdentifier","src":"924:2:54"}],"functionName":{"name":"gt","nativeSrc":"913:2:54","nodeType":"YulIdentifier","src":"913:2:54"},"nativeSrc":"913:14:54","nodeType":"YulFunctionCall","src":"913:14:54"},"nativeSrc":"910:34:54","nodeType":"YulIf","src":"910:34:54"},{"body":{"nativeSrc":"994:16:54","nodeType":"YulBlock","src":"994:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1003:1:54","nodeType":"YulLiteral","src":"1003:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1006:1:54","nodeType":"YulLiteral","src":"1006:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"996:6:54","nodeType":"YulIdentifier","src":"996:6:54"},"nativeSrc":"996:12:54","nodeType":"YulFunctionCall","src":"996:12:54"},"nativeSrc":"996:12:54","nodeType":"YulExpressionStatement","src":"996:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"967:2:54","nodeType":"YulIdentifier","src":"967:2:54"},{"name":"length","nativeSrc":"971:6:54","nodeType":"YulIdentifier","src":"971:6:54"}],"functionName":{"name":"add","nativeSrc":"963:3:54","nodeType":"YulIdentifier","src":"963:3:54"},"nativeSrc":"963:15:54","nodeType":"YulFunctionCall","src":"963:15:54"},{"kind":"number","nativeSrc":"980:2:54","nodeType":"YulLiteral","src":"980:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"959:3:54","nodeType":"YulIdentifier","src":"959:3:54"},"nativeSrc":"959:24:54","nodeType":"YulFunctionCall","src":"959:24:54"},{"name":"dataEnd","nativeSrc":"985:7:54","nodeType":"YulIdentifier","src":"985:7:54"}],"functionName":{"name":"gt","nativeSrc":"956:2:54","nodeType":"YulIdentifier","src":"956:2:54"},"nativeSrc":"956:37:54","nodeType":"YulFunctionCall","src":"956:37:54"},"nativeSrc":"953:57:54","nodeType":"YulIf","src":"953:57:54"},{"nativeSrc":"1019:21:54","nodeType":"YulAssignment","src":"1019:21:54","value":{"arguments":[{"name":"_2","nativeSrc":"1033:2:54","nodeType":"YulIdentifier","src":"1033:2:54"},{"kind":"number","nativeSrc":"1037:2:54","nodeType":"YulLiteral","src":"1037:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1029:3:54","nodeType":"YulIdentifier","src":"1029:3:54"},"nativeSrc":"1029:11:54","nodeType":"YulFunctionCall","src":"1029:11:54"},"variableNames":[{"name":"value1","nativeSrc":"1019:6:54","nodeType":"YulIdentifier","src":"1019:6:54"}]},{"nativeSrc":"1049:16:54","nodeType":"YulAssignment","src":"1049:16:54","value":{"name":"length","nativeSrc":"1059:6:54","nodeType":"YulIdentifier","src":"1059:6:54"},"variableNames":[{"name":"value2","nativeSrc":"1049:6:54","nodeType":"YulIdentifier","src":"1049:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"406:665:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"462:9:54","nodeType":"YulTypedName","src":"462:9:54","type":""},{"name":"dataEnd","nativeSrc":"473:7:54","nodeType":"YulTypedName","src":"473:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"485:6:54","nodeType":"YulTypedName","src":"485:6:54","type":""},{"name":"value1","nativeSrc":"493:6:54","nodeType":"YulTypedName","src":"493:6:54","type":""},{"name":"value2","nativeSrc":"501:6:54","nodeType":"YulTypedName","src":"501:6:54","type":""}],"src":"406:665:54"},{"body":{"nativeSrc":"1177:125:54","nodeType":"YulBlock","src":"1177:125:54","statements":[{"nativeSrc":"1187:26:54","nodeType":"YulAssignment","src":"1187:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1199:9:54","nodeType":"YulIdentifier","src":"1199:9:54"},{"kind":"number","nativeSrc":"1210:2:54","nodeType":"YulLiteral","src":"1210:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1195:3:54","nodeType":"YulIdentifier","src":"1195:3:54"},"nativeSrc":"1195:18:54","nodeType":"YulFunctionCall","src":"1195:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1187:4:54","nodeType":"YulIdentifier","src":"1187:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1229:9:54","nodeType":"YulIdentifier","src":"1229:9:54"},{"arguments":[{"name":"value0","nativeSrc":"1244:6:54","nodeType":"YulIdentifier","src":"1244:6:54"},{"kind":"number","nativeSrc":"1252:42:54","nodeType":"YulLiteral","src":"1252:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1240:3:54","nodeType":"YulIdentifier","src":"1240:3:54"},"nativeSrc":"1240:55:54","nodeType":"YulFunctionCall","src":"1240:55:54"}],"functionName":{"name":"mstore","nativeSrc":"1222:6:54","nodeType":"YulIdentifier","src":"1222:6:54"},"nativeSrc":"1222:74:54","nodeType":"YulFunctionCall","src":"1222:74:54"},"nativeSrc":"1222:74:54","nodeType":"YulExpressionStatement","src":"1222:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1076:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1146:9:54","nodeType":"YulTypedName","src":"1146:9:54","type":""},{"name":"value0","nativeSrc":"1157:6:54","nodeType":"YulTypedName","src":"1157:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1168:4:54","nodeType":"YulTypedName","src":"1168:4:54","type":""}],"src":"1076:226:54"},{"body":{"nativeSrc":"1481:296:54","nodeType":"YulBlock","src":"1481:296:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1498:9:54","nodeType":"YulIdentifier","src":"1498:9:54"},{"kind":"number","nativeSrc":"1509:2:54","nodeType":"YulLiteral","src":"1509:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1491:6:54","nodeType":"YulIdentifier","src":"1491:6:54"},"nativeSrc":"1491:21:54","nodeType":"YulFunctionCall","src":"1491:21:54"},"nativeSrc":"1491:21:54","nodeType":"YulExpressionStatement","src":"1491:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1532:9:54","nodeType":"YulIdentifier","src":"1532:9:54"},{"kind":"number","nativeSrc":"1543:2:54","nodeType":"YulLiteral","src":"1543:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1528:3:54","nodeType":"YulIdentifier","src":"1528:3:54"},"nativeSrc":"1528:18:54","nodeType":"YulFunctionCall","src":"1528:18:54"},{"kind":"number","nativeSrc":"1548:2:54","nodeType":"YulLiteral","src":"1548:2:54","type":"","value":"66"}],"functionName":{"name":"mstore","nativeSrc":"1521:6:54","nodeType":"YulIdentifier","src":"1521:6:54"},"nativeSrc":"1521:30:54","nodeType":"YulFunctionCall","src":"1521:30:54"},"nativeSrc":"1521:30:54","nodeType":"YulExpressionStatement","src":"1521:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1571:9:54","nodeType":"YulIdentifier","src":"1571:9:54"},{"kind":"number","nativeSrc":"1582:2:54","nodeType":"YulLiteral","src":"1582:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1567:3:54","nodeType":"YulIdentifier","src":"1567:3:54"},"nativeSrc":"1567:18:54","nodeType":"YulFunctionCall","src":"1567:18:54"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"1587:34:54","nodeType":"YulLiteral","src":"1587:34:54","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"1560:6:54","nodeType":"YulIdentifier","src":"1560:6:54"},"nativeSrc":"1560:62:54","nodeType":"YulFunctionCall","src":"1560:62:54"},"nativeSrc":"1560:62:54","nodeType":"YulExpressionStatement","src":"1560:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1642:9:54","nodeType":"YulIdentifier","src":"1642:9:54"},{"kind":"number","nativeSrc":"1653:2:54","nodeType":"YulLiteral","src":"1653:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1638:3:54","nodeType":"YulIdentifier","src":"1638:3:54"},"nativeSrc":"1638:18:54","nodeType":"YulFunctionCall","src":"1638:18:54"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"1658:34:54","nodeType":"YulLiteral","src":"1658:34:54","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"1631:6:54","nodeType":"YulIdentifier","src":"1631:6:54"},"nativeSrc":"1631:62:54","nodeType":"YulFunctionCall","src":"1631:62:54"},"nativeSrc":"1631:62:54","nodeType":"YulExpressionStatement","src":"1631:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1713:9:54","nodeType":"YulIdentifier","src":"1713:9:54"},{"kind":"number","nativeSrc":"1724:3:54","nodeType":"YulLiteral","src":"1724:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1709:3:54","nodeType":"YulIdentifier","src":"1709:3:54"},"nativeSrc":"1709:19:54","nodeType":"YulFunctionCall","src":"1709:19:54"},{"hexValue":"6574","kind":"string","nativeSrc":"1730:4:54","nodeType":"YulLiteral","src":"1730:4:54","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"1702:6:54","nodeType":"YulIdentifier","src":"1702:6:54"},"nativeSrc":"1702:33:54","nodeType":"YulFunctionCall","src":"1702:33:54"},"nativeSrc":"1702:33:54","nodeType":"YulExpressionStatement","src":"1702:33:54"},{"nativeSrc":"1744:27:54","nodeType":"YulAssignment","src":"1744:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1756:9:54","nodeType":"YulIdentifier","src":"1756:9:54"},{"kind":"number","nativeSrc":"1767:3:54","nodeType":"YulLiteral","src":"1767:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"1752:3:54","nodeType":"YulIdentifier","src":"1752:3:54"},"nativeSrc":"1752:19:54","nodeType":"YulFunctionCall","src":"1752:19:54"},"variableNames":[{"name":"tail","nativeSrc":"1744:4:54","nodeType":"YulIdentifier","src":"1744:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1307:470:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1458:9:54","nodeType":"YulTypedName","src":"1458:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1472:4:54","nodeType":"YulTypedName","src":"1472:4:54","type":""}],"src":"1307:470:54"},{"body":{"nativeSrc":"1911:198:54","nodeType":"YulBlock","src":"1911:198:54","statements":[{"nativeSrc":"1921:26:54","nodeType":"YulAssignment","src":"1921:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1933:9:54","nodeType":"YulIdentifier","src":"1933:9:54"},{"kind":"number","nativeSrc":"1944:2:54","nodeType":"YulLiteral","src":"1944:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1929:3:54","nodeType":"YulIdentifier","src":"1929:3:54"},"nativeSrc":"1929:18:54","nodeType":"YulFunctionCall","src":"1929:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1921:4:54","nodeType":"YulIdentifier","src":"1921:4:54"}]},{"nativeSrc":"1956:52:54","nodeType":"YulVariableDeclaration","src":"1956:52:54","value":{"kind":"number","nativeSrc":"1966:42:54","nodeType":"YulLiteral","src":"1966:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1960:2:54","nodeType":"YulTypedName","src":"1960:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2024:9:54","nodeType":"YulIdentifier","src":"2024:9:54"},{"arguments":[{"name":"value0","nativeSrc":"2039:6:54","nodeType":"YulIdentifier","src":"2039:6:54"},{"name":"_1","nativeSrc":"2047:2:54","nodeType":"YulIdentifier","src":"2047:2:54"}],"functionName":{"name":"and","nativeSrc":"2035:3:54","nodeType":"YulIdentifier","src":"2035:3:54"},"nativeSrc":"2035:15:54","nodeType":"YulFunctionCall","src":"2035:15:54"}],"functionName":{"name":"mstore","nativeSrc":"2017:6:54","nodeType":"YulIdentifier","src":"2017:6:54"},"nativeSrc":"2017:34:54","nodeType":"YulFunctionCall","src":"2017:34:54"},"nativeSrc":"2017:34:54","nodeType":"YulExpressionStatement","src":"2017:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2071:9:54","nodeType":"YulIdentifier","src":"2071:9:54"},{"kind":"number","nativeSrc":"2082:2:54","nodeType":"YulLiteral","src":"2082:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2067:3:54","nodeType":"YulIdentifier","src":"2067:3:54"},"nativeSrc":"2067:18:54","nodeType":"YulFunctionCall","src":"2067:18:54"},{"arguments":[{"name":"value1","nativeSrc":"2091:6:54","nodeType":"YulIdentifier","src":"2091:6:54"},{"name":"_1","nativeSrc":"2099:2:54","nodeType":"YulIdentifier","src":"2099:2:54"}],"functionName":{"name":"and","nativeSrc":"2087:3:54","nodeType":"YulIdentifier","src":"2087:3:54"},"nativeSrc":"2087:15:54","nodeType":"YulFunctionCall","src":"2087:15:54"}],"functionName":{"name":"mstore","nativeSrc":"2060:6:54","nodeType":"YulIdentifier","src":"2060:6:54"},"nativeSrc":"2060:43:54","nodeType":"YulFunctionCall","src":"2060:43:54"},"nativeSrc":"2060:43:54","nodeType":"YulExpressionStatement","src":"2060:43:54"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"1782:327:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1872:9:54","nodeType":"YulTypedName","src":"1872:9:54","type":""},{"name":"value1","nativeSrc":"1883:6:54","nodeType":"YulTypedName","src":"1883:6:54","type":""},{"name":"value0","nativeSrc":"1891:6:54","nodeType":"YulTypedName","src":"1891:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1902:4:54","nodeType":"YulTypedName","src":"1902:4:54","type":""}],"src":"1782:327:54"},{"body":{"nativeSrc":"2288:228:54","nodeType":"YulBlock","src":"2288:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2305:9:54","nodeType":"YulIdentifier","src":"2305:9:54"},{"kind":"number","nativeSrc":"2316:2:54","nodeType":"YulLiteral","src":"2316:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2298:6:54","nodeType":"YulIdentifier","src":"2298:6:54"},"nativeSrc":"2298:21:54","nodeType":"YulFunctionCall","src":"2298:21:54"},"nativeSrc":"2298:21:54","nodeType":"YulExpressionStatement","src":"2298:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2339:9:54","nodeType":"YulIdentifier","src":"2339:9:54"},{"kind":"number","nativeSrc":"2350:2:54","nodeType":"YulLiteral","src":"2350:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2335:3:54","nodeType":"YulIdentifier","src":"2335:3:54"},"nativeSrc":"2335:18:54","nodeType":"YulFunctionCall","src":"2335:18:54"},{"kind":"number","nativeSrc":"2355:2:54","nodeType":"YulLiteral","src":"2355:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2328:6:54","nodeType":"YulIdentifier","src":"2328:6:54"},"nativeSrc":"2328:30:54","nodeType":"YulFunctionCall","src":"2328:30:54"},"nativeSrc":"2328:30:54","nodeType":"YulExpressionStatement","src":"2328:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2378:9:54","nodeType":"YulIdentifier","src":"2378:9:54"},{"kind":"number","nativeSrc":"2389:2:54","nodeType":"YulLiteral","src":"2389:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2374:3:54","nodeType":"YulIdentifier","src":"2374:3:54"},"nativeSrc":"2374:18:54","nodeType":"YulFunctionCall","src":"2374:18:54"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"2394:34:54","nodeType":"YulLiteral","src":"2394:34:54","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"2367:6:54","nodeType":"YulIdentifier","src":"2367:6:54"},"nativeSrc":"2367:62:54","nodeType":"YulFunctionCall","src":"2367:62:54"},"nativeSrc":"2367:62:54","nodeType":"YulExpressionStatement","src":"2367:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2449:9:54","nodeType":"YulIdentifier","src":"2449:9:54"},{"kind":"number","nativeSrc":"2460:2:54","nodeType":"YulLiteral","src":"2460:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2445:3:54","nodeType":"YulIdentifier","src":"2445:3:54"},"nativeSrc":"2445:18:54","nodeType":"YulFunctionCall","src":"2445:18:54"},{"hexValue":"646472657373","kind":"string","nativeSrc":"2465:8:54","nodeType":"YulLiteral","src":"2465:8:54","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"2438:6:54","nodeType":"YulIdentifier","src":"2438:6:54"},"nativeSrc":"2438:36:54","nodeType":"YulFunctionCall","src":"2438:36:54"},"nativeSrc":"2438:36:54","nodeType":"YulExpressionStatement","src":"2438:36:54"},{"nativeSrc":"2483:27:54","nodeType":"YulAssignment","src":"2483:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2495:9:54","nodeType":"YulIdentifier","src":"2495:9:54"},{"kind":"number","nativeSrc":"2506:3:54","nodeType":"YulLiteral","src":"2506:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2491:3:54","nodeType":"YulIdentifier","src":"2491:3:54"},"nativeSrc":"2491:19:54","nodeType":"YulFunctionCall","src":"2491:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2483:4:54","nodeType":"YulIdentifier","src":"2483:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2114:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2265:9:54","nodeType":"YulTypedName","src":"2265:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2279:4:54","nodeType":"YulTypedName","src":"2279:4:54","type":""}],"src":"2114:402:54"},{"body":{"nativeSrc":"2695:235:54","nodeType":"YulBlock","src":"2695:235:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2712:9:54","nodeType":"YulIdentifier","src":"2712:9:54"},{"kind":"number","nativeSrc":"2723:2:54","nodeType":"YulLiteral","src":"2723:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2705:6:54","nodeType":"YulIdentifier","src":"2705:6:54"},"nativeSrc":"2705:21:54","nodeType":"YulFunctionCall","src":"2705:21:54"},"nativeSrc":"2705:21:54","nodeType":"YulExpressionStatement","src":"2705:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2746:9:54","nodeType":"YulIdentifier","src":"2746:9:54"},{"kind":"number","nativeSrc":"2757:2:54","nodeType":"YulLiteral","src":"2757:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2742:3:54","nodeType":"YulIdentifier","src":"2742:3:54"},"nativeSrc":"2742:18:54","nodeType":"YulFunctionCall","src":"2742:18:54"},{"kind":"number","nativeSrc":"2762:2:54","nodeType":"YulLiteral","src":"2762:2:54","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"2735:6:54","nodeType":"YulIdentifier","src":"2735:6:54"},"nativeSrc":"2735:30:54","nodeType":"YulFunctionCall","src":"2735:30:54"},"nativeSrc":"2735:30:54","nodeType":"YulExpressionStatement","src":"2735:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2785:9:54","nodeType":"YulIdentifier","src":"2785:9:54"},{"kind":"number","nativeSrc":"2796:2:54","nodeType":"YulLiteral","src":"2796:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2781:3:54","nodeType":"YulIdentifier","src":"2781:3:54"},"nativeSrc":"2781:18:54","nodeType":"YulFunctionCall","src":"2781:18:54"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"2801:34:54","nodeType":"YulLiteral","src":"2801:34:54","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2774:6:54","nodeType":"YulIdentifier","src":"2774:6:54"},"nativeSrc":"2774:62:54","nodeType":"YulFunctionCall","src":"2774:62:54"},"nativeSrc":"2774:62:54","nodeType":"YulExpressionStatement","src":"2774:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2856:9:54","nodeType":"YulIdentifier","src":"2856:9:54"},{"kind":"number","nativeSrc":"2867:2:54","nodeType":"YulLiteral","src":"2867:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2852:3:54","nodeType":"YulIdentifier","src":"2852:3:54"},"nativeSrc":"2852:18:54","nodeType":"YulFunctionCall","src":"2852:18:54"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"2872:15:54","nodeType":"YulLiteral","src":"2872:15:54","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"2845:6:54","nodeType":"YulIdentifier","src":"2845:6:54"},"nativeSrc":"2845:43:54","nodeType":"YulFunctionCall","src":"2845:43:54"},"nativeSrc":"2845:43:54","nodeType":"YulExpressionStatement","src":"2845:43:54"},{"nativeSrc":"2897:27:54","nodeType":"YulAssignment","src":"2897:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2909:9:54","nodeType":"YulIdentifier","src":"2909:9:54"},{"kind":"number","nativeSrc":"2920:3:54","nodeType":"YulLiteral","src":"2920:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2905:3:54","nodeType":"YulIdentifier","src":"2905:3:54"},"nativeSrc":"2905:19:54","nodeType":"YulFunctionCall","src":"2905:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2897:4:54","nodeType":"YulIdentifier","src":"2897:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2521:409:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2672:9:54","nodeType":"YulTypedName","src":"2672:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2686:4:54","nodeType":"YulTypedName","src":"2686:4:54","type":""}],"src":"2521:409:54"},{"body":{"nativeSrc":"3109:228:54","nodeType":"YulBlock","src":"3109:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3126:9:54","nodeType":"YulIdentifier","src":"3126:9:54"},{"kind":"number","nativeSrc":"3137:2:54","nodeType":"YulLiteral","src":"3137:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3119:6:54","nodeType":"YulIdentifier","src":"3119:6:54"},"nativeSrc":"3119:21:54","nodeType":"YulFunctionCall","src":"3119:21:54"},"nativeSrc":"3119:21:54","nodeType":"YulExpressionStatement","src":"3119:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3160:9:54","nodeType":"YulIdentifier","src":"3160:9:54"},{"kind":"number","nativeSrc":"3171:2:54","nodeType":"YulLiteral","src":"3171:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3156:3:54","nodeType":"YulIdentifier","src":"3156:3:54"},"nativeSrc":"3156:18:54","nodeType":"YulFunctionCall","src":"3156:18:54"},{"kind":"number","nativeSrc":"3176:2:54","nodeType":"YulLiteral","src":"3176:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"3149:6:54","nodeType":"YulIdentifier","src":"3149:6:54"},"nativeSrc":"3149:30:54","nodeType":"YulFunctionCall","src":"3149:30:54"},"nativeSrc":"3149:30:54","nodeType":"YulExpressionStatement","src":"3149:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3199:9:54","nodeType":"YulIdentifier","src":"3199:9:54"},{"kind":"number","nativeSrc":"3210:2:54","nodeType":"YulLiteral","src":"3210:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3195:3:54","nodeType":"YulIdentifier","src":"3195:3:54"},"nativeSrc":"3195:18:54","nodeType":"YulFunctionCall","src":"3195:18:54"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"3215:34:54","nodeType":"YulLiteral","src":"3215:34:54","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"3188:6:54","nodeType":"YulIdentifier","src":"3188:6:54"},"nativeSrc":"3188:62:54","nodeType":"YulFunctionCall","src":"3188:62:54"},"nativeSrc":"3188:62:54","nodeType":"YulExpressionStatement","src":"3188:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3270:9:54","nodeType":"YulIdentifier","src":"3270:9:54"},{"kind":"number","nativeSrc":"3281:2:54","nodeType":"YulLiteral","src":"3281:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3266:3:54","nodeType":"YulIdentifier","src":"3266:3:54"},"nativeSrc":"3266:18:54","nodeType":"YulFunctionCall","src":"3266:18:54"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"3286:8:54","nodeType":"YulLiteral","src":"3286:8:54","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"3259:6:54","nodeType":"YulIdentifier","src":"3259:6:54"},"nativeSrc":"3259:36:54","nodeType":"YulFunctionCall","src":"3259:36:54"},"nativeSrc":"3259:36:54","nodeType":"YulExpressionStatement","src":"3259:36:54"},{"nativeSrc":"3304:27:54","nodeType":"YulAssignment","src":"3304:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3316:9:54","nodeType":"YulIdentifier","src":"3316:9:54"},{"kind":"number","nativeSrc":"3327:3:54","nodeType":"YulLiteral","src":"3327:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3312:3:54","nodeType":"YulIdentifier","src":"3312:3:54"},"nativeSrc":"3312:19:54","nodeType":"YulFunctionCall","src":"3312:19:54"},"variableNames":[{"name":"tail","nativeSrc":"3304:4:54","nodeType":"YulIdentifier","src":"3304:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2935:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3086:9:54","nodeType":"YulTypedName","src":"3086:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3100:4:54","nodeType":"YulTypedName","src":"3100:4:54","type":""}],"src":"2935:402:54"},{"body":{"nativeSrc":"3408:184:54","nodeType":"YulBlock","src":"3408:184:54","statements":[{"nativeSrc":"3418:10:54","nodeType":"YulVariableDeclaration","src":"3418:10:54","value":{"kind":"number","nativeSrc":"3427:1:54","nodeType":"YulLiteral","src":"3427:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3422:1:54","nodeType":"YulTypedName","src":"3422:1:54","type":""}]},{"body":{"nativeSrc":"3487:63:54","nodeType":"YulBlock","src":"3487:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3512:3:54","nodeType":"YulIdentifier","src":"3512:3:54"},{"name":"i","nativeSrc":"3517:1:54","nodeType":"YulIdentifier","src":"3517:1:54"}],"functionName":{"name":"add","nativeSrc":"3508:3:54","nodeType":"YulIdentifier","src":"3508:3:54"},"nativeSrc":"3508:11:54","nodeType":"YulFunctionCall","src":"3508:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3531:3:54","nodeType":"YulIdentifier","src":"3531:3:54"},{"name":"i","nativeSrc":"3536:1:54","nodeType":"YulIdentifier","src":"3536:1:54"}],"functionName":{"name":"add","nativeSrc":"3527:3:54","nodeType":"YulIdentifier","src":"3527:3:54"},"nativeSrc":"3527:11:54","nodeType":"YulFunctionCall","src":"3527:11:54"}],"functionName":{"name":"mload","nativeSrc":"3521:5:54","nodeType":"YulIdentifier","src":"3521:5:54"},"nativeSrc":"3521:18:54","nodeType":"YulFunctionCall","src":"3521:18:54"}],"functionName":{"name":"mstore","nativeSrc":"3501:6:54","nodeType":"YulIdentifier","src":"3501:6:54"},"nativeSrc":"3501:39:54","nodeType":"YulFunctionCall","src":"3501:39:54"},"nativeSrc":"3501:39:54","nodeType":"YulExpressionStatement","src":"3501:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3448:1:54","nodeType":"YulIdentifier","src":"3448:1:54"},{"name":"length","nativeSrc":"3451:6:54","nodeType":"YulIdentifier","src":"3451:6:54"}],"functionName":{"name":"lt","nativeSrc":"3445:2:54","nodeType":"YulIdentifier","src":"3445:2:54"},"nativeSrc":"3445:13:54","nodeType":"YulFunctionCall","src":"3445:13:54"},"nativeSrc":"3437:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"3459:19:54","nodeType":"YulBlock","src":"3459:19:54","statements":[{"nativeSrc":"3461:15:54","nodeType":"YulAssignment","src":"3461:15:54","value":{"arguments":[{"name":"i","nativeSrc":"3470:1:54","nodeType":"YulIdentifier","src":"3470:1:54"},{"kind":"number","nativeSrc":"3473:2:54","nodeType":"YulLiteral","src":"3473:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3466:3:54","nodeType":"YulIdentifier","src":"3466:3:54"},"nativeSrc":"3466:10:54","nodeType":"YulFunctionCall","src":"3466:10:54"},"variableNames":[{"name":"i","nativeSrc":"3461:1:54","nodeType":"YulIdentifier","src":"3461:1:54"}]}]},"pre":{"nativeSrc":"3441:3:54","nodeType":"YulBlock","src":"3441:3:54","statements":[]},"src":"3437:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3570:3:54","nodeType":"YulIdentifier","src":"3570:3:54"},{"name":"length","nativeSrc":"3575:6:54","nodeType":"YulIdentifier","src":"3575:6:54"}],"functionName":{"name":"add","nativeSrc":"3566:3:54","nodeType":"YulIdentifier","src":"3566:3:54"},"nativeSrc":"3566:16:54","nodeType":"YulFunctionCall","src":"3566:16:54"},{"kind":"number","nativeSrc":"3584:1:54","nodeType":"YulLiteral","src":"3584:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3559:6:54","nodeType":"YulIdentifier","src":"3559:6:54"},"nativeSrc":"3559:27:54","nodeType":"YulFunctionCall","src":"3559:27:54"},"nativeSrc":"3559:27:54","nodeType":"YulExpressionStatement","src":"3559:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3342:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3386:3:54","nodeType":"YulTypedName","src":"3386:3:54","type":""},{"name":"dst","nativeSrc":"3391:3:54","nodeType":"YulTypedName","src":"3391:3:54","type":""},{"name":"length","nativeSrc":"3396:6:54","nodeType":"YulTypedName","src":"3396:6:54","type":""}],"src":"3342:250:54"},{"body":{"nativeSrc":"3734:150:54","nodeType":"YulBlock","src":"3734:150:54","statements":[{"nativeSrc":"3744:27:54","nodeType":"YulVariableDeclaration","src":"3744:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"3764:6:54","nodeType":"YulIdentifier","src":"3764:6:54"}],"functionName":{"name":"mload","nativeSrc":"3758:5:54","nodeType":"YulIdentifier","src":"3758:5:54"},"nativeSrc":"3758:13:54","nodeType":"YulFunctionCall","src":"3758:13:54"},"variables":[{"name":"length","nativeSrc":"3748:6:54","nodeType":"YulTypedName","src":"3748:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3819:6:54","nodeType":"YulIdentifier","src":"3819:6:54"},{"kind":"number","nativeSrc":"3827:4:54","nodeType":"YulLiteral","src":"3827:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3815:3:54","nodeType":"YulIdentifier","src":"3815:3:54"},"nativeSrc":"3815:17:54","nodeType":"YulFunctionCall","src":"3815:17:54"},{"name":"pos","nativeSrc":"3834:3:54","nodeType":"YulIdentifier","src":"3834:3:54"},{"name":"length","nativeSrc":"3839:6:54","nodeType":"YulIdentifier","src":"3839:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3780:34:54","nodeType":"YulIdentifier","src":"3780:34:54"},"nativeSrc":"3780:66:54","nodeType":"YulFunctionCall","src":"3780:66:54"},"nativeSrc":"3780:66:54","nodeType":"YulExpressionStatement","src":"3780:66:54"},{"nativeSrc":"3855:23:54","nodeType":"YulAssignment","src":"3855:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"3866:3:54","nodeType":"YulIdentifier","src":"3866:3:54"},{"name":"length","nativeSrc":"3871:6:54","nodeType":"YulIdentifier","src":"3871:6:54"}],"functionName":{"name":"add","nativeSrc":"3862:3:54","nodeType":"YulIdentifier","src":"3862:3:54"},"nativeSrc":"3862:16:54","nodeType":"YulFunctionCall","src":"3862:16:54"},"variableNames":[{"name":"end","nativeSrc":"3855:3:54","nodeType":"YulIdentifier","src":"3855:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3597:287:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3710:3:54","nodeType":"YulTypedName","src":"3710:3:54","type":""},{"name":"value0","nativeSrc":"3715:6:54","nodeType":"YulTypedName","src":"3715:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3726:3:54","nodeType":"YulTypedName","src":"3726:3:54","type":""}],"src":"3597:287:54"},{"body":{"nativeSrc":"4010:334:54","nodeType":"YulBlock","src":"4010:334:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4027:9:54","nodeType":"YulIdentifier","src":"4027:9:54"},{"kind":"number","nativeSrc":"4038:2:54","nodeType":"YulLiteral","src":"4038:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4020:6:54","nodeType":"YulIdentifier","src":"4020:6:54"},"nativeSrc":"4020:21:54","nodeType":"YulFunctionCall","src":"4020:21:54"},"nativeSrc":"4020:21:54","nodeType":"YulExpressionStatement","src":"4020:21:54"},{"nativeSrc":"4050:27:54","nodeType":"YulVariableDeclaration","src":"4050:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"4070:6:54","nodeType":"YulIdentifier","src":"4070:6:54"}],"functionName":{"name":"mload","nativeSrc":"4064:5:54","nodeType":"YulIdentifier","src":"4064:5:54"},"nativeSrc":"4064:13:54","nodeType":"YulFunctionCall","src":"4064:13:54"},"variables":[{"name":"length","nativeSrc":"4054:6:54","nodeType":"YulTypedName","src":"4054:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4097:9:54","nodeType":"YulIdentifier","src":"4097:9:54"},{"kind":"number","nativeSrc":"4108:2:54","nodeType":"YulLiteral","src":"4108:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4093:3:54","nodeType":"YulIdentifier","src":"4093:3:54"},"nativeSrc":"4093:18:54","nodeType":"YulFunctionCall","src":"4093:18:54"},{"name":"length","nativeSrc":"4113:6:54","nodeType":"YulIdentifier","src":"4113:6:54"}],"functionName":{"name":"mstore","nativeSrc":"4086:6:54","nodeType":"YulIdentifier","src":"4086:6:54"},"nativeSrc":"4086:34:54","nodeType":"YulFunctionCall","src":"4086:34:54"},"nativeSrc":"4086:34:54","nodeType":"YulExpressionStatement","src":"4086:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4168:6:54","nodeType":"YulIdentifier","src":"4168:6:54"},{"kind":"number","nativeSrc":"4176:2:54","nodeType":"YulLiteral","src":"4176:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4164:3:54","nodeType":"YulIdentifier","src":"4164:3:54"},"nativeSrc":"4164:15:54","nodeType":"YulFunctionCall","src":"4164:15:54"},{"arguments":[{"name":"headStart","nativeSrc":"4185:9:54","nodeType":"YulIdentifier","src":"4185:9:54"},{"kind":"number","nativeSrc":"4196:2:54","nodeType":"YulLiteral","src":"4196:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4181:3:54","nodeType":"YulIdentifier","src":"4181:3:54"},"nativeSrc":"4181:18:54","nodeType":"YulFunctionCall","src":"4181:18:54"},{"name":"length","nativeSrc":"4201:6:54","nodeType":"YulIdentifier","src":"4201:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4129:34:54","nodeType":"YulIdentifier","src":"4129:34:54"},"nativeSrc":"4129:79:54","nodeType":"YulFunctionCall","src":"4129:79:54"},"nativeSrc":"4129:79:54","nodeType":"YulExpressionStatement","src":"4129:79:54"},{"nativeSrc":"4217:121:54","nodeType":"YulAssignment","src":"4217:121:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4233:9:54","nodeType":"YulIdentifier","src":"4233:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4252:6:54","nodeType":"YulIdentifier","src":"4252:6:54"},{"kind":"number","nativeSrc":"4260:2:54","nodeType":"YulLiteral","src":"4260:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4248:3:54","nodeType":"YulIdentifier","src":"4248:3:54"},"nativeSrc":"4248:15:54","nodeType":"YulFunctionCall","src":"4248:15:54"},{"kind":"number","nativeSrc":"4265:66:54","nodeType":"YulLiteral","src":"4265:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4244:3:54","nodeType":"YulIdentifier","src":"4244:3:54"},"nativeSrc":"4244:88:54","nodeType":"YulFunctionCall","src":"4244:88:54"}],"functionName":{"name":"add","nativeSrc":"4229:3:54","nodeType":"YulIdentifier","src":"4229:3:54"},"nativeSrc":"4229:104:54","nodeType":"YulFunctionCall","src":"4229:104:54"},{"kind":"number","nativeSrc":"4335:2:54","nodeType":"YulLiteral","src":"4335:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4225:3:54","nodeType":"YulIdentifier","src":"4225:3:54"},"nativeSrc":"4225:113:54","nodeType":"YulFunctionCall","src":"4225:113:54"},"variableNames":[{"name":"tail","nativeSrc":"4217:4:54","nodeType":"YulIdentifier","src":"4217:4:54"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3889:455:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3979:9:54","nodeType":"YulTypedName","src":"3979:9:54","type":""},{"name":"value0","nativeSrc":"3990:6:54","nodeType":"YulTypedName","src":"3990:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4001:4:54","nodeType":"YulTypedName","src":"4001:4:54","type":""}],"src":"3889:455:54"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 66)\n        mstore(add(headStart, 64), \"TransparentUpgradeableProxy: adm\")\n        mstore(add(headStart, 96), \"in cannot fallback to proxy targ\")\n        mstore(add(headStart, 128), \"et\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC1967: new admin is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\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    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100e6578063f851a440146101065761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61011b565b005b61006b61011b565b34801561008157600080fd5b5061006b610090366004610879565b610135565b61006b6100a3366004610894565b61017f565b3480156100b457600080fd5b506100bd6101f3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f257600080fd5b5061006b610101366004610879565b610231565b34801561011257600080fd5b506100bd61025e565b61012361028c565b61013361012e610363565b61036d565b565b61013d610391565b73ffffffffffffffffffffffffffffffffffffffff16330361017757610174816040518060200160405280600081525060006103d1565b50565b61017461011b565b610187610391565b73ffffffffffffffffffffffffffffffffffffffff1633036101eb576101e68383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103d1915050565b505050565b6101e661011b565b60006101fd610391565b73ffffffffffffffffffffffffffffffffffffffff16330361022657610221610363565b905090565b61022e61011b565b90565b610239610391565b73ffffffffffffffffffffffffffffffffffffffff16330361017757610174816103fc565b6000610268610391565b73ffffffffffffffffffffffffffffffffffffffff16330361022657610221610391565b610294610391565b73ffffffffffffffffffffffffffffffffffffffff163303610133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b600061022161045d565b3660008037600080366000845af43d6000803e80801561038c573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b5473ffffffffffffffffffffffffffffffffffffffff16919050565b6103da83610485565b6000825111806103e75750805b156101e6576103f683836104d2565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610425610391565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301520160405180910390a1610174816104fe565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6103b5565b61048e8161060a565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606104f783836040518060600160405280602781526020016109a9602791396106d5565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166105a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161035a565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905550565b73ffffffffffffffffffffffffffffffffffffffff81163b6106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161035a565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105c4565b606073ffffffffffffffffffffffffffffffffffffffff84163b61077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161035a565b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516107a3919061093b565b600060405180830381855af49150503d80600081146107de576040519150601f19603f3d011682016040523d82523d6000602084013e6107e3565b606091505b50915091506107f38282866107fd565b9695505050505050565b6060831561080c5750816104f7565b82511561081c5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035a9190610957565b803573ffffffffffffffffffffffffffffffffffffffff8116811461087457600080fd5b919050565b60006020828403121561088b57600080fd5b6104f782610850565b6000806000604084860312156108a957600080fd5b6108b284610850565b9250602084013567ffffffffffffffff808211156108cf57600080fd5b818601915086601f8301126108e357600080fd5b8135818111156108f257600080fd5b87602082850101111561090457600080fd5b6020830194508093505050509250925092565b60005b8381101561093257818101518382015260200161091a565b50506000910152565b6000825161094d818460208701610917565b9190910192915050565b6020815260008251806020840152610976816040850160208701610917565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ea3e4f85f0a1d3fc15be75ff98c694618446f5f89724d4dda961c4ab756e1bcb64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x43 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x106 JUMPI PUSH2 0x6D JUMP JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x95 JUMPI PUSH2 0x6D JUMP JUMPDEST CALLDATASIZE PUSH2 0x6D JUMPI PUSH2 0x6B PUSH2 0x11B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6B PUSH2 0x11B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x879 JUMP JUMPDEST PUSH2 0x135 JUMP JUMPDEST PUSH2 0x6B PUSH2 0xA3 CALLDATASIZE PUSH1 0x4 PUSH2 0x894 JUMP JUMPDEST PUSH2 0x17F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x1F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6B PUSH2 0x101 CALLDATASIZE PUSH1 0x4 PUSH2 0x879 JUMP JUMPDEST PUSH2 0x231 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBD PUSH2 0x25E JUMP JUMPDEST PUSH2 0x123 PUSH2 0x28C JUMP JUMPDEST PUSH2 0x133 PUSH2 0x12E PUSH2 0x363 JUMP JUMPDEST PUSH2 0x36D JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x13D PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x177 JUMPI PUSH2 0x174 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x3D1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x174 PUSH2 0x11B JUMP JUMPDEST PUSH2 0x187 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x1EB JUMPI PUSH2 0x1E6 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 0x3D1 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x11B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x226 JUMPI PUSH2 0x221 PUSH2 0x363 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x22E PUSH2 0x11B JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x239 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x177 JUMPI PUSH2 0x174 DUP2 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x268 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x226 JUMPI PUSH2 0x221 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x294 PUSH2 0x391 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x133 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x221 PUSH2 0x45D 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 0x38C JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DA DUP4 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x3E7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1E6 JUMPI PUSH2 0x3F6 DUP4 DUP4 PUSH2 0x4D2 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x425 PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x174 DUP2 PUSH2 0x4FE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x3B5 JUMP JUMPDEST PUSH2 0x48E DUP2 PUSH2 0x60A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4F7 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9A9 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x6D5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x5A1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x6AE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74206120636F6E747261637400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x5C4 JUMP JUMPDEST PUSH1 0x60 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE PUSH2 0x77B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35A JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x7A3 SWAP2 SWAP1 PUSH2 0x93B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x7DE 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 0x7E3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x7F3 DUP3 DUP3 DUP7 PUSH2 0x7FD JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x80C JUMPI POP DUP2 PUSH2 0x4F7 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x81C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35A SWAP2 SWAP1 PUSH2 0x957 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x88B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4F7 DUP3 PUSH2 0x850 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8B2 DUP5 PUSH2 0x850 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x932 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x91A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x94D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x917 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x976 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x917 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x70667358221220EA3E4F DUP6 CREATE LOG1 0xD3 0xFC ISZERO 0xBE PUSH22 0xFF98C694618446F5F89724D4DDA961C4AB756E1BCB64 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1634:3556:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:46;:9;:11::i;:::-;1634:3556:49;;2680:11:46;:9;:11::i;4032:134:49:-;;;;;;;;;;-1:-1:-1;4032:134:49;;;;;:::i;:::-;;:::i;4542:164::-;;;;;;:::i;:::-;;:::i;3435:129::-;;;;;;;;;;;;;:::i;:::-;;;1252:42:54;1240:55;;;1222:74;;1210:2;1195:18;3435:129:49;;;;;;;3769:103;;;;;;;;;;-1:-1:-1;3769:103:49;;;;;:::i;:::-;;:::i;2879:96::-;;;;;;;;;;;;;:::i;2327:110:46:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4032:134:49:-;2350:11;:9;:11::i;:::-;2336:25;;: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;:::-;2336:25;;:10;:25;2332:99;;4651:48:::1;4669:17;4688:4;;4651:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4694:4:49::1;::::0;-1:-1:-1;4651:17:49::1;::::0;-1:-1:-1;;4651:48:49:i:1;:::-;4542:164:::0;;;:::o;2332:99::-;2409:11;:9;:11::i;3435:129::-;3487:23;2350:11;:9;:11::i;:::-;2336:25;;: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;:::-;2336:25;;:10;:25;2332:99;;3843:22:::1;3856:8;3843:12;:22::i;2879:96::-:0;2922:14;2350:11;:9;:11::i;:::-;2336:25;;:10;:25;2332:99;;2957:11:::1;:9;:11::i;4981:207::-:0;5066:11;:9;:11::i;:::-;5052:25;;:10;:25;5044:104;;;;;;;1509:2:54;5044:104:49;;;1491:21:54;1548:2;1528:18;;;1521:30;1587:34;1567:18;;;1560:62;1658:34;1638:18;;;1631:62;1730:4;1709:19;;;1702:33;1752:19;;5044:104:49;;;;;;;;1240:140:44;1307:12;1338:35;:33;:35::i;953:895:46:-;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:45;4165:7;3847:66;4191:39;:45;;;;4113:130;-1:-1:-1;4113:130:45: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;:::-;4701:35;;;1966:42:54;2035:15;;;2017:34;;2087:15;;;2082:2;2067:18;;2060:43;1929:18;4701:35:45;;;;;;;4746:19;4756:8;4746:9;:19::i;1306:140::-;1359:7;1035:66;1385:48;1599:147:52;1902:152:45;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;;;;;;;;;;1902:152;:::o;6575:198:50:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;6575:198;-1:-1:-1;;;6575:198:50:o;4325:201:45:-;4388:22;;;4380:73;;;;;;;2316:2:54;4380:73:45;;;2298:21:54;2355:2;2335:18;;;2328:30;2394:34;2374:18;;;2367:62;2465:8;2445:18;;;2438:36;2491:19;;4380:73:45;2114:402:54;4380:73:45;4511:8;3847:66;4463:39;:56;;;;;;;;;;;;;;;-1:-1:-1;4325:201:45:o;1537:259::-;1470:19:50;;;;1610:95:45;;;;;;;2723:2:54;1610:95:45;;;2705:21:54;2762:2;2742:18;;;2735:30;2801:34;2781:18;;;2774:62;2872:15;2852:18;;;2845:43;2905:19;;1610:95:45;2521:409:54;1610:95:45;1772:17;1035:66;1715:48;1599:147:52;6959:387:50;7100:12;1470:19;;;;7124:69;;;;;;;3137:2:54;7124:69:50;;;3119:21:54;3176:2;3156:18;;;3149:30;3215:34;3195:18;;;3188:62;3286:8;3266:18;;;3259:36;3312:19;;7124:69:50;2935:402:54;7124:69:50;7205:12;7219:23;7246:6;:19;;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;6959:387;-1:-1:-1;;;;;;6959:387:50:o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:50;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;;;;;;;;;;;:::i;14:196:54:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:665::-;485:6;493;501;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;593:29;612:9;593:29;:::i;:::-;583:39;;673:2;662:9;658:18;645:32;696:18;737:2;729:6;726:14;723:34;;;753:1;750;743:12;723:34;791:6;780:9;776:22;766:32;;836:7;829:4;825:2;821:13;817:27;807:55;;858:1;855;848:12;807:55;898:2;885:16;924:2;916:6;913:14;910:34;;;940:1;937;930:12;910:34;985:7;980:2;971:6;967:2;963:15;959:24;956:37;953:57;;;1006:1;1003;996:12;953:57;1037:2;1033;1029:11;1019:21;;1059:6;1049:16;;;;;406:665;;;;;:::o;3342:250::-;3427:1;3437:113;3451:6;3448:1;3445:13;3437:113;;;3527:11;;;3521:18;3508:11;;;3501:39;3473:2;3466:10;3437:113;;;-1:-1:-1;;3584:1:54;3566:16;;3559:27;3342:250::o;3597:287::-;3726:3;3764:6;3758:13;3780:66;3839:6;3834:3;3827:4;3819:6;3815:17;3780:66;:::i;:::-;3862:16;;;;;3597:287;-1:-1:-1;;3597:287:54:o;3889:455::-;4038:2;4027:9;4020:21;4001:4;4070:6;4064:13;4113:6;4108:2;4097:9;4093:18;4086:34;4129:79;4201:6;4196:2;4185:9;4181:18;4176:2;4168:6;4164:15;4129:79;:::i;:::-;4260:2;4248:15;4265:66;4244:88;4229:104;;;;4335:2;4225:113;;3889:455;-1:-1:-1;;3889:455:54:o"},"gasEstimates":{"creation":{"codeDepositCost":"513000","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\":{\"enabled\":true,\"runs\":10000},\"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":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203765f0fa061807382465d5a73c5e46442a3f7b77448776fea37472035cbe713b64736f6c63430008190033","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 CALLDATACOPY PUSH6 0xF0FA06180738 0x24 PUSH6 0xD5A73C5E4644 0x2A EXTCODEHASH PUSH28 0x77448776FEA37472035CBE713B64736F6C6343000819003300000000 ","sourceMap":"199:8061:50:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;199:8061:50;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203765f0fa061807382465d5a73c5e46442a3f7b77448776fea37472035cbe713b64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH6 0xF0FA06180738 0x24 PUSH6 0xD5A73C5E4644 0x2A EXTCODEHASH PUSH28 0x77448776FEA37472035CBE713B64736F6C6343000819003300000000 ","sourceMap":"199:8061:50:-: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\":{\"enabled\":true,\"runs\":10000},\"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\":{\"enabled\":true,\"runs\":10000},\"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":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b155dca1e0b245887b8ef95f817547816496ba63fa7089fa6958595f97eee3064736f6c63430008190033","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 PUSH28 0x155DCA1E0B245887B8EF95F817547816496BA63FA7089FA6958595F9 PUSH31 0xEE3064736F6C63430008190033000000000000000000000000000000000000 ","sourceMap":"1264:1219:52:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1264:1219:52;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207b155dca1e0b245887b8ef95f817547816496ba63fa7089fa6958595f97eee3064736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x155DCA1E0B245887B8EF95F817547816496BA63FA7089FA6958595F9 PUSH31 0xEE3064736F6C63430008190033000000000000000000000000000000000000 ","sourceMap":"1264:1219:52:-: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\":{\"enabled\":true,\"runs\":10000},\"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":{"@_10597":{"entryPoint":null,"id":10597,"parameterSlots":3,"returnSlots":0},"@_9462":{"entryPoint":null,"id":9462,"parameterSlots":2,"returnSlots":0},"@_setImplementation_9531":{"entryPoint":450,"id":9531,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9576":{"entryPoint":296,"id":9576,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9546":{"entryPoint":340,"id":9546,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_10392":{"entryPoint":404,"id":10392,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_10427":{"entryPoint":611,"id":10427,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10507":{"entryPoint":null,"id":10507,"parameterSlots":1,"returnSlots":1},"@isContract_10182":{"entryPoint":null,"id":10182,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_10458":{"entryPoint":835,"id":10458,"parameterSlots":3,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":892,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":978,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1241,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1269,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1186,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":942,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x01":{"entryPoint":1219,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":920,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3836:54","nodeType":"YulBlock","src":"0:3836:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"74:117:54","nodeType":"YulBlock","src":"74:117:54","statements":[{"nativeSrc":"84:22:54","nodeType":"YulAssignment","src":"84:22:54","value":{"arguments":[{"name":"offset","nativeSrc":"99:6:54","nodeType":"YulIdentifier","src":"99:6:54"}],"functionName":{"name":"mload","nativeSrc":"93:5:54","nodeType":"YulIdentifier","src":"93:5:54"},"nativeSrc":"93:13:54","nodeType":"YulFunctionCall","src":"93:13:54"},"variableNames":[{"name":"value","nativeSrc":"84:5:54","nodeType":"YulIdentifier","src":"84:5:54"}]},{"body":{"nativeSrc":"169:16:54","nodeType":"YulBlock","src":"169:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:54","nodeType":"YulLiteral","src":"178:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:54","nodeType":"YulLiteral","src":"181:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:54","nodeType":"YulIdentifier","src":"171:6:54"},"nativeSrc":"171:12:54","nodeType":"YulFunctionCall","src":"171:12:54"},"nativeSrc":"171:12:54","nodeType":"YulExpressionStatement","src":"171:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"128:5:54","nodeType":"YulIdentifier","src":"128:5:54"},{"arguments":[{"name":"value","nativeSrc":"139:5:54","nodeType":"YulIdentifier","src":"139:5:54"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"154:3:54","nodeType":"YulLiteral","src":"154:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"159:1:54","nodeType":"YulLiteral","src":"159:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"150:3:54","nodeType":"YulIdentifier","src":"150:3:54"},"nativeSrc":"150:11:54","nodeType":"YulFunctionCall","src":"150:11:54"},{"kind":"number","nativeSrc":"163:1:54","nodeType":"YulLiteral","src":"163:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"146:3:54","nodeType":"YulIdentifier","src":"146:3:54"},"nativeSrc":"146:19:54","nodeType":"YulFunctionCall","src":"146:19:54"}],"functionName":{"name":"and","nativeSrc":"135:3:54","nodeType":"YulIdentifier","src":"135:3:54"},"nativeSrc":"135:31:54","nodeType":"YulFunctionCall","src":"135:31:54"}],"functionName":{"name":"eq","nativeSrc":"125:2:54","nodeType":"YulIdentifier","src":"125:2:54"},"nativeSrc":"125:42:54","nodeType":"YulFunctionCall","src":"125:42:54"}],"functionName":{"name":"iszero","nativeSrc":"118:6:54","nodeType":"YulIdentifier","src":"118:6:54"},"nativeSrc":"118:50:54","nodeType":"YulFunctionCall","src":"118:50:54"},"nativeSrc":"115:70:54","nodeType":"YulIf","src":"115:70:54"}]},"name":"abi_decode_address_fromMemory","nativeSrc":"14:177:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"53:6:54","nodeType":"YulTypedName","src":"53:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"64:5:54","nodeType":"YulTypedName","src":"64:5:54","type":""}],"src":"14:177:54"},{"body":{"nativeSrc":"228:95:54","nodeType":"YulBlock","src":"228:95:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"245:1:54","nodeType":"YulLiteral","src":"245:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"252:3:54","nodeType":"YulLiteral","src":"252:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"257:10:54","nodeType":"YulLiteral","src":"257:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"248:3:54","nodeType":"YulIdentifier","src":"248:3:54"},"nativeSrc":"248:20:54","nodeType":"YulFunctionCall","src":"248:20:54"}],"functionName":{"name":"mstore","nativeSrc":"238:6:54","nodeType":"YulIdentifier","src":"238:6:54"},"nativeSrc":"238:31:54","nodeType":"YulFunctionCall","src":"238:31:54"},"nativeSrc":"238:31:54","nodeType":"YulExpressionStatement","src":"238:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285:1:54","nodeType":"YulLiteral","src":"285:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"288:4:54","nodeType":"YulLiteral","src":"288:4:54","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"278:6:54","nodeType":"YulIdentifier","src":"278:6:54"},"nativeSrc":"278:15:54","nodeType":"YulFunctionCall","src":"278:15:54"},"nativeSrc":"278:15:54","nodeType":"YulExpressionStatement","src":"278:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309:1:54","nodeType":"YulLiteral","src":"309:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"312:4:54","nodeType":"YulLiteral","src":"312:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"302:6:54","nodeType":"YulIdentifier","src":"302:6:54"},"nativeSrc":"302:15:54","nodeType":"YulFunctionCall","src":"302:15:54"},"nativeSrc":"302:15:54","nodeType":"YulExpressionStatement","src":"302:15:54"}]},"name":"panic_error_0x41","nativeSrc":"196:127:54","nodeType":"YulFunctionDefinition","src":"196:127:54"},{"body":{"nativeSrc":"394:184:54","nodeType":"YulBlock","src":"394:184:54","statements":[{"nativeSrc":"404:10:54","nodeType":"YulVariableDeclaration","src":"404:10:54","value":{"kind":"number","nativeSrc":"413:1:54","nodeType":"YulLiteral","src":"413:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"408:1:54","nodeType":"YulTypedName","src":"408:1:54","type":""}]},{"body":{"nativeSrc":"473:63:54","nodeType":"YulBlock","src":"473:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"498:3:54","nodeType":"YulIdentifier","src":"498:3:54"},{"name":"i","nativeSrc":"503:1:54","nodeType":"YulIdentifier","src":"503:1:54"}],"functionName":{"name":"add","nativeSrc":"494:3:54","nodeType":"YulIdentifier","src":"494:3:54"},"nativeSrc":"494:11:54","nodeType":"YulFunctionCall","src":"494:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"517:3:54","nodeType":"YulIdentifier","src":"517:3:54"},{"name":"i","nativeSrc":"522:1:54","nodeType":"YulIdentifier","src":"522:1:54"}],"functionName":{"name":"add","nativeSrc":"513:3:54","nodeType":"YulIdentifier","src":"513:3:54"},"nativeSrc":"513:11:54","nodeType":"YulFunctionCall","src":"513:11:54"}],"functionName":{"name":"mload","nativeSrc":"507:5:54","nodeType":"YulIdentifier","src":"507:5:54"},"nativeSrc":"507:18:54","nodeType":"YulFunctionCall","src":"507:18:54"}],"functionName":{"name":"mstore","nativeSrc":"487:6:54","nodeType":"YulIdentifier","src":"487:6:54"},"nativeSrc":"487:39:54","nodeType":"YulFunctionCall","src":"487:39:54"},"nativeSrc":"487:39:54","nodeType":"YulExpressionStatement","src":"487:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"434:1:54","nodeType":"YulIdentifier","src":"434:1:54"},{"name":"length","nativeSrc":"437:6:54","nodeType":"YulIdentifier","src":"437:6:54"}],"functionName":{"name":"lt","nativeSrc":"431:2:54","nodeType":"YulIdentifier","src":"431:2:54"},"nativeSrc":"431:13:54","nodeType":"YulFunctionCall","src":"431:13:54"},"nativeSrc":"423:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"445:19:54","nodeType":"YulBlock","src":"445:19:54","statements":[{"nativeSrc":"447:15:54","nodeType":"YulAssignment","src":"447:15:54","value":{"arguments":[{"name":"i","nativeSrc":"456:1:54","nodeType":"YulIdentifier","src":"456:1:54"},{"kind":"number","nativeSrc":"459:2:54","nodeType":"YulLiteral","src":"459:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"452:3:54","nodeType":"YulIdentifier","src":"452:3:54"},"nativeSrc":"452:10:54","nodeType":"YulFunctionCall","src":"452:10:54"},"variableNames":[{"name":"i","nativeSrc":"447:1:54","nodeType":"YulIdentifier","src":"447:1:54"}]}]},"pre":{"nativeSrc":"427:3:54","nodeType":"YulBlock","src":"427:3:54","statements":[]},"src":"423:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"556:3:54","nodeType":"YulIdentifier","src":"556:3:54"},{"name":"length","nativeSrc":"561:6:54","nodeType":"YulIdentifier","src":"561:6:54"}],"functionName":{"name":"add","nativeSrc":"552:3:54","nodeType":"YulIdentifier","src":"552:3:54"},"nativeSrc":"552:16:54","nodeType":"YulFunctionCall","src":"552:16:54"},{"kind":"number","nativeSrc":"570:1:54","nodeType":"YulLiteral","src":"570:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"545:6:54","nodeType":"YulIdentifier","src":"545:6:54"},"nativeSrc":"545:27:54","nodeType":"YulFunctionCall","src":"545:27:54"},"nativeSrc":"545:27:54","nodeType":"YulExpressionStatement","src":"545:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"328:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"372:3:54","nodeType":"YulTypedName","src":"372:3:54","type":""},{"name":"dst","nativeSrc":"377:3:54","nodeType":"YulTypedName","src":"377:3:54","type":""},{"name":"length","nativeSrc":"382:6:54","nodeType":"YulTypedName","src":"382:6:54","type":""}],"src":"328:250:54"},{"body":{"nativeSrc":"707:942:54","nodeType":"YulBlock","src":"707:942:54","statements":[{"body":{"nativeSrc":"753:16:54","nodeType":"YulBlock","src":"753:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"762:1:54","nodeType":"YulLiteral","src":"762:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"765:1:54","nodeType":"YulLiteral","src":"765:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"755:6:54","nodeType":"YulIdentifier","src":"755:6:54"},"nativeSrc":"755:12:54","nodeType":"YulFunctionCall","src":"755:12:54"},"nativeSrc":"755:12:54","nodeType":"YulExpressionStatement","src":"755:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"728:7:54","nodeType":"YulIdentifier","src":"728:7:54"},{"name":"headStart","nativeSrc":"737:9:54","nodeType":"YulIdentifier","src":"737:9:54"}],"functionName":{"name":"sub","nativeSrc":"724:3:54","nodeType":"YulIdentifier","src":"724:3:54"},"nativeSrc":"724:23:54","nodeType":"YulFunctionCall","src":"724:23:54"},{"kind":"number","nativeSrc":"749:2:54","nodeType":"YulLiteral","src":"749:2:54","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"720:3:54","nodeType":"YulIdentifier","src":"720:3:54"},"nativeSrc":"720:32:54","nodeType":"YulFunctionCall","src":"720:32:54"},"nativeSrc":"717:52:54","nodeType":"YulIf","src":"717:52:54"},{"nativeSrc":"778:50:54","nodeType":"YulAssignment","src":"778:50:54","value":{"arguments":[{"name":"headStart","nativeSrc":"818:9:54","nodeType":"YulIdentifier","src":"818:9:54"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"788:29:54","nodeType":"YulIdentifier","src":"788:29:54"},"nativeSrc":"788:40:54","nodeType":"YulFunctionCall","src":"788:40:54"},"variableNames":[{"name":"value0","nativeSrc":"778:6:54","nodeType":"YulIdentifier","src":"778:6:54"}]},{"nativeSrc":"837:59:54","nodeType":"YulAssignment","src":"837:59:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"881:9:54","nodeType":"YulIdentifier","src":"881:9:54"},{"kind":"number","nativeSrc":"892:2:54","nodeType":"YulLiteral","src":"892:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"877:3:54","nodeType":"YulIdentifier","src":"877:3:54"},"nativeSrc":"877:18:54","nodeType":"YulFunctionCall","src":"877:18:54"}],"functionName":{"name":"abi_decode_address_fromMemory","nativeSrc":"847:29:54","nodeType":"YulIdentifier","src":"847:29:54"},"nativeSrc":"847:49:54","nodeType":"YulFunctionCall","src":"847:49:54"},"variableNames":[{"name":"value1","nativeSrc":"837:6:54","nodeType":"YulIdentifier","src":"837:6:54"}]},{"nativeSrc":"905:39:54","nodeType":"YulVariableDeclaration","src":"905:39:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"929:9:54","nodeType":"YulIdentifier","src":"929:9:54"},{"kind":"number","nativeSrc":"940:2:54","nodeType":"YulLiteral","src":"940:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"925:3:54","nodeType":"YulIdentifier","src":"925:3:54"},"nativeSrc":"925:18:54","nodeType":"YulFunctionCall","src":"925:18:54"}],"functionName":{"name":"mload","nativeSrc":"919:5:54","nodeType":"YulIdentifier","src":"919:5:54"},"nativeSrc":"919:25:54","nodeType":"YulFunctionCall","src":"919:25:54"},"variables":[{"name":"offset","nativeSrc":"909:6:54","nodeType":"YulTypedName","src":"909:6:54","type":""}]},{"nativeSrc":"953:28:54","nodeType":"YulVariableDeclaration","src":"953:28:54","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"971:2:54","nodeType":"YulLiteral","src":"971:2:54","type":"","value":"64"},{"kind":"number","nativeSrc":"975:1:54","nodeType":"YulLiteral","src":"975:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"967:3:54","nodeType":"YulIdentifier","src":"967:3:54"},"nativeSrc":"967:10:54","nodeType":"YulFunctionCall","src":"967:10:54"},{"kind":"number","nativeSrc":"979:1:54","nodeType":"YulLiteral","src":"979:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"963:3:54","nodeType":"YulIdentifier","src":"963:3:54"},"nativeSrc":"963:18:54","nodeType":"YulFunctionCall","src":"963:18:54"},"variables":[{"name":"_1","nativeSrc":"957:2:54","nodeType":"YulTypedName","src":"957:2:54","type":""}]},{"body":{"nativeSrc":"1008:16:54","nodeType":"YulBlock","src":"1008:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1017:1:54","nodeType":"YulLiteral","src":"1017:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1020:1:54","nodeType":"YulLiteral","src":"1020:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1010:6:54","nodeType":"YulIdentifier","src":"1010:6:54"},"nativeSrc":"1010:12:54","nodeType":"YulFunctionCall","src":"1010:12:54"},"nativeSrc":"1010:12:54","nodeType":"YulExpressionStatement","src":"1010:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"996:6:54","nodeType":"YulIdentifier","src":"996:6:54"},{"name":"_1","nativeSrc":"1004:2:54","nodeType":"YulIdentifier","src":"1004:2:54"}],"functionName":{"name":"gt","nativeSrc":"993:2:54","nodeType":"YulIdentifier","src":"993:2:54"},"nativeSrc":"993:14:54","nodeType":"YulFunctionCall","src":"993:14:54"},"nativeSrc":"990:34:54","nodeType":"YulIf","src":"990:34:54"},{"nativeSrc":"1033:32:54","nodeType":"YulVariableDeclaration","src":"1033:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1047:9:54","nodeType":"YulIdentifier","src":"1047:9:54"},{"name":"offset","nativeSrc":"1058:6:54","nodeType":"YulIdentifier","src":"1058:6:54"}],"functionName":{"name":"add","nativeSrc":"1043:3:54","nodeType":"YulIdentifier","src":"1043:3:54"},"nativeSrc":"1043:22:54","nodeType":"YulFunctionCall","src":"1043:22:54"},"variables":[{"name":"_2","nativeSrc":"1037:2:54","nodeType":"YulTypedName","src":"1037:2:54","type":""}]},{"body":{"nativeSrc":"1113:16:54","nodeType":"YulBlock","src":"1113:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1122:1:54","nodeType":"YulLiteral","src":"1122:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1125:1:54","nodeType":"YulLiteral","src":"1125:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1115:6:54","nodeType":"YulIdentifier","src":"1115:6:54"},"nativeSrc":"1115:12:54","nodeType":"YulFunctionCall","src":"1115:12:54"},"nativeSrc":"1115:12:54","nodeType":"YulExpressionStatement","src":"1115:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1092:2:54","nodeType":"YulIdentifier","src":"1092:2:54"},{"kind":"number","nativeSrc":"1096:4:54","nodeType":"YulLiteral","src":"1096:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1088:3:54","nodeType":"YulIdentifier","src":"1088:3:54"},"nativeSrc":"1088:13:54","nodeType":"YulFunctionCall","src":"1088:13:54"},{"name":"dataEnd","nativeSrc":"1103:7:54","nodeType":"YulIdentifier","src":"1103:7:54"}],"functionName":{"name":"slt","nativeSrc":"1084:3:54","nodeType":"YulIdentifier","src":"1084:3:54"},"nativeSrc":"1084:27:54","nodeType":"YulFunctionCall","src":"1084:27:54"}],"functionName":{"name":"iszero","nativeSrc":"1077:6:54","nodeType":"YulIdentifier","src":"1077:6:54"},"nativeSrc":"1077:35:54","nodeType":"YulFunctionCall","src":"1077:35:54"},"nativeSrc":"1074:55:54","nodeType":"YulIf","src":"1074:55:54"},{"nativeSrc":"1138:19:54","nodeType":"YulVariableDeclaration","src":"1138:19:54","value":{"arguments":[{"name":"_2","nativeSrc":"1154:2:54","nodeType":"YulIdentifier","src":"1154:2:54"}],"functionName":{"name":"mload","nativeSrc":"1148:5:54","nodeType":"YulIdentifier","src":"1148:5:54"},"nativeSrc":"1148:9:54","nodeType":"YulFunctionCall","src":"1148:9:54"},"variables":[{"name":"_3","nativeSrc":"1142:2:54","nodeType":"YulTypedName","src":"1142:2:54","type":""}]},{"body":{"nativeSrc":"1180:22:54","nodeType":"YulBlock","src":"1180:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1182:16:54","nodeType":"YulIdentifier","src":"1182:16:54"},"nativeSrc":"1182:18:54","nodeType":"YulFunctionCall","src":"1182:18:54"},"nativeSrc":"1182:18:54","nodeType":"YulExpressionStatement","src":"1182:18:54"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"1172:2:54","nodeType":"YulIdentifier","src":"1172:2:54"},{"name":"_1","nativeSrc":"1176:2:54","nodeType":"YulIdentifier","src":"1176:2:54"}],"functionName":{"name":"gt","nativeSrc":"1169:2:54","nodeType":"YulIdentifier","src":"1169:2:54"},"nativeSrc":"1169:10:54","nodeType":"YulFunctionCall","src":"1169:10:54"},"nativeSrc":"1166:36:54","nodeType":"YulIf","src":"1166:36:54"},{"nativeSrc":"1211:17:54","nodeType":"YulVariableDeclaration","src":"1211:17:54","value":{"arguments":[{"kind":"number","nativeSrc":"1225:2:54","nodeType":"YulLiteral","src":"1225:2:54","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1221:3:54","nodeType":"YulIdentifier","src":"1221:3:54"},"nativeSrc":"1221:7:54","nodeType":"YulFunctionCall","src":"1221:7:54"},"variables":[{"name":"_4","nativeSrc":"1215:2:54","nodeType":"YulTypedName","src":"1215:2:54","type":""}]},{"nativeSrc":"1237:23:54","nodeType":"YulVariableDeclaration","src":"1237:23:54","value":{"arguments":[{"kind":"number","nativeSrc":"1257:2:54","nodeType":"YulLiteral","src":"1257:2:54","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1251:5:54","nodeType":"YulIdentifier","src":"1251:5:54"},"nativeSrc":"1251:9:54","nodeType":"YulFunctionCall","src":"1251:9:54"},"variables":[{"name":"memPtr","nativeSrc":"1241:6:54","nodeType":"YulTypedName","src":"1241:6:54","type":""}]},{"nativeSrc":"1269:71:54","nodeType":"YulVariableDeclaration","src":"1269:71:54","value":{"arguments":[{"name":"memPtr","nativeSrc":"1291:6:54","nodeType":"YulIdentifier","src":"1291:6:54"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"1315:2:54","nodeType":"YulIdentifier","src":"1315:2:54"},{"kind":"number","nativeSrc":"1319:4:54","nodeType":"YulLiteral","src":"1319:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1311:3:54","nodeType":"YulIdentifier","src":"1311:3:54"},"nativeSrc":"1311:13:54","nodeType":"YulFunctionCall","src":"1311:13:54"},{"name":"_4","nativeSrc":"1326:2:54","nodeType":"YulIdentifier","src":"1326:2:54"}],"functionName":{"name":"and","nativeSrc":"1307:3:54","nodeType":"YulIdentifier","src":"1307:3:54"},"nativeSrc":"1307:22:54","nodeType":"YulFunctionCall","src":"1307:22:54"},{"kind":"number","nativeSrc":"1331:2:54","nodeType":"YulLiteral","src":"1331:2:54","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1303:3:54","nodeType":"YulIdentifier","src":"1303:3:54"},"nativeSrc":"1303:31:54","nodeType":"YulFunctionCall","src":"1303:31:54"},{"name":"_4","nativeSrc":"1336:2:54","nodeType":"YulIdentifier","src":"1336:2:54"}],"functionName":{"name":"and","nativeSrc":"1299:3:54","nodeType":"YulIdentifier","src":"1299:3:54"},"nativeSrc":"1299:40:54","nodeType":"YulFunctionCall","src":"1299:40:54"}],"functionName":{"name":"add","nativeSrc":"1287:3:54","nodeType":"YulIdentifier","src":"1287:3:54"},"nativeSrc":"1287:53:54","nodeType":"YulFunctionCall","src":"1287:53:54"},"variables":[{"name":"newFreePtr","nativeSrc":"1273:10:54","nodeType":"YulTypedName","src":"1273:10:54","type":""}]},{"body":{"nativeSrc":"1399:22:54","nodeType":"YulBlock","src":"1399:22:54","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1401:16:54","nodeType":"YulIdentifier","src":"1401:16:54"},"nativeSrc":"1401:18:54","nodeType":"YulFunctionCall","src":"1401:18:54"},"nativeSrc":"1401:18:54","nodeType":"YulExpressionStatement","src":"1401:18:54"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1358:10:54","nodeType":"YulIdentifier","src":"1358:10:54"},{"name":"_1","nativeSrc":"1370:2:54","nodeType":"YulIdentifier","src":"1370:2:54"}],"functionName":{"name":"gt","nativeSrc":"1355:2:54","nodeType":"YulIdentifier","src":"1355:2:54"},"nativeSrc":"1355:18:54","nodeType":"YulFunctionCall","src":"1355:18:54"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1378:10:54","nodeType":"YulIdentifier","src":"1378:10:54"},{"name":"memPtr","nativeSrc":"1390:6:54","nodeType":"YulIdentifier","src":"1390:6:54"}],"functionName":{"name":"lt","nativeSrc":"1375:2:54","nodeType":"YulIdentifier","src":"1375:2:54"},"nativeSrc":"1375:22:54","nodeType":"YulFunctionCall","src":"1375:22:54"}],"functionName":{"name":"or","nativeSrc":"1352:2:54","nodeType":"YulIdentifier","src":"1352:2:54"},"nativeSrc":"1352:46:54","nodeType":"YulFunctionCall","src":"1352:46:54"},"nativeSrc":"1349:72:54","nodeType":"YulIf","src":"1349:72:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1437:2:54","nodeType":"YulLiteral","src":"1437:2:54","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1441:10:54","nodeType":"YulIdentifier","src":"1441:10:54"}],"functionName":{"name":"mstore","nativeSrc":"1430:6:54","nodeType":"YulIdentifier","src":"1430:6:54"},"nativeSrc":"1430:22:54","nodeType":"YulFunctionCall","src":"1430:22:54"},"nativeSrc":"1430:22:54","nodeType":"YulExpressionStatement","src":"1430:22:54"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1468:6:54","nodeType":"YulIdentifier","src":"1468:6:54"},{"name":"_3","nativeSrc":"1476:2:54","nodeType":"YulIdentifier","src":"1476:2:54"}],"functionName":{"name":"mstore","nativeSrc":"1461:6:54","nodeType":"YulIdentifier","src":"1461:6:54"},"nativeSrc":"1461:18:54","nodeType":"YulFunctionCall","src":"1461:18:54"},"nativeSrc":"1461:18:54","nodeType":"YulExpressionStatement","src":"1461:18:54"},{"body":{"nativeSrc":"1525:16:54","nodeType":"YulBlock","src":"1525:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1534:1:54","nodeType":"YulLiteral","src":"1534:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1537:1:54","nodeType":"YulLiteral","src":"1537:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1527:6:54","nodeType":"YulIdentifier","src":"1527:6:54"},"nativeSrc":"1527:12:54","nodeType":"YulFunctionCall","src":"1527:12:54"},"nativeSrc":"1527:12:54","nodeType":"YulExpressionStatement","src":"1527:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1502:2:54","nodeType":"YulIdentifier","src":"1502:2:54"},{"name":"_3","nativeSrc":"1506:2:54","nodeType":"YulIdentifier","src":"1506:2:54"}],"functionName":{"name":"add","nativeSrc":"1498:3:54","nodeType":"YulIdentifier","src":"1498:3:54"},"nativeSrc":"1498:11:54","nodeType":"YulFunctionCall","src":"1498:11:54"},{"kind":"number","nativeSrc":"1511:2:54","nodeType":"YulLiteral","src":"1511:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1494:3:54","nodeType":"YulIdentifier","src":"1494:3:54"},"nativeSrc":"1494:20:54","nodeType":"YulFunctionCall","src":"1494:20:54"},{"name":"dataEnd","nativeSrc":"1516:7:54","nodeType":"YulIdentifier","src":"1516:7:54"}],"functionName":{"name":"gt","nativeSrc":"1491:2:54","nodeType":"YulIdentifier","src":"1491:2:54"},"nativeSrc":"1491:33:54","nodeType":"YulFunctionCall","src":"1491:33:54"},"nativeSrc":"1488:53:54","nodeType":"YulIf","src":"1488:53:54"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1589:2:54","nodeType":"YulIdentifier","src":"1589:2:54"},{"kind":"number","nativeSrc":"1593:2:54","nodeType":"YulLiteral","src":"1593:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1585:3:54","nodeType":"YulIdentifier","src":"1585:3:54"},"nativeSrc":"1585:11:54","nodeType":"YulFunctionCall","src":"1585:11:54"},{"arguments":[{"name":"memPtr","nativeSrc":"1602:6:54","nodeType":"YulIdentifier","src":"1602:6:54"},{"kind":"number","nativeSrc":"1610:2:54","nodeType":"YulLiteral","src":"1610:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1598:3:54","nodeType":"YulIdentifier","src":"1598:3:54"},"nativeSrc":"1598:15:54","nodeType":"YulFunctionCall","src":"1598:15:54"},{"name":"_3","nativeSrc":"1615:2:54","nodeType":"YulIdentifier","src":"1615:2:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1550:34:54","nodeType":"YulIdentifier","src":"1550:34:54"},"nativeSrc":"1550:68:54","nodeType":"YulFunctionCall","src":"1550:68:54"},"nativeSrc":"1550:68:54","nodeType":"YulExpressionStatement","src":"1550:68:54"},{"nativeSrc":"1627:16:54","nodeType":"YulAssignment","src":"1627:16:54","value":{"name":"memPtr","nativeSrc":"1637:6:54","nodeType":"YulIdentifier","src":"1637:6:54"},"variableNames":[{"name":"value2","nativeSrc":"1627:6:54","nodeType":"YulIdentifier","src":"1627:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"583:1066:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"657:9:54","nodeType":"YulTypedName","src":"657:9:54","type":""},{"name":"dataEnd","nativeSrc":"668:7:54","nodeType":"YulTypedName","src":"668:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"680:6:54","nodeType":"YulTypedName","src":"680:6:54","type":""},{"name":"value1","nativeSrc":"688:6:54","nodeType":"YulTypedName","src":"688:6:54","type":""},{"name":"value2","nativeSrc":"696:6:54","nodeType":"YulTypedName","src":"696:6:54","type":""}],"src":"583:1066:54"},{"body":{"nativeSrc":"1703:176:54","nodeType":"YulBlock","src":"1703:176:54","statements":[{"nativeSrc":"1713:17:54","nodeType":"YulAssignment","src":"1713:17:54","value":{"arguments":[{"name":"x","nativeSrc":"1725:1:54","nodeType":"YulIdentifier","src":"1725:1:54"},{"name":"y","nativeSrc":"1728:1:54","nodeType":"YulIdentifier","src":"1728:1:54"}],"functionName":{"name":"sub","nativeSrc":"1721:3:54","nodeType":"YulIdentifier","src":"1721:3:54"},"nativeSrc":"1721:9:54","nodeType":"YulFunctionCall","src":"1721:9:54"},"variableNames":[{"name":"diff","nativeSrc":"1713:4:54","nodeType":"YulIdentifier","src":"1713:4:54"}]},{"body":{"nativeSrc":"1762:111:54","nodeType":"YulBlock","src":"1762:111:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1783:1:54","nodeType":"YulLiteral","src":"1783:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1790:3:54","nodeType":"YulLiteral","src":"1790:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"1795:10:54","nodeType":"YulLiteral","src":"1795:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1786:3:54","nodeType":"YulIdentifier","src":"1786:3:54"},"nativeSrc":"1786:20:54","nodeType":"YulFunctionCall","src":"1786:20:54"}],"functionName":{"name":"mstore","nativeSrc":"1776:6:54","nodeType":"YulIdentifier","src":"1776:6:54"},"nativeSrc":"1776:31:54","nodeType":"YulFunctionCall","src":"1776:31:54"},"nativeSrc":"1776:31:54","nodeType":"YulExpressionStatement","src":"1776:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1827:1:54","nodeType":"YulLiteral","src":"1827:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"1830:4:54","nodeType":"YulLiteral","src":"1830:4:54","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"1820:6:54","nodeType":"YulIdentifier","src":"1820:6:54"},"nativeSrc":"1820:15:54","nodeType":"YulFunctionCall","src":"1820:15:54"},"nativeSrc":"1820:15:54","nodeType":"YulExpressionStatement","src":"1820:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1855:1:54","nodeType":"YulLiteral","src":"1855:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1858:4:54","nodeType":"YulLiteral","src":"1858:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1848:6:54","nodeType":"YulIdentifier","src":"1848:6:54"},"nativeSrc":"1848:15:54","nodeType":"YulFunctionCall","src":"1848:15:54"},"nativeSrc":"1848:15:54","nodeType":"YulExpressionStatement","src":"1848:15:54"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"1745:4:54","nodeType":"YulIdentifier","src":"1745:4:54"},{"name":"x","nativeSrc":"1751:1:54","nodeType":"YulIdentifier","src":"1751:1:54"}],"functionName":{"name":"gt","nativeSrc":"1742:2:54","nodeType":"YulIdentifier","src":"1742:2:54"},"nativeSrc":"1742:11:54","nodeType":"YulFunctionCall","src":"1742:11:54"},"nativeSrc":"1739:134:54","nodeType":"YulIf","src":"1739:134:54"}]},"name":"checked_sub_t_uint256","nativeSrc":"1654:225:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"1685:1:54","nodeType":"YulTypedName","src":"1685:1:54","type":""},{"name":"y","nativeSrc":"1688:1:54","nodeType":"YulTypedName","src":"1688:1:54","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"1694:4:54","nodeType":"YulTypedName","src":"1694:4:54","type":""}],"src":"1654:225:54"},{"body":{"nativeSrc":"1916:95:54","nodeType":"YulBlock","src":"1916:95:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1933:1:54","nodeType":"YulLiteral","src":"1933:1:54","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1940:3:54","nodeType":"YulLiteral","src":"1940:3:54","type":"","value":"224"},{"kind":"number","nativeSrc":"1945:10:54","nodeType":"YulLiteral","src":"1945:10:54","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1936:3:54","nodeType":"YulIdentifier","src":"1936:3:54"},"nativeSrc":"1936:20:54","nodeType":"YulFunctionCall","src":"1936:20:54"}],"functionName":{"name":"mstore","nativeSrc":"1926:6:54","nodeType":"YulIdentifier","src":"1926:6:54"},"nativeSrc":"1926:31:54","nodeType":"YulFunctionCall","src":"1926:31:54"},"nativeSrc":"1926:31:54","nodeType":"YulExpressionStatement","src":"1926:31:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1973:1:54","nodeType":"YulLiteral","src":"1973:1:54","type":"","value":"4"},{"kind":"number","nativeSrc":"1976:4:54","nodeType":"YulLiteral","src":"1976:4:54","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"1966:6:54","nodeType":"YulIdentifier","src":"1966:6:54"},"nativeSrc":"1966:15:54","nodeType":"YulFunctionCall","src":"1966:15:54"},"nativeSrc":"1966:15:54","nodeType":"YulExpressionStatement","src":"1966:15:54"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1997:1:54","nodeType":"YulLiteral","src":"1997:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"2000:4:54","nodeType":"YulLiteral","src":"2000:4:54","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1990:6:54","nodeType":"YulIdentifier","src":"1990:6:54"},"nativeSrc":"1990:15:54","nodeType":"YulFunctionCall","src":"1990:15:54"},"nativeSrc":"1990:15:54","nodeType":"YulExpressionStatement","src":"1990:15:54"}]},"name":"panic_error_0x01","nativeSrc":"1884:127:54","nodeType":"YulFunctionDefinition","src":"1884:127:54"},{"body":{"nativeSrc":"2145:175:54","nodeType":"YulBlock","src":"2145:175:54","statements":[{"nativeSrc":"2155:26:54","nodeType":"YulAssignment","src":"2155:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2167:9:54","nodeType":"YulIdentifier","src":"2167:9:54"},{"kind":"number","nativeSrc":"2178:2:54","nodeType":"YulLiteral","src":"2178:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2163:3:54","nodeType":"YulIdentifier","src":"2163:3:54"},"nativeSrc":"2163:18:54","nodeType":"YulFunctionCall","src":"2163:18:54"},"variableNames":[{"name":"tail","nativeSrc":"2155:4:54","nodeType":"YulIdentifier","src":"2155:4:54"}]},{"nativeSrc":"2190:29:54","nodeType":"YulVariableDeclaration","src":"2190:29:54","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2208:3:54","nodeType":"YulLiteral","src":"2208:3:54","type":"","value":"160"},{"kind":"number","nativeSrc":"2213:1:54","nodeType":"YulLiteral","src":"2213:1:54","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2204:3:54","nodeType":"YulIdentifier","src":"2204:3:54"},"nativeSrc":"2204:11:54","nodeType":"YulFunctionCall","src":"2204:11:54"},{"kind":"number","nativeSrc":"2217:1:54","nodeType":"YulLiteral","src":"2217:1:54","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2200:3:54","nodeType":"YulIdentifier","src":"2200:3:54"},"nativeSrc":"2200:19:54","nodeType":"YulFunctionCall","src":"2200:19:54"},"variables":[{"name":"_1","nativeSrc":"2194:2:54","nodeType":"YulTypedName","src":"2194:2:54","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2235:9:54","nodeType":"YulIdentifier","src":"2235:9:54"},{"arguments":[{"name":"value0","nativeSrc":"2250:6:54","nodeType":"YulIdentifier","src":"2250:6:54"},{"name":"_1","nativeSrc":"2258:2:54","nodeType":"YulIdentifier","src":"2258:2:54"}],"functionName":{"name":"and","nativeSrc":"2246:3:54","nodeType":"YulIdentifier","src":"2246:3:54"},"nativeSrc":"2246:15:54","nodeType":"YulFunctionCall","src":"2246:15:54"}],"functionName":{"name":"mstore","nativeSrc":"2228:6:54","nodeType":"YulIdentifier","src":"2228:6:54"},"nativeSrc":"2228:34:54","nodeType":"YulFunctionCall","src":"2228:34:54"},"nativeSrc":"2228:34:54","nodeType":"YulExpressionStatement","src":"2228:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2282:9:54","nodeType":"YulIdentifier","src":"2282:9:54"},{"kind":"number","nativeSrc":"2293:2:54","nodeType":"YulLiteral","src":"2293:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2278:3:54","nodeType":"YulIdentifier","src":"2278:3:54"},"nativeSrc":"2278:18:54","nodeType":"YulFunctionCall","src":"2278:18:54"},{"arguments":[{"name":"value1","nativeSrc":"2302:6:54","nodeType":"YulIdentifier","src":"2302:6:54"},{"name":"_1","nativeSrc":"2310:2:54","nodeType":"YulIdentifier","src":"2310:2:54"}],"functionName":{"name":"and","nativeSrc":"2298:3:54","nodeType":"YulIdentifier","src":"2298:3:54"},"nativeSrc":"2298:15:54","nodeType":"YulFunctionCall","src":"2298:15:54"}],"functionName":{"name":"mstore","nativeSrc":"2271:6:54","nodeType":"YulIdentifier","src":"2271:6:54"},"nativeSrc":"2271:43:54","nodeType":"YulFunctionCall","src":"2271:43:54"},"nativeSrc":"2271:43:54","nodeType":"YulExpressionStatement","src":"2271:43:54"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"2016:304:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2106:9:54","nodeType":"YulTypedName","src":"2106:9:54","type":""},{"name":"value1","nativeSrc":"2117:6:54","nodeType":"YulTypedName","src":"2117:6:54","type":""},{"name":"value0","nativeSrc":"2125:6:54","nodeType":"YulTypedName","src":"2125:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2136:4:54","nodeType":"YulTypedName","src":"2136:4:54","type":""}],"src":"2016:304:54"},{"body":{"nativeSrc":"2499:235:54","nodeType":"YulBlock","src":"2499:235:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2516:9:54","nodeType":"YulIdentifier","src":"2516:9:54"},{"kind":"number","nativeSrc":"2527:2:54","nodeType":"YulLiteral","src":"2527:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2509:6:54","nodeType":"YulIdentifier","src":"2509:6:54"},"nativeSrc":"2509:21:54","nodeType":"YulFunctionCall","src":"2509:21:54"},"nativeSrc":"2509:21:54","nodeType":"YulExpressionStatement","src":"2509:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2550:9:54","nodeType":"YulIdentifier","src":"2550:9:54"},{"kind":"number","nativeSrc":"2561:2:54","nodeType":"YulLiteral","src":"2561:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2546:3:54","nodeType":"YulIdentifier","src":"2546:3:54"},"nativeSrc":"2546:18:54","nodeType":"YulFunctionCall","src":"2546:18:54"},{"kind":"number","nativeSrc":"2566:2:54","nodeType":"YulLiteral","src":"2566:2:54","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"2539:6:54","nodeType":"YulIdentifier","src":"2539:6:54"},"nativeSrc":"2539:30:54","nodeType":"YulFunctionCall","src":"2539:30:54"},"nativeSrc":"2539:30:54","nodeType":"YulExpressionStatement","src":"2539:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2589:9:54","nodeType":"YulIdentifier","src":"2589:9:54"},{"kind":"number","nativeSrc":"2600:2:54","nodeType":"YulLiteral","src":"2600:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2585:3:54","nodeType":"YulIdentifier","src":"2585:3:54"},"nativeSrc":"2585:18:54","nodeType":"YulFunctionCall","src":"2585:18:54"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"2605:34:54","nodeType":"YulLiteral","src":"2605:34:54","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2578:6:54","nodeType":"YulIdentifier","src":"2578:6:54"},"nativeSrc":"2578:62:54","nodeType":"YulFunctionCall","src":"2578:62:54"},"nativeSrc":"2578:62:54","nodeType":"YulExpressionStatement","src":"2578:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2660:9:54","nodeType":"YulIdentifier","src":"2660:9:54"},{"kind":"number","nativeSrc":"2671:2:54","nodeType":"YulLiteral","src":"2671:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2656:3:54","nodeType":"YulIdentifier","src":"2656:3:54"},"nativeSrc":"2656:18:54","nodeType":"YulFunctionCall","src":"2656:18:54"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"2676:15:54","nodeType":"YulLiteral","src":"2676:15:54","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"2649:6:54","nodeType":"YulIdentifier","src":"2649:6:54"},"nativeSrc":"2649:43:54","nodeType":"YulFunctionCall","src":"2649:43:54"},"nativeSrc":"2649:43:54","nodeType":"YulExpressionStatement","src":"2649:43:54"},{"nativeSrc":"2701:27:54","nodeType":"YulAssignment","src":"2701:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2713:9:54","nodeType":"YulIdentifier","src":"2713:9:54"},{"kind":"number","nativeSrc":"2724:3:54","nodeType":"YulLiteral","src":"2724:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2709:3:54","nodeType":"YulIdentifier","src":"2709:3:54"},"nativeSrc":"2709:19:54","nodeType":"YulFunctionCall","src":"2709:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2701:4:54","nodeType":"YulIdentifier","src":"2701:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2325:409:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2476:9:54","nodeType":"YulTypedName","src":"2476:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2490:4:54","nodeType":"YulTypedName","src":"2490:4:54","type":""}],"src":"2325:409:54"},{"body":{"nativeSrc":"2913:228:54","nodeType":"YulBlock","src":"2913:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2930:9:54","nodeType":"YulIdentifier","src":"2930:9:54"},{"kind":"number","nativeSrc":"2941:2:54","nodeType":"YulLiteral","src":"2941:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2923:6:54","nodeType":"YulIdentifier","src":"2923:6:54"},"nativeSrc":"2923:21:54","nodeType":"YulFunctionCall","src":"2923:21:54"},"nativeSrc":"2923:21:54","nodeType":"YulExpressionStatement","src":"2923:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2964:9:54","nodeType":"YulIdentifier","src":"2964:9:54"},{"kind":"number","nativeSrc":"2975:2:54","nodeType":"YulLiteral","src":"2975:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2960:3:54","nodeType":"YulIdentifier","src":"2960:3:54"},"nativeSrc":"2960:18:54","nodeType":"YulFunctionCall","src":"2960:18:54"},{"kind":"number","nativeSrc":"2980:2:54","nodeType":"YulLiteral","src":"2980:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2953:6:54","nodeType":"YulIdentifier","src":"2953:6:54"},"nativeSrc":"2953:30:54","nodeType":"YulFunctionCall","src":"2953:30:54"},"nativeSrc":"2953:30:54","nodeType":"YulExpressionStatement","src":"2953:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3003:9:54","nodeType":"YulIdentifier","src":"3003:9:54"},{"kind":"number","nativeSrc":"3014:2:54","nodeType":"YulLiteral","src":"3014:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2999:3:54","nodeType":"YulIdentifier","src":"2999:3:54"},"nativeSrc":"2999:18:54","nodeType":"YulFunctionCall","src":"2999:18:54"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"3019:34:54","nodeType":"YulLiteral","src":"3019:34:54","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"2992:6:54","nodeType":"YulIdentifier","src":"2992:6:54"},"nativeSrc":"2992:62:54","nodeType":"YulFunctionCall","src":"2992:62:54"},"nativeSrc":"2992:62:54","nodeType":"YulExpressionStatement","src":"2992:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3074:9:54","nodeType":"YulIdentifier","src":"3074:9:54"},{"kind":"number","nativeSrc":"3085:2:54","nodeType":"YulLiteral","src":"3085:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3070:3:54","nodeType":"YulIdentifier","src":"3070:3:54"},"nativeSrc":"3070:18:54","nodeType":"YulFunctionCall","src":"3070:18:54"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"3090:8:54","nodeType":"YulLiteral","src":"3090:8:54","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"3063:6:54","nodeType":"YulIdentifier","src":"3063:6:54"},"nativeSrc":"3063:36:54","nodeType":"YulFunctionCall","src":"3063:36:54"},"nativeSrc":"3063:36:54","nodeType":"YulExpressionStatement","src":"3063:36:54"},{"nativeSrc":"3108:27:54","nodeType":"YulAssignment","src":"3108:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"3120:9:54","nodeType":"YulIdentifier","src":"3120:9:54"},{"kind":"number","nativeSrc":"3131:3:54","nodeType":"YulLiteral","src":"3131:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3116:3:54","nodeType":"YulIdentifier","src":"3116:3:54"},"nativeSrc":"3116:19:54","nodeType":"YulFunctionCall","src":"3116:19:54"},"variableNames":[{"name":"tail","nativeSrc":"3108:4:54","nodeType":"YulIdentifier","src":"3108:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2739:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2890:9:54","nodeType":"YulTypedName","src":"2890:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2904:4:54","nodeType":"YulTypedName","src":"2904:4:54","type":""}],"src":"2739:402:54"},{"body":{"nativeSrc":"3283:150:54","nodeType":"YulBlock","src":"3283:150:54","statements":[{"nativeSrc":"3293:27:54","nodeType":"YulVariableDeclaration","src":"3293:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"3313:6:54","nodeType":"YulIdentifier","src":"3313:6:54"}],"functionName":{"name":"mload","nativeSrc":"3307:5:54","nodeType":"YulIdentifier","src":"3307:5:54"},"nativeSrc":"3307:13:54","nodeType":"YulFunctionCall","src":"3307:13:54"},"variables":[{"name":"length","nativeSrc":"3297:6:54","nodeType":"YulTypedName","src":"3297:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3368:6:54","nodeType":"YulIdentifier","src":"3368:6:54"},{"kind":"number","nativeSrc":"3376:4:54","nodeType":"YulLiteral","src":"3376:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3364:3:54","nodeType":"YulIdentifier","src":"3364:3:54"},"nativeSrc":"3364:17:54","nodeType":"YulFunctionCall","src":"3364:17:54"},{"name":"pos","nativeSrc":"3383:3:54","nodeType":"YulIdentifier","src":"3383:3:54"},{"name":"length","nativeSrc":"3388:6:54","nodeType":"YulIdentifier","src":"3388:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3329:34:54","nodeType":"YulIdentifier","src":"3329:34:54"},"nativeSrc":"3329:66:54","nodeType":"YulFunctionCall","src":"3329:66:54"},"nativeSrc":"3329:66:54","nodeType":"YulExpressionStatement","src":"3329:66:54"},{"nativeSrc":"3404:23:54","nodeType":"YulAssignment","src":"3404:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"3415:3:54","nodeType":"YulIdentifier","src":"3415:3:54"},{"name":"length","nativeSrc":"3420:6:54","nodeType":"YulIdentifier","src":"3420:6:54"}],"functionName":{"name":"add","nativeSrc":"3411:3:54","nodeType":"YulIdentifier","src":"3411:3:54"},"nativeSrc":"3411:16:54","nodeType":"YulFunctionCall","src":"3411:16:54"},"variableNames":[{"name":"end","nativeSrc":"3404:3:54","nodeType":"YulIdentifier","src":"3404:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"3146:287:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3259:3:54","nodeType":"YulTypedName","src":"3259:3:54","type":""},{"name":"value0","nativeSrc":"3264:6:54","nodeType":"YulTypedName","src":"3264:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3275:3:54","nodeType":"YulTypedName","src":"3275:3:54","type":""}],"src":"3146:287:54"},{"body":{"nativeSrc":"3559:275:54","nodeType":"YulBlock","src":"3559:275:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3576:9:54","nodeType":"YulIdentifier","src":"3576:9:54"},{"kind":"number","nativeSrc":"3587:2:54","nodeType":"YulLiteral","src":"3587:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3569:6:54","nodeType":"YulIdentifier","src":"3569:6:54"},"nativeSrc":"3569:21:54","nodeType":"YulFunctionCall","src":"3569:21:54"},"nativeSrc":"3569:21:54","nodeType":"YulExpressionStatement","src":"3569:21:54"},{"nativeSrc":"3599:27:54","nodeType":"YulVariableDeclaration","src":"3599:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"3619:6:54","nodeType":"YulIdentifier","src":"3619:6:54"}],"functionName":{"name":"mload","nativeSrc":"3613:5:54","nodeType":"YulIdentifier","src":"3613:5:54"},"nativeSrc":"3613:13:54","nodeType":"YulFunctionCall","src":"3613:13:54"},"variables":[{"name":"length","nativeSrc":"3603:6:54","nodeType":"YulTypedName","src":"3603:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3646:9:54","nodeType":"YulIdentifier","src":"3646:9:54"},{"kind":"number","nativeSrc":"3657:2:54","nodeType":"YulLiteral","src":"3657:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3642:3:54","nodeType":"YulIdentifier","src":"3642:3:54"},"nativeSrc":"3642:18:54","nodeType":"YulFunctionCall","src":"3642:18:54"},{"name":"length","nativeSrc":"3662:6:54","nodeType":"YulIdentifier","src":"3662:6:54"}],"functionName":{"name":"mstore","nativeSrc":"3635:6:54","nodeType":"YulIdentifier","src":"3635:6:54"},"nativeSrc":"3635:34:54","nodeType":"YulFunctionCall","src":"3635:34:54"},"nativeSrc":"3635:34:54","nodeType":"YulExpressionStatement","src":"3635:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3717:6:54","nodeType":"YulIdentifier","src":"3717:6:54"},{"kind":"number","nativeSrc":"3725:2:54","nodeType":"YulLiteral","src":"3725:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3713:3:54","nodeType":"YulIdentifier","src":"3713:3:54"},"nativeSrc":"3713:15:54","nodeType":"YulFunctionCall","src":"3713:15:54"},{"arguments":[{"name":"headStart","nativeSrc":"3734:9:54","nodeType":"YulIdentifier","src":"3734:9:54"},{"kind":"number","nativeSrc":"3745:2:54","nodeType":"YulLiteral","src":"3745:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3730:3:54","nodeType":"YulIdentifier","src":"3730:3:54"},"nativeSrc":"3730:18:54","nodeType":"YulFunctionCall","src":"3730:18:54"},{"name":"length","nativeSrc":"3750:6:54","nodeType":"YulIdentifier","src":"3750:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3678:34:54","nodeType":"YulIdentifier","src":"3678:34:54"},"nativeSrc":"3678:79:54","nodeType":"YulFunctionCall","src":"3678:79:54"},"nativeSrc":"3678:79:54","nodeType":"YulExpressionStatement","src":"3678:79:54"},{"nativeSrc":"3766:62:54","nodeType":"YulAssignment","src":"3766:62:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3782:9:54","nodeType":"YulIdentifier","src":"3782:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3801:6:54","nodeType":"YulIdentifier","src":"3801:6:54"},{"kind":"number","nativeSrc":"3809:2:54","nodeType":"YulLiteral","src":"3809:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3797:3:54","nodeType":"YulIdentifier","src":"3797:3:54"},"nativeSrc":"3797:15:54","nodeType":"YulFunctionCall","src":"3797:15:54"},{"arguments":[{"kind":"number","nativeSrc":"3818:2:54","nodeType":"YulLiteral","src":"3818:2:54","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3814:3:54","nodeType":"YulIdentifier","src":"3814:3:54"},"nativeSrc":"3814:7:54","nodeType":"YulFunctionCall","src":"3814:7:54"}],"functionName":{"name":"and","nativeSrc":"3793:3:54","nodeType":"YulIdentifier","src":"3793:3:54"},"nativeSrc":"3793:29:54","nodeType":"YulFunctionCall","src":"3793:29:54"}],"functionName":{"name":"add","nativeSrc":"3778:3:54","nodeType":"YulIdentifier","src":"3778:3:54"},"nativeSrc":"3778:45:54","nodeType":"YulFunctionCall","src":"3778:45:54"},{"kind":"number","nativeSrc":"3825:2:54","nodeType":"YulLiteral","src":"3825:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3774:3:54","nodeType":"YulIdentifier","src":"3774:3:54"},"nativeSrc":"3774:54:54","nodeType":"YulFunctionCall","src":"3774:54:54"},"variableNames":[{"name":"tail","nativeSrc":"3766:4:54","nodeType":"YulIdentifier","src":"3766:4:54"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3438:396:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3528:9:54","nodeType":"YulTypedName","src":"3528:9:54","type":""},{"name":"value0","nativeSrc":"3539:6:54","nodeType":"YulTypedName","src":"3539:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3550:4:54","nodeType":"YulTypedName","src":"3550:4:54","type":""}],"src":"3438:396:54"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\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    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        let offset := mload(add(headStart, 64))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n        value2 := memPtr\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\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        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052604051610ea3380380610ea3833981016040819052610022916103d2565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6104a2565b600080516020610e5c8339815191521461006b5761006b6104c3565b61007782826000610128565b506100a5905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046104a2565b600080516020610e3c833981519152146100c1576100c16104c3565b6001600160a01b0382166080819052600080516020610e3c8339815191528381556040805160008152602081019390935290917f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a150505050610528565b61013183610154565b60008251118061013e5750805b1561014f5761014d8383610194565b505b505050565b61015d816101c2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101b98383604051806060016040528060278152602001610e7c60279139610263565b90505b92915050565b6001600160a01b0381163b6102345760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b600080516020610e5c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6102cb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161022b565b600080856001600160a01b0316856040516102e691906104d9565b600060405180830381855af49150503d8060008114610321576040519150601f19603f3d011682016040523d82523d6000602084013e610326565b606091505b509092509050610337828286610343565b925050505b9392505050565b6060831561035257508161033c565b8251156103625782518084602001fd5b8160405162461bcd60e51b815260040161022b91906104f5565b80516001600160a01b038116811461039357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103c95781810151838201526020016103b1565b50506000910152565b6000806000606084860312156103e757600080fd5b6103f08461037c565b92506103fe6020850161037c565b60408501519092506001600160401b038082111561041b57600080fd5b818601915086601f83011261042f57600080fd5b81518181111561044157610441610398565b604051601f8201601f19908116603f0116810190838211818310171561046957610469610398565b8160405282815289602084870101111561048257600080fd5b6104938360208301602088016103ae565b80955050505050509250925092565b818103818111156101bc57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516104eb8184602087016103ae565b9190910192915050565b60208152600082518060208401526105148160408501602087016103ae565b601f01601f19169190910160400192915050565b6080516108d76105656000396000818160fc0152818161015f015281816101ee015281816102450152818161028301526102a701526108d76000f3fe6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461008d578063f851a440146100cb57610052565b36610052576100506100e0565b005b6100506100e0565b34801561006657600080fd5b5061005061007536600461074b565b6100fa565b610050610088366004610766565b61015d565b34801561009957600080fd5b506100a26101ea565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d757600080fd5b506100a2610241565b6100e86102a5565b6100f86100f3610395565b6103d5565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361015557610152816040518060200160405280600081525060006103f9565b50565b6101526100e0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036101e2576101dd8383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103f9915050565b505050565b6101dd6100e0565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361023657610231610395565b905090565b61023e6100e0565b90565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361023657507f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036100f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006102317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b3660008037600080366000845af43d6000803e8080156103f4573d6000f35b3d6000fd5b61040283610424565b60008251118061040f5750805b156101dd5761041e8383610471565b50505050565b61042d8161049d565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610496838360405180606001604052806027815260200161087b602791396105a7565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81163b610541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161038c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606073ffffffffffffffffffffffffffffffffffffffff84163b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161038c565b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610675919061080d565b600060405180830381855af49150503d80600081146106b0576040519150601f19603f3d011682016040523d82523d6000602084013e6106b5565b606091505b50915091506106c58282866106cf565b9695505050505050565b606083156106de575081610496565b8251156106ee5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038c9190610829565b803573ffffffffffffffffffffffffffffffffffffffff8116811461074657600080fd5b919050565b60006020828403121561075d57600080fd5b61049682610722565b60008060006040848603121561077b57600080fd5b61078484610722565b9250602084013567ffffffffffffffff808211156107a157600080fd5b818601915086601f8301126107b557600080fd5b8135818111156107c457600080fd5b8760208285010111156107d657600080fd5b6020830194508093505050509250925092565b60005b838110156108045781810151838201526020016107ec565b50506000910152565b6000825161081f8184602087016107e9565b9190910192915050565b60208152600082518060208401526108488160408501602087016107e9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200136fd34dfdb0d97935b77a84c836b17bf901cefa29ed5b1ef847b08c6cba8d064736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xEA3 CODESIZE SUB DUP1 PUSH2 0xEA3 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x3D2 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x4A2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE5C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6B JUMPI PUSH2 0x6B PUSH2 0x4C3 JUMP JUMPDEST PUSH2 0x77 DUP3 DUP3 PUSH1 0x0 PUSH2 0x128 JUMP JUMPDEST POP PUSH2 0xA5 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x4A2 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE3C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xC1 JUMPI PUSH2 0xC1 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 DUP2 SWAP1 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE3C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP1 SWAP2 PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH2 0x528 JUMP JUMPDEST PUSH2 0x131 DUP4 PUSH2 0x154 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x13E JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x14F JUMPI PUSH2 0x14D DUP4 DUP4 PUSH2 0x194 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x15D DUP2 PUSH2 0x1C2 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 0x1B9 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE7C PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x263 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x234 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE5C 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 0x2CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x22B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x2E6 SWAP2 SWAP1 PUSH2 0x4D9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x321 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 0x326 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x337 DUP3 DUP3 DUP7 PUSH2 0x343 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x352 JUMPI POP DUP2 PUSH2 0x33C JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x362 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 0x22B SWAP2 SWAP1 PUSH2 0x4F5 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C9 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3B1 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3F0 DUP5 PUSH2 0x37C JUMP JUMPDEST SWAP3 POP PUSH2 0x3FE PUSH1 0x20 DUP6 ADD PUSH2 0x37C JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x41B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x441 JUMPI PUSH2 0x441 PUSH2 0x398 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x469 JUMPI PUSH2 0x469 PUSH2 0x398 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x493 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3AE JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4EB DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3AE JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x514 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x8D7 PUSH2 0x565 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0xFC ADD MSTORE DUP2 DUP2 PUSH2 0x15F ADD MSTORE DUP2 DUP2 PUSH2 0x1EE ADD MSTORE DUP2 DUP2 PUSH2 0x245 ADD MSTORE DUP2 DUP2 PUSH2 0x283 ADD MSTORE PUSH2 0x2A7 ADD MSTORE PUSH2 0x8D7 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 0xCB JUMPI PUSH2 0x52 JUMP JUMPDEST CALLDATASIZE PUSH2 0x52 JUMPI PUSH2 0x50 PUSH2 0xE0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x50 PUSH2 0xE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50 PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x74B JUMP JUMPDEST PUSH2 0xFA JUMP JUMPDEST PUSH2 0x50 PUSH2 0x88 CALLDATASIZE PUSH1 0x4 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x15D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x1EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x241 JUMP JUMPDEST PUSH2 0xE8 PUSH2 0x2A5 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0xF3 PUSH2 0x395 JUMP JUMPDEST PUSH2 0x3D5 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x155 JUMPI PUSH2 0x152 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x3F9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x152 PUSH2 0xE0 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x1E2 JUMPI PUSH2 0x1DD 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 0x3F9 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1DD PUSH2 0xE0 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x236 JUMPI PUSH2 0x231 PUSH2 0x395 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x23E PUSH2 0xE0 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x236 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0xF8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x231 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 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 0x3F4 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x402 DUP4 PUSH2 0x424 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x40F JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1DD JUMPI PUSH2 0x41E DUP4 DUP4 PUSH2 0x471 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x42D DUP2 PUSH2 0x49D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x496 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x87B PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x5A7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x541 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74206120636F6E747261637400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38C JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE PUSH2 0x64D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x675 SWAP2 SWAP1 PUSH2 0x80D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x6B0 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 0x6B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x6C5 DUP3 DUP3 DUP7 PUSH2 0x6CF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x6DE JUMPI POP DUP2 PUSH2 0x496 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x6EE JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x829 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x75D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x496 DUP3 PUSH2 0x722 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x784 DUP5 PUSH2 0x722 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x7A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x7C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x804 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7EC JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x81F DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7E9 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x848 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x7E9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212200136FD CALLVALUE 0xDF 0xDB 0xD SWAP8 SWAP4 JUMPDEST PUSH24 0xA84C836B17BF901CEFA29ED5B1EF847B08C6CBA8D064736F PUSH13 0x63430008190033B53127684A56 DUP12 BALANCE PUSH20 0xAE13B9F8A6016E243E63B6E8EE1178D6A717850B TSTORE PUSH2 0x336 ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1653:3648:53:-:0;;;1976:499;;;;;;;;;;;;;;;;;;:::i;:::-;2091:6;2099:5;1050:54:44;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:44;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2146:45:53::1;::::0;-1:-1:-1;2190:1:53::1;2154:32;2146:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2123:69:53::1;2116:77;;;;:::i;:::-;-1:-1:-1::0;;;;;2203:15:53;::::1;;::::0;;;-1:-1:-1;;;;;;;;;;;2392:20:53;;;2436:32:::1;::::0;;2277:12:::1;2228:34:54::0;;2293:2;2278:18;;2271:43;;;;3847:66:45;;2436:32:53::1;::::0;2163:18:54;2436:32:53::1;;;;;;;2106:369;1976:499:::0;;;1653:3648;;2188:295:45;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:45;;;;;;;;1902:152;:::o;6575:198:50:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:45:-;-1:-1:-1;;;;;1470:19:50;;;1610:95:45;;;;-1:-1:-1;;;1610:95:45;;2527:2:54;1610:95:45;;;2509:21:54;2566:2;2546:18;;;2539:30;2605:34;2585:18;;;2578:62;-1:-1:-1;;;2656:18:54;;;2649:43;2709:19;;1610:95:45;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:45;;-1:-1:-1;;;;;;1715:74:45;-1:-1:-1;;;;;1715:74:45;;;;;;;;;;1537:259::o;6959:387:50:-;7100:12;-1:-1:-1;;;;;1470:19:50;;;7124:69;;;;-1:-1:-1;;;7124:69:50;;2941:2:54;7124:69:50;;;2923:21:54;2980:2;2960:18;;;2953:30;3019:34;2999:18;;;2992:62;-1:-1:-1;;;3070:18:54;;;3063:36;3116:19;;7124:69:50;2739:402:54;7124:69:50;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:50;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:50;;-1:-1:-1;7204:67:50;-1:-1:-1;7288:51:50;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:50;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:50;;;;;;;;:::i;14:177:54:-;93:13;;-1:-1:-1;;;;;135:31:54;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:54;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:54;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:54;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;1654:225::-;1721:9;;;1742:11;;;1739:134;;;1795:10;1790:3;1786:20;1783:1;1776:31;1830:4;1827:1;1820:15;1858:4;1855:1;1848:15;1884:127;1945:10;1940:3;1936:20;1933:1;1926:31;1976:4;1973:1;1966:15;2000:4;1997:1;1990:15;3146:287;3275:3;3313:6;3307:13;3329:66;3388:6;3383:3;3376:4;3368:6;3364:17;3329:66;:::i;:::-;3411:16;;;;;3146:287;-1:-1:-1;;3146:287:54:o;3438:396::-;3587:2;3576:9;3569:21;3550:4;3619:6;3613:13;3662:6;3657:2;3646:9;3642:18;3635:34;3678:79;3750:6;3745:2;3734:9;3730:18;3725:2;3717:6;3713:15;3678:79;:::i;:::-;3818:2;3797:15;-1:-1:-1;;3793:29:54;3778:45;;;;3825:2;3774:54;;3438:396;-1:-1:-1;;3438:396:54:o;:::-;1653:3648:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_9831":{"entryPoint":null,"id":9831,"parameterSlots":0,"returnSlots":0},"@_9839":{"entryPoint":null,"id":9839,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_10706":{"entryPoint":677,"id":10706,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_9844":{"entryPoint":null,"id":9844,"parameterSlots":0,"returnSlots":0},"@_delegate_9804":{"entryPoint":981,"id":9804,"parameterSlots":1,"returnSlots":0},"@_fallback_9823":{"entryPoint":224,"id":9823,"parameterSlots":0,"returnSlots":0},"@_getAdmin_10715":{"entryPoint":null,"id":10715,"parameterSlots":0,"returnSlots":1},"@_getImplementation_9507":{"entryPoint":null,"id":9507,"parameterSlots":0,"returnSlots":1},"@_implementation_9474":{"entryPoint":917,"id":9474,"parameterSlots":0,"returnSlots":1},"@_setImplementation_9531":{"entryPoint":1181,"id":9531,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_9576":{"entryPoint":1017,"id":9576,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_9546":{"entryPoint":1060,"id":9546,"parameterSlots":1,"returnSlots":0},"@admin_10627":{"entryPoint":577,"id":10627,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_10392":{"entryPoint":1137,"id":10392,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_10427":{"entryPoint":1447,"id":10427,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_10507":{"entryPoint":null,"id":10507,"parameterSlots":1,"returnSlots":1},"@implementation_10641":{"entryPoint":490,"id":10641,"parameterSlots":0,"returnSlots":1},"@isContract_10182":{"entryPoint":null,"id":10182,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_10676":{"entryPoint":349,"id":10676,"parameterSlots":3,"returnSlots":0},"@upgradeTo_10659":{"entryPoint":250,"id":10659,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_10458":{"entryPoint":1743,"id":10458,"parameterSlots":3,"returnSlots":1},"abi_decode_address":{"entryPoint":1826,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1867,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1894,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2061,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2089,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2025,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3607:54","nodeType":"YulBlock","src":"0:3607:54","statements":[{"nativeSrc":"6:3:54","nodeType":"YulBlock","src":"6:3:54","statements":[]},{"body":{"nativeSrc":"63:147:54","nodeType":"YulBlock","src":"63:147:54","statements":[{"nativeSrc":"73:29:54","nodeType":"YulAssignment","src":"73:29:54","value":{"arguments":[{"name":"offset","nativeSrc":"95:6:54","nodeType":"YulIdentifier","src":"95:6:54"}],"functionName":{"name":"calldataload","nativeSrc":"82:12:54","nodeType":"YulIdentifier","src":"82:12:54"},"nativeSrc":"82:20:54","nodeType":"YulFunctionCall","src":"82:20:54"},"variableNames":[{"name":"value","nativeSrc":"73:5:54","nodeType":"YulIdentifier","src":"73:5:54"}]},{"body":{"nativeSrc":"188:16:54","nodeType":"YulBlock","src":"188:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197:1:54","nodeType":"YulLiteral","src":"197:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"200:1:54","nodeType":"YulLiteral","src":"200:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"190:6:54","nodeType":"YulIdentifier","src":"190:6:54"},"nativeSrc":"190:12:54","nodeType":"YulFunctionCall","src":"190:12:54"},"nativeSrc":"190:12:54","nodeType":"YulExpressionStatement","src":"190:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"124:5:54","nodeType":"YulIdentifier","src":"124:5:54"},{"arguments":[{"name":"value","nativeSrc":"135:5:54","nodeType":"YulIdentifier","src":"135:5:54"},{"kind":"number","nativeSrc":"142:42:54","nodeType":"YulLiteral","src":"142:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"131:3:54","nodeType":"YulIdentifier","src":"131:3:54"},"nativeSrc":"131:54:54","nodeType":"YulFunctionCall","src":"131:54:54"}],"functionName":{"name":"eq","nativeSrc":"121:2:54","nodeType":"YulIdentifier","src":"121:2:54"},"nativeSrc":"121:65:54","nodeType":"YulFunctionCall","src":"121:65:54"}],"functionName":{"name":"iszero","nativeSrc":"114:6:54","nodeType":"YulIdentifier","src":"114:6:54"},"nativeSrc":"114:73:54","nodeType":"YulFunctionCall","src":"114:73:54"},"nativeSrc":"111:93:54","nodeType":"YulIf","src":"111:93:54"}]},"name":"abi_decode_address","nativeSrc":"14:196:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"42:6:54","nodeType":"YulTypedName","src":"42:6:54","type":""}],"returnVariables":[{"name":"value","nativeSrc":"53:5:54","nodeType":"YulTypedName","src":"53:5:54","type":""}],"src":"14:196:54"},{"body":{"nativeSrc":"285:116:54","nodeType":"YulBlock","src":"285:116:54","statements":[{"body":{"nativeSrc":"331:16:54","nodeType":"YulBlock","src":"331:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"340:1:54","nodeType":"YulLiteral","src":"340:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"343:1:54","nodeType":"YulLiteral","src":"343:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"333:6:54","nodeType":"YulIdentifier","src":"333:6:54"},"nativeSrc":"333:12:54","nodeType":"YulFunctionCall","src":"333:12:54"},"nativeSrc":"333:12:54","nodeType":"YulExpressionStatement","src":"333:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"306:7:54","nodeType":"YulIdentifier","src":"306:7:54"},{"name":"headStart","nativeSrc":"315:9:54","nodeType":"YulIdentifier","src":"315:9:54"}],"functionName":{"name":"sub","nativeSrc":"302:3:54","nodeType":"YulIdentifier","src":"302:3:54"},"nativeSrc":"302:23:54","nodeType":"YulFunctionCall","src":"302:23:54"},{"kind":"number","nativeSrc":"327:2:54","nodeType":"YulLiteral","src":"327:2:54","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"298:3:54","nodeType":"YulIdentifier","src":"298:3:54"},"nativeSrc":"298:32:54","nodeType":"YulFunctionCall","src":"298:32:54"},"nativeSrc":"295:52:54","nodeType":"YulIf","src":"295:52:54"},{"nativeSrc":"356:39:54","nodeType":"YulAssignment","src":"356:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"385:9:54","nodeType":"YulIdentifier","src":"385:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"366:18:54","nodeType":"YulIdentifier","src":"366:18:54"},"nativeSrc":"366:29:54","nodeType":"YulFunctionCall","src":"366:29:54"},"variableNames":[{"name":"value0","nativeSrc":"356:6:54","nodeType":"YulIdentifier","src":"356:6:54"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"215:186:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"251:9:54","nodeType":"YulTypedName","src":"251:9:54","type":""},{"name":"dataEnd","nativeSrc":"262:7:54","nodeType":"YulTypedName","src":"262:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"274:6:54","nodeType":"YulTypedName","src":"274:6:54","type":""}],"src":"215:186:54"},{"body":{"nativeSrc":"512:559:54","nodeType":"YulBlock","src":"512:559:54","statements":[{"body":{"nativeSrc":"558:16:54","nodeType":"YulBlock","src":"558:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"567:1:54","nodeType":"YulLiteral","src":"567:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"570:1:54","nodeType":"YulLiteral","src":"570:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"560:6:54","nodeType":"YulIdentifier","src":"560:6:54"},"nativeSrc":"560:12:54","nodeType":"YulFunctionCall","src":"560:12:54"},"nativeSrc":"560:12:54","nodeType":"YulExpressionStatement","src":"560:12:54"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"533:7:54","nodeType":"YulIdentifier","src":"533:7:54"},{"name":"headStart","nativeSrc":"542:9:54","nodeType":"YulIdentifier","src":"542:9:54"}],"functionName":{"name":"sub","nativeSrc":"529:3:54","nodeType":"YulIdentifier","src":"529:3:54"},"nativeSrc":"529:23:54","nodeType":"YulFunctionCall","src":"529:23:54"},{"kind":"number","nativeSrc":"554:2:54","nodeType":"YulLiteral","src":"554:2:54","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"525:3:54","nodeType":"YulIdentifier","src":"525:3:54"},"nativeSrc":"525:32:54","nodeType":"YulFunctionCall","src":"525:32:54"},"nativeSrc":"522:52:54","nodeType":"YulIf","src":"522:52:54"},{"nativeSrc":"583:39:54","nodeType":"YulAssignment","src":"583:39:54","value":{"arguments":[{"name":"headStart","nativeSrc":"612:9:54","nodeType":"YulIdentifier","src":"612:9:54"}],"functionName":{"name":"abi_decode_address","nativeSrc":"593:18:54","nodeType":"YulIdentifier","src":"593:18:54"},"nativeSrc":"593:29:54","nodeType":"YulFunctionCall","src":"593:29:54"},"variableNames":[{"name":"value0","nativeSrc":"583:6:54","nodeType":"YulIdentifier","src":"583:6:54"}]},{"nativeSrc":"631:46:54","nodeType":"YulVariableDeclaration","src":"631:46:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"662:9:54","nodeType":"YulIdentifier","src":"662:9:54"},{"kind":"number","nativeSrc":"673:2:54","nodeType":"YulLiteral","src":"673:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"658:3:54","nodeType":"YulIdentifier","src":"658:3:54"},"nativeSrc":"658:18:54","nodeType":"YulFunctionCall","src":"658:18:54"}],"functionName":{"name":"calldataload","nativeSrc":"645:12:54","nodeType":"YulIdentifier","src":"645:12:54"},"nativeSrc":"645:32:54","nodeType":"YulFunctionCall","src":"645:32:54"},"variables":[{"name":"offset","nativeSrc":"635:6:54","nodeType":"YulTypedName","src":"635:6:54","type":""}]},{"nativeSrc":"686:28:54","nodeType":"YulVariableDeclaration","src":"686:28:54","value":{"kind":"number","nativeSrc":"696:18:54","nodeType":"YulLiteral","src":"696:18:54","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"690:2:54","nodeType":"YulTypedName","src":"690:2:54","type":""}]},{"body":{"nativeSrc":"741:16:54","nodeType":"YulBlock","src":"741:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"750:1:54","nodeType":"YulLiteral","src":"750:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"753:1:54","nodeType":"YulLiteral","src":"753:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"743:6:54","nodeType":"YulIdentifier","src":"743:6:54"},"nativeSrc":"743:12:54","nodeType":"YulFunctionCall","src":"743:12:54"},"nativeSrc":"743:12:54","nodeType":"YulExpressionStatement","src":"743:12:54"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"729:6:54","nodeType":"YulIdentifier","src":"729:6:54"},{"name":"_1","nativeSrc":"737:2:54","nodeType":"YulIdentifier","src":"737:2:54"}],"functionName":{"name":"gt","nativeSrc":"726:2:54","nodeType":"YulIdentifier","src":"726:2:54"},"nativeSrc":"726:14:54","nodeType":"YulFunctionCall","src":"726:14:54"},"nativeSrc":"723:34:54","nodeType":"YulIf","src":"723:34:54"},{"nativeSrc":"766:32:54","nodeType":"YulVariableDeclaration","src":"766:32:54","value":{"arguments":[{"name":"headStart","nativeSrc":"780:9:54","nodeType":"YulIdentifier","src":"780:9:54"},{"name":"offset","nativeSrc":"791:6:54","nodeType":"YulIdentifier","src":"791:6:54"}],"functionName":{"name":"add","nativeSrc":"776:3:54","nodeType":"YulIdentifier","src":"776:3:54"},"nativeSrc":"776:22:54","nodeType":"YulFunctionCall","src":"776:22:54"},"variables":[{"name":"_2","nativeSrc":"770:2:54","nodeType":"YulTypedName","src":"770:2:54","type":""}]},{"body":{"nativeSrc":"846:16:54","nodeType":"YulBlock","src":"846:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"855:1:54","nodeType":"YulLiteral","src":"855:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"858:1:54","nodeType":"YulLiteral","src":"858:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"848:6:54","nodeType":"YulIdentifier","src":"848:6:54"},"nativeSrc":"848:12:54","nodeType":"YulFunctionCall","src":"848:12:54"},"nativeSrc":"848:12:54","nodeType":"YulExpressionStatement","src":"848:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"825:2:54","nodeType":"YulIdentifier","src":"825:2:54"},{"kind":"number","nativeSrc":"829:4:54","nodeType":"YulLiteral","src":"829:4:54","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"821:3:54","nodeType":"YulIdentifier","src":"821:3:54"},"nativeSrc":"821:13:54","nodeType":"YulFunctionCall","src":"821:13:54"},{"name":"dataEnd","nativeSrc":"836:7:54","nodeType":"YulIdentifier","src":"836:7:54"}],"functionName":{"name":"slt","nativeSrc":"817:3:54","nodeType":"YulIdentifier","src":"817:3:54"},"nativeSrc":"817:27:54","nodeType":"YulFunctionCall","src":"817:27:54"}],"functionName":{"name":"iszero","nativeSrc":"810:6:54","nodeType":"YulIdentifier","src":"810:6:54"},"nativeSrc":"810:35:54","nodeType":"YulFunctionCall","src":"810:35:54"},"nativeSrc":"807:55:54","nodeType":"YulIf","src":"807:55:54"},{"nativeSrc":"871:30:54","nodeType":"YulVariableDeclaration","src":"871:30:54","value":{"arguments":[{"name":"_2","nativeSrc":"898:2:54","nodeType":"YulIdentifier","src":"898:2:54"}],"functionName":{"name":"calldataload","nativeSrc":"885:12:54","nodeType":"YulIdentifier","src":"885:12:54"},"nativeSrc":"885:16:54","nodeType":"YulFunctionCall","src":"885:16:54"},"variables":[{"name":"length","nativeSrc":"875:6:54","nodeType":"YulTypedName","src":"875:6:54","type":""}]},{"body":{"nativeSrc":"928:16:54","nodeType":"YulBlock","src":"928:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"937:1:54","nodeType":"YulLiteral","src":"937:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"940:1:54","nodeType":"YulLiteral","src":"940:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"930:6:54","nodeType":"YulIdentifier","src":"930:6:54"},"nativeSrc":"930:12:54","nodeType":"YulFunctionCall","src":"930:12:54"},"nativeSrc":"930:12:54","nodeType":"YulExpressionStatement","src":"930:12:54"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"916:6:54","nodeType":"YulIdentifier","src":"916:6:54"},{"name":"_1","nativeSrc":"924:2:54","nodeType":"YulIdentifier","src":"924:2:54"}],"functionName":{"name":"gt","nativeSrc":"913:2:54","nodeType":"YulIdentifier","src":"913:2:54"},"nativeSrc":"913:14:54","nodeType":"YulFunctionCall","src":"913:14:54"},"nativeSrc":"910:34:54","nodeType":"YulIf","src":"910:34:54"},{"body":{"nativeSrc":"994:16:54","nodeType":"YulBlock","src":"994:16:54","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1003:1:54","nodeType":"YulLiteral","src":"1003:1:54","type":"","value":"0"},{"kind":"number","nativeSrc":"1006:1:54","nodeType":"YulLiteral","src":"1006:1:54","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"996:6:54","nodeType":"YulIdentifier","src":"996:6:54"},"nativeSrc":"996:12:54","nodeType":"YulFunctionCall","src":"996:12:54"},"nativeSrc":"996:12:54","nodeType":"YulExpressionStatement","src":"996:12:54"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"967:2:54","nodeType":"YulIdentifier","src":"967:2:54"},{"name":"length","nativeSrc":"971:6:54","nodeType":"YulIdentifier","src":"971:6:54"}],"functionName":{"name":"add","nativeSrc":"963:3:54","nodeType":"YulIdentifier","src":"963:3:54"},"nativeSrc":"963:15:54","nodeType":"YulFunctionCall","src":"963:15:54"},{"kind":"number","nativeSrc":"980:2:54","nodeType":"YulLiteral","src":"980:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"959:3:54","nodeType":"YulIdentifier","src":"959:3:54"},"nativeSrc":"959:24:54","nodeType":"YulFunctionCall","src":"959:24:54"},{"name":"dataEnd","nativeSrc":"985:7:54","nodeType":"YulIdentifier","src":"985:7:54"}],"functionName":{"name":"gt","nativeSrc":"956:2:54","nodeType":"YulIdentifier","src":"956:2:54"},"nativeSrc":"956:37:54","nodeType":"YulFunctionCall","src":"956:37:54"},"nativeSrc":"953:57:54","nodeType":"YulIf","src":"953:57:54"},{"nativeSrc":"1019:21:54","nodeType":"YulAssignment","src":"1019:21:54","value":{"arguments":[{"name":"_2","nativeSrc":"1033:2:54","nodeType":"YulIdentifier","src":"1033:2:54"},{"kind":"number","nativeSrc":"1037:2:54","nodeType":"YulLiteral","src":"1037:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1029:3:54","nodeType":"YulIdentifier","src":"1029:3:54"},"nativeSrc":"1029:11:54","nodeType":"YulFunctionCall","src":"1029:11:54"},"variableNames":[{"name":"value1","nativeSrc":"1019:6:54","nodeType":"YulIdentifier","src":"1019:6:54"}]},{"nativeSrc":"1049:16:54","nodeType":"YulAssignment","src":"1049:16:54","value":{"name":"length","nativeSrc":"1059:6:54","nodeType":"YulIdentifier","src":"1059:6:54"},"variableNames":[{"name":"value2","nativeSrc":"1049:6:54","nodeType":"YulIdentifier","src":"1049:6:54"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"406:665:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"462:9:54","nodeType":"YulTypedName","src":"462:9:54","type":""},{"name":"dataEnd","nativeSrc":"473:7:54","nodeType":"YulTypedName","src":"473:7:54","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"485:6:54","nodeType":"YulTypedName","src":"485:6:54","type":""},{"name":"value1","nativeSrc":"493:6:54","nodeType":"YulTypedName","src":"493:6:54","type":""},{"name":"value2","nativeSrc":"501:6:54","nodeType":"YulTypedName","src":"501:6:54","type":""}],"src":"406:665:54"},{"body":{"nativeSrc":"1177:125:54","nodeType":"YulBlock","src":"1177:125:54","statements":[{"nativeSrc":"1187:26:54","nodeType":"YulAssignment","src":"1187:26:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1199:9:54","nodeType":"YulIdentifier","src":"1199:9:54"},{"kind":"number","nativeSrc":"1210:2:54","nodeType":"YulLiteral","src":"1210:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1195:3:54","nodeType":"YulIdentifier","src":"1195:3:54"},"nativeSrc":"1195:18:54","nodeType":"YulFunctionCall","src":"1195:18:54"},"variableNames":[{"name":"tail","nativeSrc":"1187:4:54","nodeType":"YulIdentifier","src":"1187:4:54"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1229:9:54","nodeType":"YulIdentifier","src":"1229:9:54"},{"arguments":[{"name":"value0","nativeSrc":"1244:6:54","nodeType":"YulIdentifier","src":"1244:6:54"},{"kind":"number","nativeSrc":"1252:42:54","nodeType":"YulLiteral","src":"1252:42:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1240:3:54","nodeType":"YulIdentifier","src":"1240:3:54"},"nativeSrc":"1240:55:54","nodeType":"YulFunctionCall","src":"1240:55:54"}],"functionName":{"name":"mstore","nativeSrc":"1222:6:54","nodeType":"YulIdentifier","src":"1222:6:54"},"nativeSrc":"1222:74:54","nodeType":"YulFunctionCall","src":"1222:74:54"},"nativeSrc":"1222:74:54","nodeType":"YulExpressionStatement","src":"1222:74:54"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1076:226:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1146:9:54","nodeType":"YulTypedName","src":"1146:9:54","type":""},{"name":"value0","nativeSrc":"1157:6:54","nodeType":"YulTypedName","src":"1157:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1168:4:54","nodeType":"YulTypedName","src":"1168:4:54","type":""}],"src":"1076:226:54"},{"body":{"nativeSrc":"1481:296:54","nodeType":"YulBlock","src":"1481:296:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1498:9:54","nodeType":"YulIdentifier","src":"1498:9:54"},{"kind":"number","nativeSrc":"1509:2:54","nodeType":"YulLiteral","src":"1509:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1491:6:54","nodeType":"YulIdentifier","src":"1491:6:54"},"nativeSrc":"1491:21:54","nodeType":"YulFunctionCall","src":"1491:21:54"},"nativeSrc":"1491:21:54","nodeType":"YulExpressionStatement","src":"1491:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1532:9:54","nodeType":"YulIdentifier","src":"1532:9:54"},{"kind":"number","nativeSrc":"1543:2:54","nodeType":"YulLiteral","src":"1543:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1528:3:54","nodeType":"YulIdentifier","src":"1528:3:54"},"nativeSrc":"1528:18:54","nodeType":"YulFunctionCall","src":"1528:18:54"},{"kind":"number","nativeSrc":"1548:2:54","nodeType":"YulLiteral","src":"1548:2:54","type":"","value":"66"}],"functionName":{"name":"mstore","nativeSrc":"1521:6:54","nodeType":"YulIdentifier","src":"1521:6:54"},"nativeSrc":"1521:30:54","nodeType":"YulFunctionCall","src":"1521:30:54"},"nativeSrc":"1521:30:54","nodeType":"YulExpressionStatement","src":"1521:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1571:9:54","nodeType":"YulIdentifier","src":"1571:9:54"},{"kind":"number","nativeSrc":"1582:2:54","nodeType":"YulLiteral","src":"1582:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1567:3:54","nodeType":"YulIdentifier","src":"1567:3:54"},"nativeSrc":"1567:18:54","nodeType":"YulFunctionCall","src":"1567:18:54"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"1587:34:54","nodeType":"YulLiteral","src":"1587:34:54","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"1560:6:54","nodeType":"YulIdentifier","src":"1560:6:54"},"nativeSrc":"1560:62:54","nodeType":"YulFunctionCall","src":"1560:62:54"},"nativeSrc":"1560:62:54","nodeType":"YulExpressionStatement","src":"1560:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1642:9:54","nodeType":"YulIdentifier","src":"1642:9:54"},{"kind":"number","nativeSrc":"1653:2:54","nodeType":"YulLiteral","src":"1653:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1638:3:54","nodeType":"YulIdentifier","src":"1638:3:54"},"nativeSrc":"1638:18:54","nodeType":"YulFunctionCall","src":"1638:18:54"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"1658:34:54","nodeType":"YulLiteral","src":"1658:34:54","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"1631:6:54","nodeType":"YulIdentifier","src":"1631:6:54"},"nativeSrc":"1631:62:54","nodeType":"YulFunctionCall","src":"1631:62:54"},"nativeSrc":"1631:62:54","nodeType":"YulExpressionStatement","src":"1631:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1713:9:54","nodeType":"YulIdentifier","src":"1713:9:54"},{"kind":"number","nativeSrc":"1724:3:54","nodeType":"YulLiteral","src":"1724:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1709:3:54","nodeType":"YulIdentifier","src":"1709:3:54"},"nativeSrc":"1709:19:54","nodeType":"YulFunctionCall","src":"1709:19:54"},{"hexValue":"6574","kind":"string","nativeSrc":"1730:4:54","nodeType":"YulLiteral","src":"1730:4:54","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"1702:6:54","nodeType":"YulIdentifier","src":"1702:6:54"},"nativeSrc":"1702:33:54","nodeType":"YulFunctionCall","src":"1702:33:54"},"nativeSrc":"1702:33:54","nodeType":"YulExpressionStatement","src":"1702:33:54"},{"nativeSrc":"1744:27:54","nodeType":"YulAssignment","src":"1744:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"1756:9:54","nodeType":"YulIdentifier","src":"1756:9:54"},{"kind":"number","nativeSrc":"1767:3:54","nodeType":"YulLiteral","src":"1767:3:54","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"1752:3:54","nodeType":"YulIdentifier","src":"1752:3:54"},"nativeSrc":"1752:19:54","nodeType":"YulFunctionCall","src":"1752:19:54"},"variableNames":[{"name":"tail","nativeSrc":"1744:4:54","nodeType":"YulIdentifier","src":"1744:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1307:470:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1458:9:54","nodeType":"YulTypedName","src":"1458:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1472:4:54","nodeType":"YulTypedName","src":"1472:4:54","type":""}],"src":"1307:470:54"},{"body":{"nativeSrc":"1956:235:54","nodeType":"YulBlock","src":"1956:235:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1973:9:54","nodeType":"YulIdentifier","src":"1973:9:54"},{"kind":"number","nativeSrc":"1984:2:54","nodeType":"YulLiteral","src":"1984:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1966:6:54","nodeType":"YulIdentifier","src":"1966:6:54"},"nativeSrc":"1966:21:54","nodeType":"YulFunctionCall","src":"1966:21:54"},"nativeSrc":"1966:21:54","nodeType":"YulExpressionStatement","src":"1966:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2007:9:54","nodeType":"YulIdentifier","src":"2007:9:54"},{"kind":"number","nativeSrc":"2018:2:54","nodeType":"YulLiteral","src":"2018:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2003:3:54","nodeType":"YulIdentifier","src":"2003:3:54"},"nativeSrc":"2003:18:54","nodeType":"YulFunctionCall","src":"2003:18:54"},{"kind":"number","nativeSrc":"2023:2:54","nodeType":"YulLiteral","src":"2023:2:54","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"1996:6:54","nodeType":"YulIdentifier","src":"1996:6:54"},"nativeSrc":"1996:30:54","nodeType":"YulFunctionCall","src":"1996:30:54"},"nativeSrc":"1996:30:54","nodeType":"YulExpressionStatement","src":"1996:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2046:9:54","nodeType":"YulIdentifier","src":"2046:9:54"},{"kind":"number","nativeSrc":"2057:2:54","nodeType":"YulLiteral","src":"2057:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2042:3:54","nodeType":"YulIdentifier","src":"2042:3:54"},"nativeSrc":"2042:18:54","nodeType":"YulFunctionCall","src":"2042:18:54"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"2062:34:54","nodeType":"YulLiteral","src":"2062:34:54","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"2035:6:54","nodeType":"YulIdentifier","src":"2035:6:54"},"nativeSrc":"2035:62:54","nodeType":"YulFunctionCall","src":"2035:62:54"},"nativeSrc":"2035:62:54","nodeType":"YulExpressionStatement","src":"2035:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2117:9:54","nodeType":"YulIdentifier","src":"2117:9:54"},{"kind":"number","nativeSrc":"2128:2:54","nodeType":"YulLiteral","src":"2128:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2113:3:54","nodeType":"YulIdentifier","src":"2113:3:54"},"nativeSrc":"2113:18:54","nodeType":"YulFunctionCall","src":"2113:18:54"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"2133:15:54","nodeType":"YulLiteral","src":"2133:15:54","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"2106:6:54","nodeType":"YulIdentifier","src":"2106:6:54"},"nativeSrc":"2106:43:54","nodeType":"YulFunctionCall","src":"2106:43:54"},"nativeSrc":"2106:43:54","nodeType":"YulExpressionStatement","src":"2106:43:54"},{"nativeSrc":"2158:27:54","nodeType":"YulAssignment","src":"2158:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2170:9:54","nodeType":"YulIdentifier","src":"2170:9:54"},{"kind":"number","nativeSrc":"2181:3:54","nodeType":"YulLiteral","src":"2181:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2166:3:54","nodeType":"YulIdentifier","src":"2166:3:54"},"nativeSrc":"2166:19:54","nodeType":"YulFunctionCall","src":"2166:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2158:4:54","nodeType":"YulIdentifier","src":"2158:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1782:409:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1933:9:54","nodeType":"YulTypedName","src":"1933:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1947:4:54","nodeType":"YulTypedName","src":"1947:4:54","type":""}],"src":"1782:409:54"},{"body":{"nativeSrc":"2370:228:54","nodeType":"YulBlock","src":"2370:228:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2387:9:54","nodeType":"YulIdentifier","src":"2387:9:54"},{"kind":"number","nativeSrc":"2398:2:54","nodeType":"YulLiteral","src":"2398:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2380:6:54","nodeType":"YulIdentifier","src":"2380:6:54"},"nativeSrc":"2380:21:54","nodeType":"YulFunctionCall","src":"2380:21:54"},"nativeSrc":"2380:21:54","nodeType":"YulExpressionStatement","src":"2380:21:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2421:9:54","nodeType":"YulIdentifier","src":"2421:9:54"},{"kind":"number","nativeSrc":"2432:2:54","nodeType":"YulLiteral","src":"2432:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2417:3:54","nodeType":"YulIdentifier","src":"2417:3:54"},"nativeSrc":"2417:18:54","nodeType":"YulFunctionCall","src":"2417:18:54"},{"kind":"number","nativeSrc":"2437:2:54","nodeType":"YulLiteral","src":"2437:2:54","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"2410:6:54","nodeType":"YulIdentifier","src":"2410:6:54"},"nativeSrc":"2410:30:54","nodeType":"YulFunctionCall","src":"2410:30:54"},"nativeSrc":"2410:30:54","nodeType":"YulExpressionStatement","src":"2410:30:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2460:9:54","nodeType":"YulIdentifier","src":"2460:9:54"},{"kind":"number","nativeSrc":"2471:2:54","nodeType":"YulLiteral","src":"2471:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2456:3:54","nodeType":"YulIdentifier","src":"2456:3:54"},"nativeSrc":"2456:18:54","nodeType":"YulFunctionCall","src":"2456:18:54"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"2476:34:54","nodeType":"YulLiteral","src":"2476:34:54","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"2449:6:54","nodeType":"YulIdentifier","src":"2449:6:54"},"nativeSrc":"2449:62:54","nodeType":"YulFunctionCall","src":"2449:62:54"},"nativeSrc":"2449:62:54","nodeType":"YulExpressionStatement","src":"2449:62:54"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2531:9:54","nodeType":"YulIdentifier","src":"2531:9:54"},{"kind":"number","nativeSrc":"2542:2:54","nodeType":"YulLiteral","src":"2542:2:54","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2527:3:54","nodeType":"YulIdentifier","src":"2527:3:54"},"nativeSrc":"2527:18:54","nodeType":"YulFunctionCall","src":"2527:18:54"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"2547:8:54","nodeType":"YulLiteral","src":"2547:8:54","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"2520:6:54","nodeType":"YulIdentifier","src":"2520:6:54"},"nativeSrc":"2520:36:54","nodeType":"YulFunctionCall","src":"2520:36:54"},"nativeSrc":"2520:36:54","nodeType":"YulExpressionStatement","src":"2520:36:54"},{"nativeSrc":"2565:27:54","nodeType":"YulAssignment","src":"2565:27:54","value":{"arguments":[{"name":"headStart","nativeSrc":"2577:9:54","nodeType":"YulIdentifier","src":"2577:9:54"},{"kind":"number","nativeSrc":"2588:3:54","nodeType":"YulLiteral","src":"2588:3:54","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"2573:3:54","nodeType":"YulIdentifier","src":"2573:3:54"},"nativeSrc":"2573:19:54","nodeType":"YulFunctionCall","src":"2573:19:54"},"variableNames":[{"name":"tail","nativeSrc":"2565:4:54","nodeType":"YulIdentifier","src":"2565:4:54"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2196:402:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2347:9:54","nodeType":"YulTypedName","src":"2347:9:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2361:4:54","nodeType":"YulTypedName","src":"2361:4:54","type":""}],"src":"2196:402:54"},{"body":{"nativeSrc":"2669:184:54","nodeType":"YulBlock","src":"2669:184:54","statements":[{"nativeSrc":"2679:10:54","nodeType":"YulVariableDeclaration","src":"2679:10:54","value":{"kind":"number","nativeSrc":"2688:1:54","nodeType":"YulLiteral","src":"2688:1:54","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2683:1:54","nodeType":"YulTypedName","src":"2683:1:54","type":""}]},{"body":{"nativeSrc":"2748:63:54","nodeType":"YulBlock","src":"2748:63:54","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2773:3:54","nodeType":"YulIdentifier","src":"2773:3:54"},{"name":"i","nativeSrc":"2778:1:54","nodeType":"YulIdentifier","src":"2778:1:54"}],"functionName":{"name":"add","nativeSrc":"2769:3:54","nodeType":"YulIdentifier","src":"2769:3:54"},"nativeSrc":"2769:11:54","nodeType":"YulFunctionCall","src":"2769:11:54"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2792:3:54","nodeType":"YulIdentifier","src":"2792:3:54"},{"name":"i","nativeSrc":"2797:1:54","nodeType":"YulIdentifier","src":"2797:1:54"}],"functionName":{"name":"add","nativeSrc":"2788:3:54","nodeType":"YulIdentifier","src":"2788:3:54"},"nativeSrc":"2788:11:54","nodeType":"YulFunctionCall","src":"2788:11:54"}],"functionName":{"name":"mload","nativeSrc":"2782:5:54","nodeType":"YulIdentifier","src":"2782:5:54"},"nativeSrc":"2782:18:54","nodeType":"YulFunctionCall","src":"2782:18:54"}],"functionName":{"name":"mstore","nativeSrc":"2762:6:54","nodeType":"YulIdentifier","src":"2762:6:54"},"nativeSrc":"2762:39:54","nodeType":"YulFunctionCall","src":"2762:39:54"},"nativeSrc":"2762:39:54","nodeType":"YulExpressionStatement","src":"2762:39:54"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2709:1:54","nodeType":"YulIdentifier","src":"2709:1:54"},{"name":"length","nativeSrc":"2712:6:54","nodeType":"YulIdentifier","src":"2712:6:54"}],"functionName":{"name":"lt","nativeSrc":"2706:2:54","nodeType":"YulIdentifier","src":"2706:2:54"},"nativeSrc":"2706:13:54","nodeType":"YulFunctionCall","src":"2706:13:54"},"nativeSrc":"2698:113:54","nodeType":"YulForLoop","post":{"nativeSrc":"2720:19:54","nodeType":"YulBlock","src":"2720:19:54","statements":[{"nativeSrc":"2722:15:54","nodeType":"YulAssignment","src":"2722:15:54","value":{"arguments":[{"name":"i","nativeSrc":"2731:1:54","nodeType":"YulIdentifier","src":"2731:1:54"},{"kind":"number","nativeSrc":"2734:2:54","nodeType":"YulLiteral","src":"2734:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2727:3:54","nodeType":"YulIdentifier","src":"2727:3:54"},"nativeSrc":"2727:10:54","nodeType":"YulFunctionCall","src":"2727:10:54"},"variableNames":[{"name":"i","nativeSrc":"2722:1:54","nodeType":"YulIdentifier","src":"2722:1:54"}]}]},"pre":{"nativeSrc":"2702:3:54","nodeType":"YulBlock","src":"2702:3:54","statements":[]},"src":"2698:113:54"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2831:3:54","nodeType":"YulIdentifier","src":"2831:3:54"},{"name":"length","nativeSrc":"2836:6:54","nodeType":"YulIdentifier","src":"2836:6:54"}],"functionName":{"name":"add","nativeSrc":"2827:3:54","nodeType":"YulIdentifier","src":"2827:3:54"},"nativeSrc":"2827:16:54","nodeType":"YulFunctionCall","src":"2827:16:54"},{"kind":"number","nativeSrc":"2845:1:54","nodeType":"YulLiteral","src":"2845:1:54","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2820:6:54","nodeType":"YulIdentifier","src":"2820:6:54"},"nativeSrc":"2820:27:54","nodeType":"YulFunctionCall","src":"2820:27:54"},"nativeSrc":"2820:27:54","nodeType":"YulExpressionStatement","src":"2820:27:54"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2603:250:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2647:3:54","nodeType":"YulTypedName","src":"2647:3:54","type":""},{"name":"dst","nativeSrc":"2652:3:54","nodeType":"YulTypedName","src":"2652:3:54","type":""},{"name":"length","nativeSrc":"2657:6:54","nodeType":"YulTypedName","src":"2657:6:54","type":""}],"src":"2603:250:54"},{"body":{"nativeSrc":"2995:150:54","nodeType":"YulBlock","src":"2995:150:54","statements":[{"nativeSrc":"3005:27:54","nodeType":"YulVariableDeclaration","src":"3005:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"3025:6:54","nodeType":"YulIdentifier","src":"3025:6:54"}],"functionName":{"name":"mload","nativeSrc":"3019:5:54","nodeType":"YulIdentifier","src":"3019:5:54"},"nativeSrc":"3019:13:54","nodeType":"YulFunctionCall","src":"3019:13:54"},"variables":[{"name":"length","nativeSrc":"3009:6:54","nodeType":"YulTypedName","src":"3009:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3080:6:54","nodeType":"YulIdentifier","src":"3080:6:54"},{"kind":"number","nativeSrc":"3088:4:54","nodeType":"YulLiteral","src":"3088:4:54","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3076:3:54","nodeType":"YulIdentifier","src":"3076:3:54"},"nativeSrc":"3076:17:54","nodeType":"YulFunctionCall","src":"3076:17:54"},{"name":"pos","nativeSrc":"3095:3:54","nodeType":"YulIdentifier","src":"3095:3:54"},{"name":"length","nativeSrc":"3100:6:54","nodeType":"YulIdentifier","src":"3100:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3041:34:54","nodeType":"YulIdentifier","src":"3041:34:54"},"nativeSrc":"3041:66:54","nodeType":"YulFunctionCall","src":"3041:66:54"},"nativeSrc":"3041:66:54","nodeType":"YulExpressionStatement","src":"3041:66:54"},{"nativeSrc":"3116:23:54","nodeType":"YulAssignment","src":"3116:23:54","value":{"arguments":[{"name":"pos","nativeSrc":"3127:3:54","nodeType":"YulIdentifier","src":"3127:3:54"},{"name":"length","nativeSrc":"3132:6:54","nodeType":"YulIdentifier","src":"3132:6:54"}],"functionName":{"name":"add","nativeSrc":"3123:3:54","nodeType":"YulIdentifier","src":"3123:3:54"},"nativeSrc":"3123:16:54","nodeType":"YulFunctionCall","src":"3123:16:54"},"variableNames":[{"name":"end","nativeSrc":"3116:3:54","nodeType":"YulIdentifier","src":"3116:3:54"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2858:287:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2971:3:54","nodeType":"YulTypedName","src":"2971:3:54","type":""},{"name":"value0","nativeSrc":"2976:6:54","nodeType":"YulTypedName","src":"2976:6:54","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2987:3:54","nodeType":"YulTypedName","src":"2987:3:54","type":""}],"src":"2858:287:54"},{"body":{"nativeSrc":"3271:334:54","nodeType":"YulBlock","src":"3271:334:54","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3288:9:54","nodeType":"YulIdentifier","src":"3288:9:54"},{"kind":"number","nativeSrc":"3299:2:54","nodeType":"YulLiteral","src":"3299:2:54","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3281:6:54","nodeType":"YulIdentifier","src":"3281:6:54"},"nativeSrc":"3281:21:54","nodeType":"YulFunctionCall","src":"3281:21:54"},"nativeSrc":"3281:21:54","nodeType":"YulExpressionStatement","src":"3281:21:54"},{"nativeSrc":"3311:27:54","nodeType":"YulVariableDeclaration","src":"3311:27:54","value":{"arguments":[{"name":"value0","nativeSrc":"3331:6:54","nodeType":"YulIdentifier","src":"3331:6:54"}],"functionName":{"name":"mload","nativeSrc":"3325:5:54","nodeType":"YulIdentifier","src":"3325:5:54"},"nativeSrc":"3325:13:54","nodeType":"YulFunctionCall","src":"3325:13:54"},"variables":[{"name":"length","nativeSrc":"3315:6:54","nodeType":"YulTypedName","src":"3315:6:54","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3358:9:54","nodeType":"YulIdentifier","src":"3358:9:54"},{"kind":"number","nativeSrc":"3369:2:54","nodeType":"YulLiteral","src":"3369:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3354:3:54","nodeType":"YulIdentifier","src":"3354:3:54"},"nativeSrc":"3354:18:54","nodeType":"YulFunctionCall","src":"3354:18:54"},{"name":"length","nativeSrc":"3374:6:54","nodeType":"YulIdentifier","src":"3374:6:54"}],"functionName":{"name":"mstore","nativeSrc":"3347:6:54","nodeType":"YulIdentifier","src":"3347:6:54"},"nativeSrc":"3347:34:54","nodeType":"YulFunctionCall","src":"3347:34:54"},"nativeSrc":"3347:34:54","nodeType":"YulExpressionStatement","src":"3347:34:54"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"3429:6:54","nodeType":"YulIdentifier","src":"3429:6:54"},{"kind":"number","nativeSrc":"3437:2:54","nodeType":"YulLiteral","src":"3437:2:54","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3425:3:54","nodeType":"YulIdentifier","src":"3425:3:54"},"nativeSrc":"3425:15:54","nodeType":"YulFunctionCall","src":"3425:15:54"},{"arguments":[{"name":"headStart","nativeSrc":"3446:9:54","nodeType":"YulIdentifier","src":"3446:9:54"},{"kind":"number","nativeSrc":"3457:2:54","nodeType":"YulLiteral","src":"3457:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3442:3:54","nodeType":"YulIdentifier","src":"3442:3:54"},"nativeSrc":"3442:18:54","nodeType":"YulFunctionCall","src":"3442:18:54"},{"name":"length","nativeSrc":"3462:6:54","nodeType":"YulIdentifier","src":"3462:6:54"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3390:34:54","nodeType":"YulIdentifier","src":"3390:34:54"},"nativeSrc":"3390:79:54","nodeType":"YulFunctionCall","src":"3390:79:54"},"nativeSrc":"3390:79:54","nodeType":"YulExpressionStatement","src":"3390:79:54"},{"nativeSrc":"3478:121:54","nodeType":"YulAssignment","src":"3478:121:54","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3494:9:54","nodeType":"YulIdentifier","src":"3494:9:54"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3513:6:54","nodeType":"YulIdentifier","src":"3513:6:54"},{"kind":"number","nativeSrc":"3521:2:54","nodeType":"YulLiteral","src":"3521:2:54","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3509:3:54","nodeType":"YulIdentifier","src":"3509:3:54"},"nativeSrc":"3509:15:54","nodeType":"YulFunctionCall","src":"3509:15:54"},{"kind":"number","nativeSrc":"3526:66:54","nodeType":"YulLiteral","src":"3526:66:54","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"3505:3:54","nodeType":"YulIdentifier","src":"3505:3:54"},"nativeSrc":"3505:88:54","nodeType":"YulFunctionCall","src":"3505:88:54"}],"functionName":{"name":"add","nativeSrc":"3490:3:54","nodeType":"YulIdentifier","src":"3490:3:54"},"nativeSrc":"3490:104:54","nodeType":"YulFunctionCall","src":"3490:104:54"},{"kind":"number","nativeSrc":"3596:2:54","nodeType":"YulLiteral","src":"3596:2:54","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3486:3:54","nodeType":"YulIdentifier","src":"3486:3:54"},"nativeSrc":"3486:113:54","nodeType":"YulFunctionCall","src":"3486:113:54"},"variableNames":[{"name":"tail","nativeSrc":"3478:4:54","nodeType":"YulIdentifier","src":"3478:4:54"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3150:455:54","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3240:9:54","nodeType":"YulTypedName","src":"3240:9:54","type":""},{"name":"value0","nativeSrc":"3251:6:54","nodeType":"YulTypedName","src":"3251:6:54","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3262:4:54","nodeType":"YulTypedName","src":"3262:4:54","type":""}],"src":"3150:455:54"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 66)\n        mstore(add(headStart, 64), \"TransparentUpgradeableProxy: adm\")\n        mstore(add(headStart, 96), \"in cannot fallback to proxy targ\")\n        mstore(add(headStart, 128), \"et\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n        mstore(add(headStart, 96), \"ot a contract\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n        mstore(add(headStart, 96), \"ntract\")\n        tail := add(headStart, 128)\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    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n}","id":54,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"10549":[{"length":32,"start":252},{"length":32,"start":351},{"length":32,"start":494},{"length":32,"start":581},{"length":32,"start":643},{"length":32,"start":679}]},"linkReferences":{},"object":"6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461008d578063f851a440146100cb57610052565b36610052576100506100e0565b005b6100506100e0565b34801561006657600080fd5b5061005061007536600461074b565b6100fa565b610050610088366004610766565b61015d565b34801561009957600080fd5b506100a26101ea565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100d757600080fd5b506100a2610241565b6100e86102a5565b6100f86100f3610395565b6103d5565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361015557610152816040518060200160405280600081525060006103f9565b50565b6101526100e0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036101e2576101dd8383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103f9915050565b505050565b6101dd6100e0565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361023657610231610395565b905090565b61023e6100e0565b90565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16330361023657507f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633036100f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006102317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b3660008037600080366000845af43d6000803e8080156103f4573d6000f35b3d6000fd5b61040283610424565b60008251118061040f5750805b156101dd5761041e8383610471565b50505050565b61042d8161049d565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610496838360405180606001604052806027815260200161087b602791396105a7565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81163b610541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161038c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606073ffffffffffffffffffffffffffffffffffffffff84163b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161038c565b6000808573ffffffffffffffffffffffffffffffffffffffff1685604051610675919061080d565b600060405180830381855af49150503d80600081146106b0576040519150601f19603f3d011682016040523d82523d6000602084013e6106b5565b606091505b50915091506106c58282866106cf565b9695505050505050565b606083156106de575081610496565b8251156106ee5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038c9190610829565b803573ffffffffffffffffffffffffffffffffffffffff8116811461074657600080fd5b919050565b60006020828403121561075d57600080fd5b61049682610722565b60008060006040848603121561077b57600080fd5b61078484610722565b9250602084013567ffffffffffffffff808211156107a157600080fd5b818601915086601f8301126107b557600080fd5b8135818111156107c457600080fd5b8760208285010111156107d657600080fd5b6020830194508093505050509250925092565b60005b838110156108045781810151838201526020016107ec565b50506000910152565b6000825161081f8184602087016107e9565b9190910192915050565b60208152600082518060208401526108488160408501602087016107e9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200136fd34dfdb0d97935b77a84c836b17bf901cefa29ed5b1ef847b08c6cba8d064736f6c63430008190033","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 0xCB JUMPI PUSH2 0x52 JUMP JUMPDEST CALLDATASIZE PUSH2 0x52 JUMPI PUSH2 0x50 PUSH2 0xE0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x50 PUSH2 0xE0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50 PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x74B JUMP JUMPDEST PUSH2 0xFA JUMP JUMPDEST PUSH2 0x50 PUSH2 0x88 CALLDATASIZE PUSH1 0x4 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x15D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x1EA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x241 JUMP JUMPDEST PUSH2 0xE8 PUSH2 0x2A5 JUMP JUMPDEST PUSH2 0xF8 PUSH2 0xF3 PUSH2 0x395 JUMP JUMPDEST PUSH2 0x3D5 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x155 JUMPI PUSH2 0x152 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x3F9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x152 PUSH2 0xE0 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x1E2 JUMPI PUSH2 0x1DD 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 0x3F9 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1DD PUSH2 0xE0 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x236 JUMPI PUSH2 0x231 PUSH2 0x395 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x23E PUSH2 0xE0 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0x236 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER SUB PUSH2 0xF8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x42 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x64 DUP3 ADD MSTORE PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x231 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 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 0x3F4 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x402 DUP4 PUSH2 0x424 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x40F JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1DD JUMPI PUSH2 0x41E DUP4 DUP4 PUSH2 0x471 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x42D DUP2 PUSH2 0x49D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x496 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x87B PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x5A7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x541 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74206120636F6E747261637400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38C JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE PUSH2 0x64D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x675 SWAP2 SWAP1 PUSH2 0x80D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x6B0 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 0x6B5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x6C5 DUP3 DUP3 DUP7 PUSH2 0x6CF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x6DE JUMPI POP DUP2 PUSH2 0x496 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x6EE JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x829 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x75D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x496 DUP3 PUSH2 0x722 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x784 DUP5 PUSH2 0x722 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x7A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x7C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x804 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7EC JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x81F DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7E9 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x848 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x7E9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212200136FD CALLVALUE 0xDF 0xDB 0xD SWAP8 SWAP4 JUMPDEST PUSH24 0xA84C836B17BF901CEFA29ED5B1EF847B08C6CBA8D064736F PUSH13 0x63430008190033000000000000 ","sourceMap":"1653:3648:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:46;:9;:11::i;:::-;1653:3648:53;;2680:11:46;:9;:11::i;4037:134:53:-;;;;;;;;;;-1:-1:-1;4037:134:53;;;;;:::i;:::-;;:::i;4547:164::-;;;;;;:::i;:::-;;:::i;3748:129::-;;;;;;;;;;;;;:::i;:::-;;;1252:42:54;1240:55;;;1222:74;;1210:2;1195:18;3748:129:53;;;;;;;3192:96;;;;;;;;;;;;;:::i;2327:110:46:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4037:134:53:-;5286:6;2649:25;;: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;2649:25;;:10;:25;2645:99;;4656:48:::1;4674:17;4693:4;;4656:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4699:4:53::1;::::0;-1:-1:-1;4656:17:53::1;::::0;-1:-1:-1;;4656:48:53:i:1;:::-;4547:164:::0;;;:::o;2645:99::-;2722:11;:9;:11::i;3748:129::-;3800:23;5286:6;2649:25;;: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;2649:25;;:10;:25;2645:99;;-1:-1:-1;5286:6:53;;3748:129::o;4986:207::-;5286:6;5057:25;;:10;:25;5049:104;;;;;;;1509:2:54;5049:104:53;;;1491:21:54;1548:2;1528:18;;;1521:30;1587:34;1567:18;;;1560:62;1658:34;1638:18;;;1631:62;1730:4;1709:19;;;1702:33;1752:19;;5049:104:53;;;;;;;;1240:140:44;1307:12;1338:35;1035:66:45;1385:54;;;;1306:140;953:895:46;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:45;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;;;;;;;;;;;1902:152;:::o;6575:198:50:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;6575:198;-1:-1:-1;;;6575:198:50:o;1537:259:45:-;1470:19:50;;;;1610:95:45;;;;;;;1984:2:54;1610:95:45;;;1966:21:54;2023:2;2003:18;;;1996:30;2062:34;2042:18;;;2035:62;2133:15;2113:18;;;2106:43;2166:19;;1610:95:45;1782:409:54;1610:95:45;1035:66;1715:74;;;;;;;;;;;;;;;1537:259::o;6959:387:50:-;7100:12;1470:19;;;;7124:69;;;;;;;2398:2:54;7124:69:50;;;2380:21:54;2437:2;2417:18;;;2410:30;2476:34;2456:18;;;2449:62;2547:8;2527:18;;;2520:36;2573:19;;7124:69:50;2196:402:54;7124:69:50;7205:12;7219:23;7246:6;:19;;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;6959:387;-1:-1:-1;;;;;;6959:387:50:o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:50;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;;;;;;;;;;;:::i;14:196:54:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:665::-;485:6;493;501;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;593:29;612:9;593:29;:::i;:::-;583:39;;673:2;662:9;658:18;645:32;696:18;737:2;729:6;726:14;723:34;;;753:1;750;743:12;723:34;791:6;780:9;776:22;766:32;;836:7;829:4;825:2;821:13;817:27;807:55;;858:1;855;848:12;807:55;898:2;885:16;924:2;916:6;913:14;910:34;;;940:1;937;930:12;910:34;985:7;980:2;971:6;967:2;963:15;959:24;956:37;953:57;;;1006:1;1003;996:12;953:57;1037:2;1033;1029:11;1019:21;;1059:6;1049:16;;;;;406:665;;;;;:::o;2603:250::-;2688:1;2698:113;2712:6;2709:1;2706:13;2698:113;;;2788:11;;;2782:18;2769:11;;;2762:39;2734:2;2727:10;2698:113;;;-1:-1:-1;;2845:1:54;2827:16;;2820:27;2603:250::o;2858:287::-;2987:3;3025:6;3019:13;3041:66;3100:6;3095:3;3088:4;3080:6;3076:17;3041:66;:::i;:::-;3123:16;;;;;2858:287;-1:-1:-1;;2858:287:54:o;3150:455::-;3299:2;3288:9;3281:21;3262:4;3331:6;3325:13;3374:6;3369:2;3358:9;3354:18;3347:34;3390:79;3462:6;3457:2;3446:9;3442:18;3437:2;3429:6;3425:15;3390:79;:::i;:::-;3521:2;3509:15;3526:66;3505:88;3490:104;;;;3596:2;3486:113;;3150:455;-1:-1:-1;;3150:455:54:o"},"gasEstimates":{"creation":{"codeDepositCost":"452600","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\":{\"enabled\":true,\"runs\":10000},\"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}}}}}}